新しく発言する  EXIT  インデックスへ
高校数学「統計とコンピュータ」

  高校数学「統計とコンピュータ」 山中和義 2008/01/24 16:09:40 
  つづき 山中和義 2008/01/24 16:12:39 

Re: 高校数学「統計とコンピュータ」  返事を書く  ノートメニュー
山中和義 <drdlxujciw> 2008/01/24 16:12:39
つづき


FUNCTION VARP(N,A()) !分散(variance)
LET ma=AVERAGE(N,A)
LET s=(A(1)-ma)^2
FOR i=2 TO N
LET s=s+(A(i)-ma)^2
NEXT i
LET VARP=s/N
END FUNCTION
!DEF VARP(N,A())=DOT(A,A)/N-AVERAGE(N,A)^2 !分散(variance) ※別解
DEF STDEVP(N,A())=SQR(VARP(N,A)) !標準偏差σ(standard deviation)
FUNCTION COVAR(N,A(),B()) !共分散(covariance)
LET ma=AVERAGE(N,A)
LET mb=AVERAGE(N,B)
LET s=(A(1)-ma)*(B(1)-mb)
FOR i=2 TO N
LET s=s+(A(i)-ma)*(B(i)-mb)
NEXT i
LET COVAR=s/N
END FUNCTION
DEF CORREL(N,A(),B())=COVAR(N,A,B)/STDEVP(N,A)/STDEVP(N,B) !相関係数(correlation coefficient)


!関数名を「高校数学の公式」準拠

DEF EX(A(),P())=DOT(A,P) !確率変数の平均(期待値(expected value)) ※E(X)=ΣXi*P(X=Xi)
FUNCTION EX2(A(),P()) !E(X^2)
LET s=A(1)^2*P(1)
FOR i=2 TO UBOUND(A)
LET s=s+A(i)^2*P(i)
NEXT i
LET EX2=s
END FUNCTION
DEF VX(A(),P())=EX2(A,P)-EX(A,P)^2 !確率変数の分散 ※V(X)=E((X-E(X))^2)=E(X^2)-E(X)^2
DEF DX(A(),P())=SQR(VX(A,P)) !確率変数の標準偏差 ※D(X)=SQR(V(X))

!-------------------- ここまでがサブルーチン




!例.数学の試験結果
LET N=12 !標本数
DATA 70,60,25,15,88,46,65,20,88,100,25,75
DIM X(N)
MAT READ X

PRINT USING "平均点 ###.##":AVERAGE(N,X)
PRINT USING "最高点 ###.##  最低点 ###.##":FMAX(N,X),FMIN(N,X)
!!!PRINT FMAX(N,X)-FMIN(N,X) !範囲(range)
PRINT USING "中央値 ###.##":MEDIAN(N,X)
PRINT

LET m=AVERAGE(N,X)
LET sx=STDEVP(N,X)
PRINT "点数 順位 偏差値"
FOR k=1 TO N
PRINT USING "### ###":X(k),RANK(N,X,X(k));
PRINT USING " ###.##":(X(k)-m)*10/sx+50 !偏差値
NEXT k
PRINT

DIM H(5) !ヒストグラム(度数分布)
MAT H=ZER
FOR k=1 TO N
LET m=MIN(INT(X(k)/20),4)+1 !20点刻み
LET H(m)=H(m)+1
NEXT k
PRINT "点数","人数"
PRINT "100 〜 80",H(5)
FOR k=4 TO 1 STEP -1
PRINT k*20-1;"〜";(k-1)*20,H(k)
NEXT k
PRINT



!例.ガソリンの販売量と価格の関係?
LET N=10 !データ数
DATA 45.8,47.1,47.8,50.1,51.0,52.8,54.2,55.4,56.8,58.2 !販売量
DIM A(N)
MAT READ A
DATA 127.1,123.7,123.7,120.5,114.2,106.6,103.0,93.4,93.6,101.3 !価格
DIM B(N)
MAT READ B

PRINT VARP(N,A),STDEVP(N,A)
PRINT VARP(N,B),STDEVP(N,B)

SET WINDOW -10,150,-10,150 !散布図
DRAW grid(25,25)
FOR k=1 TO N
PLOT POINTS: A(k),B(k)
NEXT k

DEF F(x)=AVERAGE(N,B)+(COVAR(N,A,B)/STDEVP(N,A)^2)*(x-AVERAGE(N,A)) !回帰方程式
PLOT LINES: 25,F(25); 100,F(100)

PRINT COVAR(N,A,B),CORREL(N,A,B)
PRINT

   └つづき2 山中和義 2008/01/24 16:13:40  (修正2回)

 インデックスへ  EXIT
新規発言を反映させるにはブラウザの更新ボタンを押してください。