本ページには広告・プロモーションが含まれています。

t検定の説明

t検定とは平均値について差があるか、ないかを調べる手法です。

  • 標本から得られた平均値が母集団の平均値と等しいのかを調べる (1サンプルの検定)
  • 2つのグループの平均値について差があるかを調べる (2サンプルの検定)
    • 2つの独立した母集団から標本を選んでくる場合 ( 対応のない t検定)
    • 1つの母集団から標本を選んでくる場合 ( 対応のある t検定)

カイ二乗検定 と同様に p値 というのを求めて差を検定することができる。

p値とは 実際に観測された分布が理論的に予想される分布にどれだけ近づいているかを表す確率 のこと。有意水準と呼ぶ。

p値が大きければ 、平均値に 差がない ことを示し、 p値が小さければ 、平均値に 差がある ことを示す。

一般にこの値が5%未満(p < 0.05)の場合にデータには「統計学的に有意な差がある」とされるため、 p値が 0.05 未満だと、 平均値には差がある と解釈する。

p値 解釈
p > 0.05 平均値に差があるとは言えない
p < 0.05 平均値に差があると言えそう

ナンバーズの予想に使うには

例として当せん金額を使ったt検定をやってみます。

申込タイプ「ストレート」「ボックス」「セット」「ミニ」によって当せん金額に差があるのかを検定することで、 いつどんなタイプを買えば収支がプラスになりやすいのかを予想する(検討材料とする)ことができます。

当せん金額は理論値と差があるのか? (1サンプルのt検定)

1サンプルの検定は標本から得られた平均値が母集団の平均値と等しいのかを調べる 方法です。

標本を「実際の当せん金額の平均値」、母集団を「理論値の当せん金額」として、 当せん金額が理論値の当せん金額と差があるのか を調べてみます。

ナンバーズ3では申し込みタイプがストレートの場合、 当せん金額の理論値は90,000円 です。

ストレートで当せんすると90,000円くらいは受け取ることができるわけですが 実際の当せん金額の平均金額は以下のようになっています。

第4211回から第4220回のデータです。

第4211回から第4220回 ストレートの当せん金額
ストレートの当せん金額(円)
回号
4220 84,600
4219 113,200
4218 86,000
4217 99,600
4216 52,500
4215 82,100
4214 82,000
4213 91,600
4212 86,100
4211 104,100
当せん金額の平均値 88,180

実際の当せん金額の平均値は 88,180 ということで理論値である90,000円より少ないように見えますが本当に差があるのでしょうか?

obs = [84600,113200,86000,99600,52500,82100,82000,91600,86100,104100]
# 2つ目の引数は期待値(理論値)である90,000円を指定する。
t,p = scipy.stats.ttest_1samp(obs, 90000)
# p値
0.73217570675665056

p値は有意水準 5% より大きい( 0.05 < 0.73 ) ので、当せん金額の平均値は理論値の当せん金額90,000円を下回っているとは言えないとなります。

2グループの平均値の検定(対応なし)

対応なしの検定は、2つの独立した母集団から標本を選んでくる場合に用いる 手法です。

まず「2つの独立した母集団」というのを「月曜日」と「金曜日」としてみましょう。

「月曜日」と「金曜日」の抽せん数字は独立していると考え、これらのストレートの当せん金額について平均値に差があるのかを検定してみます。

用いるデータは2015年8月の第2週目と3週目の「月曜日」と「金曜日」の当せん金額です。

2015年8月: 月曜日と金曜日のストレートの当せん金額
月曜日 ストレートの当せん金額(円) 金曜日 ストレートの当せん金額(円)
2015年8月
第2週目(2015/8/3, 2015/8/7) 95,100 84,900
第3週目(2015/8/10, 2015/8/14) 105,500 82,700
当せん金額の平均値 100,300 83,800

当せん金額の平均値の差は16,500円もあり、月曜日に買って当せんするほうが金額が大きいと言えそうですが本当にそうなのでしょうか?

