Microsoft Excel を使った統計解析     last modified:

 Microsoft Excel の統計関係の関数のオンラインヘルプは「嘘,曖昧,不親切」の 3 語に尽きます。日本語訳も悪く,ちゃんとした訳語になっていないものも多いですし,元の英語の段階で間違えている可能性もあります。そこで,以下のようなものをまとめまてみました。


分布関数

normdist(x, mean, sd, flag)

平均値が mean,標準偏差が sd である正規分布密度関数の値 または分布関数の値 を返します。flag が false のとき密度関数の値 f(x),true のときに分布関数の値 F(x)を返します。

例:
normdist(10+2*1.96,10,2,false) は 0.029220472 を返します。これは,母平均が 10,母標準偏差が 2 の正規分布において,「x = 平均値+2・標準偏差」 のときの密度関数の値です。
normdist(10+2*1.96,10,2,true) は 0.975002175 を返します。これは,母平均が 10,母標準偏差が 2 の正規分布において,「x = 平均値+2・標準偏差」 のとき,x までの分布関数の値です。

norminv(q, mean, sd)

平均値が mean,標準偏差が sd である正規分布において,上側確率 1-q に対応するパーセント点を返します。

例:norminv(0.975,10,2) は 13.91992216 を返します。これは,母平均が 10,母標準偏差が 2 の正規分布において,上側確率が 1-0.975=0.025 となるパーセント点≒10+1.96・2 = 13.92 です。
norminv(p,mean,sd)≡normsinv(p) の関係式が成り立ちます。

normsdist(x)

標準正規分布分布関数 F(x) の値を返します。

例:normsdist(1.96) は 0.975002175 を返します。
normsdist(x)≡normdist(x,0,1,true) の関係式が成り立ちます。

normsinv(q)

標準正規布パーセント点を返します。

例:normsinv(0.975) は 1.959961082 を返します。これは,標準正規分布において,上側確率が 1-0.975=0.025 となるパーセント点です。

lognormdist(x, mean, sd)

対数正規分布の分布関数の値を返します。loginv と lognormdist は互いに逆関数の関係にあります。

例:lognormdist(1110057.27,10,2) は 0.9749999 を返します。これは,normdist(ln(1110057.27),10,2,true) と書くのと同じです。

loginv(q, mean, sd)

対数正規分布のパーセント点を返します。loginv と lognormdist は互いに逆関数の関係にあります。

例:loginv(0.975,10,2) は 1110057.27 を返します。これは,exp(10+2*normsinv(0.975)) または exp(norminv(0.975,10,2)) と同じことであり,前者の式は標準正規分布の上側確率が 1-0.975=0.025 であるパーセント点(1.95996108)を,平均値が 10,標準偏差が 2 の正規分布の パーセント点に換算し(10+2*normsinv(0.975))たもの,後者の式は平均値が 10,標準偏差が 2 の正規分布の パーセント点を直接求め,さらに,対数正規分布と正規分布の関連に基づいて(指数を取ることにより)対数正規分布のパーセント点に換算したものです。

chidist(x, df)

自由度が df であるカイ二乗分布上側確率を返します。

例:chidist(3.84,1) は 0.050043531 を返します。これは,自由度 1 のカイ二乗分布において,カイ二乗値が 3.84 より大きいときに対応する確率です。

chiinv(p, df)

自由度が df であるカイ二乗分布パーセント点を返します。

例:chiinv(0.05,1) は 3.841455338 を返します。これは,自由度 1 のカイ二乗分布において上側確率が 0.05 になるパーセント点です。

tdist(t, df, flag)

自由度が df であるt 分布片側確率または両側確率を返します。flag 1 のときには片側確率,2 のときには両側確率を返すことを意味します。

例:
tdist(1.96,200,1) は 0.025692417 を返します。これは,自由度が 200 のときの t 分布において,t が 1.96 より大きいときに対応する片側確率です。
tdist(1.96,200,2) は 0.051384835 を返します。これは,自由度が 200 のときの t 分布において,t の絶対値が 1.96 より大きいときに対応する両側確率です。
なお,tdist(1.96,200,2)≡tdist(1.96,200,1)*2 の関係式が成り立ちます。

