Pythonで対応のないt検定をやってみる【心理統計】

こんにちは、ヒロムです。

心理統計でお馴染みt検定ですが、今回はPythonで「対応のないt検定」をやっていきたいと思います。

Pythonで対応のあるt検定を実施する

前提

・検定は、Welchの検定をを行う。

・サンプルサイズは12。

・有意水準は5%とし、両側検定を行う。

 

対応のないt検定を実施する

ではPythonで対応のないt検定を実施しましょう。

まずはデータをアップロード。

import numpy as np
import pandas as pd

data = {"実験群":  [43, 29, 50, 40, 45, 53, 39, 45, 35, 42, 50, 51], 
        "統制群": [29, 27, 34, 43, 37, 43, 48, 44, 29, 31, 40, 45]}
df = pd.DataFrame(data, index = ["ID" + str(i+1) for i  in np.arange(12)])

df.head(3)

 

このデータをもとに、実験群と統制群の得点の間に差があるのかどうかを調べてみます。

公式をプログラムで実装することもできますが、scipyというライブラリにはt検定ができるメソッドがあるので、そちらで簡単に実装したいと思います。また、equal_val = Falseとすることで等分散を仮定しないWelchの検定を行うことができます。Trueとすると、Studentの検定を行います。

from scipy import stats as ss
t, p = ss.ttest_rel(df["実験群"], df["統制群"], equal_var=False)

print( "t値 = %(t)s" %locals() )
print( "p値 = %(p)s" %locals() )

出力結果:

t値 = 2.129

p値 = 0.045

 

p < .05 なので、実験群と統制群の得点の間に有意な差があった (t (11) = 2.129, p = .045) と解釈できますね。

i.e. 実験群の得点の方が統制群の得点よりも高いことが示されました。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です