中野智文のブログ

データ・マエショリストのメモ

小標本における正規分布の信頼区間を Excel で求める

背景

コイン投げのようなベルヌーイ試行の確率の信頼区間

Wilson score interval を使う。 - 中野智文のブログ

でいいとして、母集団が正規分布小標本の場合は、 t 分布で求めるのが、一般的である。

母集団が正規分布に従うときで標本の大きさ(サンプルサイズ)が大きいときは、Wald法による信頼区間を使うことができる。 その標本の大きさが小さいときWald法は使えない。具体的には30未満のときはWald法は使えない。このような Wald法が使えない標本の大きさを 小標本という。 (ベルヌーイ分布の場合には、標本平均にもよるが、もっと大きな数が必要) 母集団が正規分布に従い、小標本だった場合には、t分布を用いる必要がある。

この t分布に基づいた信頼区間Excelで求めたい。

Excel で t 分布 の信頼区間

Excelでは、CONFIDENCE.T 関数 - Office サポート という関数により、t 分布で信頼区間を求めることができる。

一見そのまま使えば良いようだが、標準偏差とは、不偏標準偏差のことだろうか、それとも標本標準偏差のことだろうか。

答え

不偏標準偏差 を使う。

確認

確認は、確率統計のはなし の「貯金額の標本が10万円と30万円の二人だった場合、全員の平均値の信頼区間」の計算結果 p.47

μ = 20±63.14

にて確認する。(なおこの本では、標本標準偏差を使っているが、気にしない)

今、B1 と、B2 にそれぞれ10、30 が入っている。

=CONFIDENCE.T(0.1,STDEV(B1:B2),COUNT(B1:B2))

を計算すると、63.13751515が得られるはず。 ここで、STDEV は不偏標準偏差を、COUNT は標本の大きさを示す。

Google SpreadSheet では?

CONFIDENCE.T がない。CONFIDENCE に統合されているのかと思ったらそうでもないみたい。

信頼区間は次の式で求まる。

{ \displaystyle t \cdot s }

ここで、 { t } は、t分布表の t の値、{ s } は標本標準偏差を表す。

Google SpreadSheet では、t 分布表は、 TINV - ドキュメント エディタ ヘルプ から得る。例えば、先の例だと、10%で、標本の大きさは2なので、自由度はマイナス1して、1。 よって、TINV(0.1, 1) で、6.313751515と計算されるはず。

Google SpreadSheet では、標本標準偏差は、 STDEVP - ドキュメント エディタ ヘルプ から得る。例えば、先の例だと、STDEVP(B1:B2) で10.0と計算されるはず。

結局

=TINV(0.1,COUNT(B1:B2)-1)*STDEVP(B1:B2)

となり、63.13751515 と表示されれば、確認完了。

念のため python での求め方

from scipy import stats
from scipy.stats import t
import numpy as np
a = [10.0, 30.0]
t0, t1 = stats.t.interval(alpha=0.90, df=len(a)-1, loc=np.mean(a), scale=stats.sem(a))
print([t0, t1])
[-43.137515148009399, 83.137515148009328]

信頼区間を直接求めるので、こうなる。

補足

ところで、Microsoft のサイトでは、標本数とあるが、標本の大きさの間違いだろう

sites.google.com

なお、確率統計のはなし では標本の大きさとして 標本の数 というのが出てくるが、「の」が間に入っているからセーフ?