tinv(p, df)

自由度が df であるt 分布パーセント点を返します。

例:
tinv(0.05138483,200) は 1.96000201 を返します。これは,自由度が 200 のときの t 分布において,両側確率が 0.05138483 であるようなパーセント点です。
tinv(p,df) は tdist(t,df,2) の逆関数です。すなわち,p = tdist(t,df,2) のとき,tinv(p,df) は t になります。

fdist(F, df1, df2)

F 分布上側確率を返します。

例:fdist(2.5,1,5) は 0.174687813 を返します。これは,第 1 自由度が 1,第 2 自由度が 5 の F 分布において,F 値が 2.5 より大きいときに対応する確率です。

finv(p, df1, df2)

F 分布パーセント点を返します。

例:finv(0.17468781,1,5) は 2.500001983 を返します。これは,第 1 自由度が 1,第 2 自由度が 5 の F 分布において,上側確率が 0.17468781 になるときのパーセント点です。

binomdist(x, n, p, flag)

試行回数が n,母比率が p の二項分布の確率を返します。flag が false のとき確率関数の値 f(x),true のときに分布関数の値 F(x)を返します。

例:
binomdist(0,10,0.5,false) は 0.000976563 を返します。
binomdist(2,10,0.5,true) は 0.0546875 を返します。

次のような式をワークシートに書き込むことにより,

ABC
10=binomdist(a1,10,0.5,true)=binomdist(a1,10,0.5,false)
21=binomdist(a2,10,0.5,true)=binomdist(a2,10,0.5,false)
32=binomdist(a3,10,0.5,true)=binomdist(a3,10,0.5,false)
43=binomdist(a4,10,0.5,true)=binomdist(a4,10,0.5,false)
54=binomdist(a5,10,0.5,true)=binomdist(a5,10,0.5,false)
65=binomdist(a6,10,0.5,true)=binomdist(a6,10,0.5,false)
76=binomdist(a7,10,0.5,true)=binomdist(a7,10,0.5,false)
87=binomdist(a8,10,0.5,true)=binomdist(a8,10,0.5,false)
98=binomdist(a9,10,0.5,true)=binomdist(a9,10,0.5,false)
109=binomdist(a10,10,0.5,true)=binomdist(a10,10,0.5,false)
1110=binomdist(a11,10,0.5,true)=binomdist(a11,10,0.5,false)

以下のような表が得られます。

xF(x)f(x)
00.0009765630.000976563
10.0107421880.009765625
20.0546875000.043945313
30.1718750000.117187500
40.3769531250.205078125
50.6230468750.246093750
60.8281250000.205078125
70.9453125000.117187500
80.9892578130.043945313
90.9990234380.009765625
101.0000000000.000976563

critbinom(n, p, F)

二項分布分布関数の値 F(x) が指定された値以上になるような最小の値 x を返します。

例:critbinom(10,0.5,0.9) は 7 を返します。これは,試行回数が 10,母比率が 0.5 のとき,F(x) > 0.9 であるような,最小の x です。すなわち,上の表で,binomdist(7,10,0.5,true) > 0.9 であることを表しています。

poisson(x, lambda, flag)

ポアソン定数(平均値)が lambda であるポアソン分布の確率関数値または分布関数値を返します。flag が false のとき確率関数の値 f(x),true のときに分布関数の値 F(x)を返します。

例:ポアソン定数が 1.2 であるようなポアソン分布に関する数表を作るには以下のようにします。

A B C
1 x f(x) F(x)
2 0 =poisson(a2,1.2,false) =poisson(a2,1.2,true)
3 1 =poisson(a3,1.2,false) =poisson(a3,1.2,true)
4 2 =poisson(a4,1.2,false) =poisson(a4,1.2,true)
5 3 =poisson(a5,1.2,false) =poisson(a5,1.2,true)
6 4 =poisson(a6,1.2,false) =poisson(a6,1.2,true)
7 5 =poisson(a7,1.2,false) =poisson(a7,1.2,true)
8 6 =poisson(a8,1.2,false) =poisson(a8,1.2,true)
9 7 =poisson(a9,1.2,false) =poisson(a9,1.2,true)
10 8 =poisson(a10,1.2,false) =poisson(a10,1.2,true)
11 9 =poisson(a11,1.2,false) =poisson(a11,1.2,true)
12 10 =poisson(a12,1.2,false) =poisson(a12,1.2,true)
13 11 =poisson(a13,1.2,false) =poisson(a13,1.2,true)

