一部から全体を見積もる
標本調査は、全体の一部だけを調べて、全体の値を見積もる方法です。全部を調べなくても、数十日分から、全体の平均がどの範囲にあるかを、幅つきで言えます。
貸し自転車の店は、1年の平均貸出台数を、31日分の記録だけから見積もりたいのです。
このレッスンのゴール
メモ
標本の平均から、全体の平均がどの範囲にあるかを言うことができる。
キーワード
| ことば | いみ | れい |
|---|---|---|
| 母集団 | 知りたい全体 | 1年の365日 |
| 標本 | 母集団から取り出した一部 | |
| 偏り | 標本が母集団を正しく映していないこと | |
| 標準誤差 | 標本平均が、取り方で揺れる大きさの目安 | |
| 標本標準偏差 | 2乗の合計を、個数マイナス1で割って求める標準偏差 | |
| 信頼区間 | 母集団の平均が入ると見積もる範囲 |
学生が入力するセルは、このプレビューでは空白です。
標本は母集団の一部
知りたい全体を母集団、そこから取り出した一部を標本と言います。ここでは、365日が母集団で、取り出した日が標本です。
標本の大きさより大事なのは、母集団を正しく映しているかどうかです。映していない標本には、偏りがあります。
標本の取り方で平均が変わる
docker exec jupyter python3 -c "import csv; h = [int(r['hires']) for r in csv.DictReader(open('hires.csv'))]; print(round(sum(h) / len(h), 1), round(sum(h[:31]) / 31, 1), round(sum(h[::12]) / len(h[::12]), 1))"ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
標本平均は取り方で揺れる
標本を取りなおすたびに、標本平均は少し違う値になります。この揺れの大きさの目安が標準誤差です。
標準誤差は、標本の標準偏差を、個数の平方根で割って求めます。標本が大きいほど、小さくなります。
例: 5日の標本の標準誤差
| 求めるもの | 値 |
|---|---|
| 標本 | 10、12、14、16、18 |
| 平均 | 14 |
| 平均との差の2乗の合計 | 16 + 4 + 0 + 4 + 16 = 40 |
| 分散 (個数マイナス1で割る) | 40 ÷ 4 = 10 |
| 標本標準偏差 | 約3.16 |
| 標準誤差 (5の平方根で割る) | 3.16 ÷ 2.24 = 約1.41 |
学生が入力するセルは、このプレビューでは空白です。
信頼区間は見積もりの幅
標本平均の前後に、標準誤差の1.96倍を取った範囲が、95%信頼区間です。母集団の平均は、この範囲に入ると見積もります。
例では 14 ± 1.96 × 1.41 で、約11.2から約16.8です。同じ方法で区間を何度も作ると、約95%が本当の平均を含みます。
31日の標本から区間を出す
docker exec jupyter python3 -c "import csv, statistics as s; h = [int(r['hires']) for r in csv.DictReader(open('hires.csv'))][::12]; m = sum(h) / len(h); e = s.stdev(h) / len(h) ** 0.5; print(len(h), round(m, 1), round(e, 2), round(m - 1.96 * e, 1), round(m + 1.96 * e, 1))"ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
よくある間違い
注意
多くの人は、標本を大きくすれば、いつも正しい答えに近づくと考えます。標本の取り方に偏りがあれば、個数を増やしても同じ方向にずれます。まず取り方を確かめ、そのあとで個数を考えてください。
区間を計算で出す
# 5日分の標本から、平均の区間を出します。
values = [10, 12, 14, 16, 18]
n = len(values)
mean = sum(values) / n
total = 0
for v in values:
total = total + (v - mean) ** 2
sd = (total / (n - 1)) ** 0.5
error = sd / n ** 0.5
print("平均:", mean)
print("標準誤差:", round(error, 2))
print("区間:", round(mean - 1.96 * error, 1), "から", round(mean + 1.96 * error, 1))
# 18 を 28 に変えて、区間の幅を比べてください。
さらに挑戦: 10日ごとの標本
ノートブックで、hires["hires"][::10] を使い、10日ごとの標本から区間を作ってください。
12日ごとの区間と比べて、幅はどう変わりましたか。365日の本当の平均は、区間に入っていますか。