というわけで、対応なしの検定方法です。

obs_mon =  [95100, 105500]
obs_fri = [84900, 82700]
t,p = scipy.stats.ttest_ind(obs_mon, obs_fri)
# p値
0.089979735319439411

p値は有意水準 5% より大きい( 0.05 < 0.08 ) ので、当せん金額の平均値に差があるとは言えないとなります。

# 2つの母集団が等しい平均を持つという仮説を検定する(ウェルチのt検定)場合
t,p = scipy.stats.ttest_ind(obs_mon, obs_fri, equal_var=False)
# p値
0.18169652859097074

こちらも p値は有意水準 5% より大きい( 0.05 < 0.18 ) ので、当せん金額の平均値に差があるとは言えないとなります。

もっと多くのデータを分析すると「差がある」と言える結果がでてくるかもしれません。

2グループの平均値の検定(対応あり)

対応ありの検定は、1つの母集団から標本を選んでくる場合に用いる 手法です。

1つの母集団というのを「同じ回号」とします。 そして同じ回号から得られた「セット(ボックス)」と「ミニ」の当せん金額をもとに平均値を検定します。

セット(ボックス)は抽せん数字が「3個の数字がすべて異なる場合」と「3個のうち、2個が同一数字の場合」では当せん確率と理論値の当せん金額が異なるので、ミニよりも当せん金額が低いこともある。

そこで、当せん金額の平均値に差があるなら、当せん金額が多い申し込みタイプを買うほうが良いのではないかという判断材料にできそうなので、セット(ボックス)とミニの当せん金額に差はあるのかを検定してみるのです。

第4201回と、第4202回のセット(ボックス)とミニの当せん金額で検定しましょう。

第4201回から第4202回: セット(ボックス)とミニの当せん金額
セット(ボックス) の当せん金額(円) ミニ の当せん金額(円)
回号
4202 9,900 11,900
4201 15,800 9,500
当せん金額の平均値 12,850 10,700

当せん金額の平均値の差はセット(ボックス) のほうが2,150円上回っています。セット(ボックス) を買って当せんするほうが金額が大きいと言えそうでしょうか?

というわけで、対応ありの検定方法です。

obs_set =  [9900, 15800]
obs_mini = [11900, 9500]
t,p = scipy.stats.ttest_rel(obs_set, obs_mini)
# p値
0.69569530936582047

p値は有意水準 5% より大きい( 0.05 < 0.69 ) ので、当せん金額の平均値に差があるとは言えないとなります。

ここでは意図的に、抽せん数字が「3個の数字がすべて異なる場合」と「3個のうち、2個が同一数字の場合」をサンプルとして抽出しました。

次は、どちらの回号も抽せん数字が「3個の数字がすべて異なる場合」として第4202回から第4204回のセット(ボックス)とミニの当せん金額で検定してみます。

第4202回から第4204回: セット(ボックス)とミニの当せん金額
セット(ボックス) の当せん金額(円) ミニ の当せん金額(円)
回号
4204 6,300 7,600
4203 5,900 7,100
4202 9,900 11,900
当せん金額の平均値 7,366 8,866

当せん金額の平均値の差はミニのほうが1,500円上回っています。ミニを買って当せんするほうが金額が大きいと言えそうでしょうか?

obs_set =  [6300, 5900, 9900]
obs_mini = [7600, 7100, 11900]
t,p = scipy.stats.ttest_rel(obs_set, obs_mini)
# p値
0.027012812355076216

p値は有意水準 5% より小さい( 0.05 > 0.02 ) ので、当せん金額の平均値に差があると言えそうです。 この検定結果だけから判断するとミニを買うほうが当せん金額が大きくなると期待できるかもしれません。


最終更新日: 2020年01月12日(日)


目次

プロローグ

統計解析

データマイニング

資料集

Back to top