これにより,以下のようなポアソン分布の数表が得られます。

A B C
1 x f(x) F(x)
2 0 0.3011942 0.3011942
3 1 0.3614331 0.6626273
4 2 0.2168598 0.8794871
5 3 0.0867439 0.9662310
6 4 0.0260232 0.9922542
7 5 0.0062456 0.9984998
8 6 0.0012491 0.9997489
9 7 0.0002141 0.9999630
10 8 0.0000321 0.9999951
11 9 0.0000043 0.9999994
12 10 0.0000005 0.9999999
13 11 0.0000001 1.0000000

hypgeomdist(r, n, R, N)

超幾何分布の確率関数の値を返します。引数は 4 個です。1 つ目は標本の中に含まれるある特性を持つものの個数,2 つ目は標本の大きさ,3 つ目は母集団の中に含まれるある特性を持つものの個数,4 つ目は母集団の大きさです。hypgeomdist(r,n,R,N) は,超幾何分布を表す定義式を excel の数学関数 combin を用いて combin(R,r)*combin(N-R,n-r)/combin(N,n) とすることと同じです。

例:一組のトランプから 5 枚のカードを引いたとき,エースが 0 〜 4 枚含まれる確率の表を作るには以下のようにします。

A B
1 x f(x)
2 0 =hypgeomdist(a2,5,4,52)
3 1 =hypgeomdist(a3,5,4,52)
4 2 =hypgeomdist(a4,5,4,52)
5 3 =hypgeomdist(a5,5,4,52)
6 4 =hypgeomdist(a6,5,4,52)
7 =sum(b2:b6)

これにより,以下の表が得られます。

A B
1 x f(x)
2 0 0.6588420
3 1 0.2994736
4 2 0.0399298
5 3 0.0017361
6 4 0.0000185
7 1.0000000

expondist(x, lambda, flag)

指数定数(平均値)が lambda である指数分布の密度関数の値または分布関数の値を返します。flag が false のとき密度関数の値 f(x),true のときに分布関数の値 F(x)を返します。
密度関数の値は expondist(x,λ,false) で求められますが,これは指数分布の密度関数式,f(x) = λexp(-λx) をそのまま Excel の式で表現した λ*exp(-λ*x) と全く同じです。

例:指数定数が 1.2 であるような指数分布に関する数表を作るには以下のようにします。

A B C
1 x f(x) F(x)
2 0 =expondist(a2,1.2,false) =expondist(a2,1.2,true)
3 1 =expondist(a3,1.2,false) =expondist(a3,1.2,true)
4 2 =expondist(a4,1.2,false) =expondist(a4,1.2,true)
5 3 =expondist(a5,1.2,false) =expondist(a5,1.2,true)
6 4 =expondist(a6,1.2,false) =expondist(a6,1.2,true)
7 5 =expondist(a7,1.2,false) =expondist(a7,1.2,true)
8 6 =expondist(a8,1.2,false) =expondist(a8,1.2,true)
9 7 =expondist(a9,1.2,false) =expondist(a9,1.2,true)
10 8 =expondist(a10,1.2,false) =expondist(a10,1.2,true)
11 9 =expondist(a11,1.2,false) =expondist(a11,1.2,true)
12 10 =expondist(a12,1.2,false) =expondist(a12,1.2,true)
13 11 =expondist(a13,1.2,false) =expondist(a13,1.2,true)

これによって表示される数表は以下のようになります。

A B C
1 x f(x) F(x)
2 0 1.2000000 0.0000000
3 1 0.3614331 0.6988058
4 2 0.1088615 0.9092820
5 3 0.0327885 0.9726763
6 4 0.0098757 0.9917703
7 5 0.0029745 0.9975212
8 6 0.0008959 0.9992534
9 7 0.0002698 0.9997751
10 8 0.0000813 0.9999323
11 9 0.0000245 0.9999796
12 10 0.0000074 0.9999939
13 11 0.0000022 0.9999981

