maxima入門

偏差値

maximaを用いて偏差値を計算してみます。
偏差値の数式はwikipediaを参考にしています。
以下のコードでは、二番目のリストの点をとった人たちがいた試験の結果
トップ(100点)だった人の偏差値は68だということが計算できます。
以下のコードではmyuは算術平均、sigmaは標準偏差、listが標本値(個々の値)、
length(list)が母集団の大きさとなります。

偏差値

myu(list) := lsum(x,x,list)/length(list); sigma(list) := block([a],a:myu(list),sqrt((lsum(x,x,map(lambda([x],(x-a)^2),list)/length(list))))); Ti(x,list) := float((10*(x-myu(list))/sigma(list))+ 50); list1:[1,2,3,4,5,10,20,30,40,50]; list2:[35,40,45,50,55,52,54,58,78,80,88,90,100]; Ti(10,list1); Ti(100,list2);
さらに突っ込んでみます。 受験者の得点が正規分布に従うと仮定したとき どのようになるかをmaximaを用いて計算してみます。

標準偏差の様子

f(x,s,u):=1/sqrt(2*%pi*s)*exp((-1/2)*((x-u)/s)^2); g(x):=%e^(-x^2/2)/(sqrt(2)*sqrt(%pi)); g(x):=f(x,1,0); /* x±sの確率 */ map(lambda([x],float(integrate(g(u),u,-x,x))),[1,2,3,4,5]); map(print,%);
積分を用いて、各偏差値の区間の割合を求めています。 この結果から、受験生の得点が標準偏差に従ったと仮定したとき 指定した偏差値の範囲が全体に対してどの程度の割合なのかが 分かります。 上のコードの結果に注釈をいれると .6826894921370859 偏差値40-60 .9544997361036416 偏差値30-70 .9973002039367398 偏差値20-80 .9999366575163338 偏差値10-90 .9999994266968563 偏差値0-100 のようになります。 約7割の人が偏差値40から60の範囲にいることがわかりますね。 また、偏差値が100を突破する人は 0.0001%よりも少ないことが分かりました。 これは100万人に1人よりも少ないレベルになります。 受験生の人数は50万人よりも少ないですから 受験生が正規分布に従うとすれば 偏差値が100を越える人は毎年、出ない確率のほうが高いということになります。
since 2014/03/23