t検定

/

t検定について

タグ t検定


概要

  • 母分散がわからない場合に、標本平均と母平均の差の検定

導出

あるサンプルからその平均を求める

\[\bar{x} = \frac{1}{n} \sum_{i=1}^{n}x_i\]

/中心極限定理/平均の分散の不偏推定量からサンプルの平均は正規分布に従う

\[\bar{x} \sim N \left(\mu, \frac{\sigma^2}{n} \right)\]

これを標準化することで統計量を\(z\)として

\[z = \frac{\bar{x} - \mu}{\sqrt{\frac{\sigma^2}{n}}} \sim N(0, 1)\]

母分散がわからないとき、不偏分散\(S^2\)を用いることで自由度\(n-1\)の\(t\)分布に近似できる

\[t = \frac{\bar{x} - \mu}{\sqrt{\frac{S^2}{n}}} \sim t(n-1)\]

Pythondでの例

t検定の実行

import scipy.stats as stats

# 2つのサンプルデータ
data1 = ["データ1の値群", ...]
data2 = ["データ2の値群", ...]

# t検定の実行(等分散性を仮定)
t_statistic, p_value = stats.ttest_ind(data1, data2, equal_var=True)
print(f"t統計量: {t_statistic}, p値: {p_value}")

# t検定の実行(等分散性を仮定しない)
t_statistic, p_value = stats.ttest_ind(data1, data2, equal_var=False)
print(f"t統計量: {t_statistic}, p値: {p_value}")

t検定に必要なサンプルサイズの計算

import statsmodels.stats.power as smp

# 効果量、パワー、有意水準を設定
effect_size = 0.5  # 中程度の効果
power = 0.8
alpha = 0.05

# サンプルサイズの計算
sample_size = smp.TTestIndPower().solve_power(effect_size, power=power, alpha=alpha, ratio=1.0, alternative='two-sided')
print(f"必要なサンプルサイズ: {sample_size}")

参考