高校数学「統計とコンピュータ」 山中和義 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) 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 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 !例.ガソリンの販売量と価格の関係? 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) |
└つづき2 山中和義 2008/01/24 16:13:40 (修正2回)