回帰式 その5

 投稿者:しばっち  投稿日:2010年 3月27日(土)21時18分27秒
  !'和の公式により回帰式を求める
LET N=12
OPTION BASE 0
DIM Y(N)
RANDOMIZE
LET C=INT(RND*1000)+1000
LET A=RND*4-2
LET B=RND*4-2
FOR I=0 TO N-1
   LET Y(I)=C/(1+B*EXP(-A*I)) !'仮データ作成
NEXT I
FOR I=0 TO N-1
   PRINT "X=";I;"Y=";Y(I);"^Y=";FORECAST(I,N,Y)
NEXT I
END

EXTERNAL FUNCTION FORECAST(X,N,YA())
!'Y=C/(1+B*EXP(-A*X))
!'1/Y=(1+B*EXP(-A*X))/C
!'S=1/C*Σ1+B/C*ΣEXP(-A*X)
!'S1=N/C+B/C*(EXP(-A*N)-1)/(EXP(-A)-1)
!'S2=N/C+B/C*EXP(-A*N)*(EXP(-A*N)-1)/(EXP(-A)-1)
!'S3=N/C+B/C*EXP(-A*N)^ 2*(EXP(-A*N)-1)/(EXP(-A)-1)
!'S2-S1=B/C*(EXP(-A*N)-1)*(EXP(-A*N)-1)/(EXP(-A)-1)
!'S3-S2=B/C*(EXP(-A*N)-1)*EXP(-A*N)*(EXP(-A*N)-1)/(EXP(-A)-1)
!'(S3-S2)/(S2-S1)=EXP(-A*N)
LET NN=INT(N/3)
FOR I=0 TO NN-1
   LET S1=S1+1/YA(I)
   LET S2=S2+1/YA(NN+I)
   LET S3=S3+1/YA(2*NN+I)
NEXT I
LET AA=((S3-S2)/(S2-S1))^(1/NN)!'=EXP(-A)
LET A=-LOG(AA)
LET CB=(S1-S2)*(EXP(-A)-1)/(EXP(-A*NN)-1)^2 !'=-B/C
!'LET CC=1/NN*(S1+CB*(EXP(-A*NN)-1)/(EXP(-A)-1))!'=1/C
LET CC=1/NN*((S1*S3-S2*S2)/(S1+S3-2*S2))
LET C=1/CC
LET B=-C*CB
LET FORECAST =C/(1+B*EXP(-A*X))
END FUNCTION
 
 

戻る