Python
scipy
numpy
matplotlib

2標本問題の理解を深めよう

はじめに

今回は2つの独立した母集団からそれぞれサンプル(標本)を持ってきたとき、その2つの標本の比較を扱う問題を考えます。すなわち、「標本平均の差の標本分布」と「標本分散の比の標本分布」を検討します。

そのために、以下に挙げる東大出版会「統計学入門」の練習問題10.5と10.6に回答することを目標として進めていきたいと思います。

10.5
母平均μ₁=2, 母分散σ₁²=3の正規母集団から大きさm=10の標本を、母平均μ₂=5, 母分散σ₂²=4の正規母集団から大きさn=8の標本を抽出する。二つの標本平均の差の標本平均を求めよ。

10.6
10.5の二つの標本から標本分散の比s₁²/s₂²を計算するとき、その比がcを超える確率が0.05となるような定数cの値を求めよ。

開発環境

python3
google colab

前提知識

標本平均・標本分散の性質

期待値・分散の変換に関する公式

・E(aX+b)=a(X)+b 
・V(aX+b)=a²(X)

独立な二確率変数の和の期待値・分散に関する公式

・E(X+Y)=E(X)+E(Y)
・V(X±Y)=V(X)+V(Y)

標本平均の差の標本分布

まずは一問目に取り掛かります。では手始めに計算なしで標本を抽出して分布を見てみましょう。

a.py
import numpy as np
import matplotlib.pyplot as plt

n = 80000
m = 8000
# n/m must be integer
box = np.array([])

for i in range(m):

  a = np.random.normal(2,np.sqrt(3),n)
  avr1 = sum(a[(i-1)*10:i*10 - 1])/ 10
  b = np.random.normal(5,2,n)
  avr2 = sum(b[(i-1)*8:i*8 - 1]) /8

  ans = avr1 - avr2
  box = np.append( box, ans )

else:
  plt.hist(box,bins=100)

image.png

どうやら平均が-3~-2くらいの正規分布になりそうですね。

では普通に計算すると(こっちの方が楽)
期待値:2-5=-3
分散:3/10 + 4/8 = 0.8
よってこんな正規分布。
image.png

シミュレーションは正しかったようですね!

標本分散の比の標本分布

では第二問に移りましょう

b.py
n = 40000
m = 4000
box2 = np.array([])

for i in range(m):

  a = np.array(np.random.normal(2,np.sqrt(3),n))
  avr1 = sum(a[(i-1)*10:i*10 - 1])/ 10
  v1 = -(sum((a[(i-1)*10:i*10 - 1])*2)/ 10 + avr1**2)*(10/9)
  b = np.array(np.random.normal(5,2,n))
  avr2 = sum(b[(i-1)*8:i*8 - 1]) /8
  v2 = -(sum((b[(i-1)*8:i*8 - 1])**2) /8 +avr2**2)*(8/7)

  v = v1/v2
  box2 = np.append( box2, v )

else:
  plt.hist(box2,bins=100)

image.png

カイ二乗分布やF分布と近い分布ですね。

じゃあまた普通に計算してみましょう。
標本分散の比を考えるときは「F分布」を使うと相場が決まっております。ちなみにF分布は
$F=\frac{\chi^2_1(k_1)/k_1}{\chi^2_2(k_2)/k_2}$
的なものに従い、つまり独立な2つのカイ二乗分布を自由度で割ったものの比です。カイ二乗分布は自由度を引数にとって一意に定まるのでF分布は二つの値(自由度)によって定まります。

なんやかんやで次のコードで答えが出ます。

c.py
from scipy.stats import f

p=f.ppf(0.95,9,7)
3/4 *p

パーセント点の話はscipyでさまざまなバリエーションがあり秒で出てきます。最高。
これで答えが2.7575060242046328と返ってきます。

そして今回出した答えは巻末の解答と一致しました!やったね!

今回の位置づけを考える

二標本問題は大きく6つの問題に分けられます。それは、

標本分布の期待値の差を考え、
[1]母分散既知
[2]未知だが等しい
[3]未知
標本分布の分散の比を考え、
[4]母分散既知
[5]未知だが等しい
[6]未知

の6つです。

今回扱ったのは[1]と[4]の限られた場合での話でしたが、その他の問題の場合はまた少々異なるアプローチが有効になります。

参考

・「基礎統計Ⅰ 統計学入門」(東京大学出版会)
scipy.stats - scipyの統計関数群のAPI
pythonでF分布の計算をする