t検定の数学
メニューを表示するにはスワイプしてください
t検定の数学的な仕組みを理解することは、実際のA/Bテストで自信を持って適用するために不可欠です。t検定は、2つの独立したサンプルの平均値を比較し、観測された差が統計的に有意か、または偶然によるものかを判断するのに役立ちます。そのためには、t統計量を計算する必要があります。これは、帰無仮説のもとでサンプル平均の差がゼロから標準誤差何個分離れているかを測定する指標です。
t統計量の公式(2つの独立したサンプルの場合)は次の通りです:
t=n1s12+n2s22xˉ1−xˉ2ここで:
- xˉ1 および xˉ2 はグループ1とグループ2のサンプル平均;
- s12 および s22 はサンプル分散;
- n1 および n2 はサンプルサイズ。
分母は両グループの推定分散をそれぞれのサンプルサイズで割って合計し、平均の差の標準誤差を算出します。この公式は、2つのサンプルが独立しており、分散が等しくない場合にも適用できます。
t統計量の有意性を判断するには、自由度(df)も必要です。これは、結果を解釈する際に用いるt分布の形状に影響します。分散が等しくない2つのサンプルの場合、Welch-Satterthwaiteの式で近似します:
df=n1−1(s12/n1)2+n2−1(s22/n2)2(n1s12+n2s22)2この方法は、サンプルサイズや分散が等しくない場合でも頑健であり、実際のA/Bテストでよく利用されます。
123456789101112131415161718192021222324252627282930313233import numpy as np # Sample data for two independent groups group1 = np.array([23, 21, 19, 24, 25, 22]) group2 = np.array([30, 28, 27, 31, 29, 32]) # Calculate sample means mean1 = np.mean(group1) mean2 = np.mean(group2) # Calculate sample variances (ddof=1 for sample variance) var1 = np.var(group1, ddof=1) var2 = np.var(group2, ddof=1) # Sample sizes n1 = len(group1) n2 = len(group2) # Calculate t-statistic se = np.sqrt(var1/n1 + var2/n2) t_statistic = (mean1 - mean2) / se # Calculate degrees of freedom using Welch-Satterthwaite equation numerator = (var1/n1 + var2/n2) ** 2 denominator = ((var1/n1)**2) / (n1 - 1) + ((var2/n2)**2) / (n2 - 1) df = numerator / denominator print(f"Sample mean 1: {mean1:.2f}") print(f"Sample mean 2: {mean2:.2f}") print(f"Sample variance 1: {var1:.2f}") print(f"Sample variance 2: {var2:.2f}") print(f"t-statistic: {t_statistic:.3f}") print(f"Degrees of freedom: {df:.2f}")
t統計量と自由度を計算した後、結果の解釈方法は以下の通りです:
- t分布の臨界値と比較する、またはp値を計算する;
- 自由度を考慮してt統計量の絶対値が大きい場合、サンプル平均の差は偶然によるものとは考えにくく、帰無仮説を棄却できる;
- t統計量が小さい場合、データは帰無仮説に対する強い証拠を示さず、グループ間の平均値に差があるとは結論できない。
このプロセスは仮説検定に不可欠であり、A/Bテストにおける結論の信頼性を支えます。
すべて明確でしたか?
フィードバックありがとうございます!
セクション 1. 章 4
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください
セクション 1. 章 4