t検定の考え方|Logics of Blue

https://logics-of-blue.com/t-test/

ライブラリのインポート

In [1]:
# 必要なライブラリのインポート
import numpy as np
import pandas as pd
import scipy as sp
from scipy import stats

# 表示桁数の指定
%precision 3
Out[1]:
'%.3f'
In [2]:
# データを用意する
data = pd.DataFrame({
  "X": [2, 0, 3, -3, 4, 1, -1, 4],
  "Y": [5, -1, 2, -1, 7, 3, 4, 5]
})

print(data)
   X  Y
0  2  5
1  0 -1
2  3  2
3 -3 -1
4  4  7
5  1  3
6 -1  4
7  4  5

t検定の実行

In [3]:
# 1標本のt検定
stats.ttest_1samp(data.X, 0)
Out[3]:
Ttest_1sampResult(statistic=1.4182715723279384, pvalue=0.19905953953787844)
In [4]:
# 対応のあるt検定
stats.ttest_rel(data.X, data.Y)
Out[4]:
Ttest_relResult(statistic=-2.4111323733951022, pvalue=0.046696268859509782)
In [5]:
# 分散が等しいことを仮定したt検定
stats.ttest_ind(data.X, data.Y, equal_var=True)
Out[5]:
Ttest_indResult(statistic=-1.299867367239363, pvalue=0.21464181738984914)
In [6]:
# 分散が異なることを仮定したt検定(Welchの方法)
stats.ttest_ind(data.X, data.Y, equal_var=False)
Out[6]:
Ttest_indResult(statistic=-1.299867367239363, pvalue=0.21506175265308078)