weibull(x, a, b, flag)

ワイブル分布の分布関数または密度関数の値を返します。a,b はパラメータ,flag が false のとき密度関数の値 f(x),true のときに分布関数の値 F(x)を返します。
a = 1 のときには,weibull(x,1,b,false) ≡ expondist(2,1/b,false) の関係があります。

例:weibull(2,1,3,false) 【≡expondist(2,1/3,false)】は 0.17113904 を返します。
weibull(2,1,3,true) 【≡expondist(2,1/3,true)】 は 0.17113904 を返します。

gammaln(x)

ガンマ関数の値の自然対数,すなわち ln(Γ(x)),を返します。exp(gammaln(x)) とすることで,ガンマ関数の値が求められます。x が正の整数値であるときは,exp(gammaln(x))≡factorial(x)≡x! です。

例:
gammaln(5) は 3.17805383 を返します。exp(3.17805383) は 24 となり,これは factorial(5-1)=4!=24 です。
gammaln(2.5) は 0.28468287 を返します。

negbinomdist(x, k, p)

負の二項分布の確率関数の値 f(x) = combin(x+k-1,x)*p^k*(1-p)^x を返します。

例:成功率(母比率)が 0.8 のとき,5 回の成功を見るまでに x 回の失敗を見る確率は以下のようにして求めることができます。

A B
1 k 5
2 p 0.8
3 x f(x)
4 0 =negbinomdist(a4,k,p)
5 1 =negbinomdist(a5,k,p)
6 2 =negbinomdist(a6,k,p)
7 3 =negbinomdist(a7,k,p)
8 4 =negbinomdist(a8,k,p)
9 5 =negbinomdist(a9,k,p)
10 6 =negbinomdist(a10,k,p)
11 7 =negbinomdist(a11,k,p)
12 8 =negbinomdist(a12,k,p)
13 9 =negbinomdist(a13,k,p)

これにより以下の表が作成されます。

A B
1 k 5
2 p 0.800
3 x f(x)
4 0 0.3276800
5 1 0.3276800
6 2 0.1966080
7 3 0.0917504
8 4 0.0367002
9 5 0.0132121
10 6 0.0044040
11 7 0.0013841
12 8 0.0004152
13 9 0.0001200

betadist(x, a, b, l ,u)

ベータ分布の分布関数の値を返します。l,u が省略されたときはそれぞれ 0,1 が仮定され標準ベータ分布の分布関数値を返します。

例:
betadist(0.3,2,3,0,1) は 0.3483 を返します。
自由度が n の t 分布において t0 より大きい値を取る両側確率は tdist(n,t0,2) です。これは,betadist(n/(n+t0^2),n/2,1/2,0,1) と同じです。
自由度が n1, n2 の F 分布において f0 より大きい値を取る確率は fdist(f0,n1,n2) です。これは,betadist(n2/(n2+n3*f0),n2/2,n1/2) と同じです。

betainv(p, a, b)

ベータ分布のパーセント点を返します。

例:
betainv(0.3483,2,3) は 0.299999952 を返します。これは,betadist(0.3,2,3,0,1) が 0.3483 を返すのと逆の関係があります。

gammadist(x, a, b, flag)

ガンマ分布の分布関数の値を返します。a,b はパラメータ,flag が false のとき密度関数の値 f(x),true のときに分布関数の値 F(x)を返します。

例:
gammadist(1,3,5,true) は 0.001148481 を返します。
gammadist(1,3,5,false) は 0.003274923を返します。
1-gammadist(3.84,1/2,2,true) は chidist(3.84,1) と同じで,0.050043531 を返します。

gammainv(p, a, b)

ガンマ分布のパーセント点を返します。

例:=gammainv(0.001148481,3,5) は 1.000007614 を返します。これは,gammadist(1,3,5,true) が 0.001148481 を返すのと逆の関係にあります。


・ 直前のページへ戻る  ・ E-mail to Shigenobu AOKI