🔍
Student(スチューデント)のt検定
概要
異なる2群の対象に対して平均値に有意な差があるかを検定する手法
※ Welchのt検定と異なり、等分散性を仮定する点が特徴
主な用途
パターン | 説明 | 実務ユースケース |
---|---|---|
群間比較 | 異なる2群の平均を比較 | 施策AとBを別ユーザーに実施しCV率比較 |
属性による比較 | 属性で分けた2群の差を比較 | 男女の平均購入額の差を検定 |
施策 vs 非施策 | 施策あり・なし群で効果比較 | メール配信ありvsなしでCTR比較 |
ランダム分割テスト | 無作為に2群を作り効果を検証 | ボタンA/Bでクリック率の差を検定 |
データ要件
- 従属変数:数値型(例:CV率、購入額、CTR、クリック率など)
- 属率変数:独立した2群の比較(例:施策AvsB、男女、メール配信ありvsなし、ボタンAvsBなど)
- 前提条件:
- 比較する2群間に独立性がある
- 各群の従属変数が正規分布に従う ※対応のあるt検定は「差分」と異なるので注意
- 2群の分散が等しい(等分散性)
理論
異なる2群(施策AvsB、男女など)の母平均の差がない(=差が0)であるかを検定
- 帰無仮説:2群の母平均に差がない
- 対立仮説:差があった(両側検定)、一方が大きい/小さい(片側検定)
【検定の手順】
-
2群の平均と分散を算出
群1:標本平均 ,不偏分散\bar{x}_1 ,標本サイズ(データ数)s_1^2 n_1
群2:標本平均 ,不偏分散\bar{x}_2 ,標本サイズ(データ数)s_2^2 n_2
共通の不偏分散(プール分散):
- t統計量の算出
-
,\bar{x}_1 :各群の標本平均\bar{x}_2 -
:プール分散s_p^2 -
,n_1 :各群の標本サイズ(データ数)n_2
-
自由度
の t分布に基づいてp値を算出n_1 + n_2 - 2
→ p値が有意水準(例:0.05)未満なら、平均値に有意な差があると判断
実装コード例
Python
from scipy.stats import ttest_ind
# 2群のデータ ※各群は独立・正規分布に従う・等分散性がある想定
group1 = df[df['group'] == 'A']['value']
group2 = df[df['group'] == 'B']['value']
# Studentのt検定(equal_var=True)
t_stat, p_val = ttest_ind(group1, group2, equal_var=True)
print(f"t値 = {t_stat:.3f}, p値 = {p_val:.3f}")
# 評価(有意水準=0.05、両側検定で設定)
if p_val < 0.05:
print("→ グループAとBに有意な差があります。")
else:
print("→ 有意な差は認められません。")
補足:
equal_var
パラメータの指定について
equal_var=True
:Studentのt検定を指定(デフォルト)
equal_var=False
:Welchのt検定を指定
注意点・Tips
-
前提①「独立2群」である:
家庭・店舗・企業などでグループ分けされている場合は「見かけの独立」に注意
→ 同一対象を比較する場合は「対応のあるt検定」を使用 -
前提②「2群間に等分散性がある」
→ 等分散性があるか不安がある場合は「Welchのt検定」を使う -
前提③「各群が正規分布に従うこと」
→ 外れ値が多い、分布が歪んでいるなどの場合はノンパラメトリック検定を検討
(例:Mann–WhitneyのU検定) - 平均を使うため外れ値に弱い:極端な値が結果を左右する
関連手法
- 前提条件に関連する手法
- Shapiro-Wilk検定(正規性の確認)
- Anderson-Darling検定(正規性の確認)
- Kolmogorov-Smirnov検定(正規性の確認)
- F検定(分散の等質性の確認)
- Levene検定(分散の等質性の確認)
- 類似手法
- Welchのt検定(等質性がない場合の平均比較)
- 対応のあるt検定(同一対象間の平均比較)
- Mann-Whitney検定(独立2群のノンパラメトリック検定)
- ANOVA(多群の平均比較)
Discussion