PythonによるT-検定仮説

スポンサーリンク

生物学的研究であれ、母集団研究であれ、あらゆる種類の研究に利用できる様々な種類の統計検定があります。

StudentのT-検定、または単にT-検定もそのような検定で、2つの異なるグループの間の平均を評価するために使用されます。

これは2標本T-検定と呼ばれ、また特定の値を持つものは1標本T-検定と呼ばれます。

今回は、T-検定について詳しく説明します。

スポンサーリンク

T-検定とは何か、なぜ有用なのか?

T-検定は,異なるグループの平均または特定のグループの特定の平均を比較した後,推論を導くために使用されるパラメトリック検定である.T-検定は、連続確率分布の一種であるt-分布に従います。

T-検定は、大きな標本データにのみ有効なZ-検定とは異なり、小さな標本サイズのデータ(n<=30)に特に有効です。

また、非常に小さいデータ(n<=5)に対しても、T-検定は非常に有効です。

p値とアルファ値とは?

P値とは、実際に実験をして得られた値よりも大きな値が得られる確率の指標を与えるものです。

アルファ値は、帰無仮説が真であるときに、それを棄却する確率を示す。

アルファの値は5 %または0.05です。

ですから、p値がアルファより大きければ帰無仮説を受け入れ、アルファより小さければ対立仮説を受け入れることになります。

T-検定の種類

T-検定には3つの種類があります。

それぞれについて詳しく見ていき、Pythonでどのように実装するかを学んでいきましょう。

1. 1標本のT-検定

1標本のt検定または1標本のt検定は、母集団の無作為標本の平均と、すでに知られている母集団の平均を比較するのに使われます。

例えば、インドの赤ちゃんの平均出生体重が2,499gであることを知っていて、今、赤ちゃんのサンプルの平均出生体重をこのすでに知られている平均値と比較したいのです。

では、この検定の仮説を見てみましょう。

  • 包括仮説(Null Hypothesis)。この場合、標本の平均は母集団の既知の平均値と同じです。
  • 対立仮説。対立仮説: この場合、標本平均は、既知の母集団の平均値よりも大きいか小さい。
  • もう1つの対立仮説は、標本平均が母集団の既知の平均値と等しくないというものです。

Pythonでこれをどのように実装するか見てみましょう。

  • 帰無仮説。帰無仮説:面積の平均は5000です。
  • 対立仮説。対立仮説:面積の平均は5000でない。
import scipy.stats as stats
import pandas as pd
 
data = pd.read_csv('C://Users//Intel//Documents//areas.csv')
t_statistic, p_value = stats.ttest_1samp(a=data, popmean=5000)
print(t_statistic , p_value)

結果は、以下の通りになります。

[-0.79248301] [0.44346471]

ここで、我々はp値が0.05より大きいことがわかるので、帰無仮説を受け入れ、対立仮説を棄却することになる。

2. 2標本のt検定

2標本のt-検定、または対になっていない独立検定は、2つの個別グループの平均を比較することによって、どのように互いに異なるかを決定するために使用されます。

この種のt検定では、まず標本平均が導かれ、次に標本平均から母平均または未知平均が導かれる。

例えば 2つのグループがあり、それらの平均値を比較することによって、これら2つのグループがどれだけ有意に異なるかを比較したい。

注意:2つのグループは同じ母集団から独立にサンプリングされる必要があります。

この種のt検定の仮説を見てみましょう。

  • 帰無仮説。帰無仮説:2つの群の平均値が等しいとき、それは真です。
    *対立仮説: 対立仮説:2つの群の平均が異なるとき。

これをpythonでどう解釈するか見てみましょう。

import numpy as np
 
group1 = np.array([14, 15, 15, 16, 13, 8, 14, 17, 16, 14, 19, 20, 21, 15, 15, 16, 16, 13, 14, 12])
group2 = np.array([15, 17, 14, 17, 14, 8, 12, 19, 19, 14, 17, 22, 24, 16, 13, 16, 13, 18, 15, 13])
import scipy.stats as stats
 
stats.ttest_ind(a=group1, b=group2, equal_var=True)

結果は以下の通りです。

Ttest_indResult(statistic=-0.6337397070250238, pvalue=0.5300471010405257)

p値は0.05より大きいので、帰無仮説を受け入れることになります。

3. 対のT-検定

対のt検定は、同じ被験者または母集団について、一対の従属変数の差を比較するために使用されます。

このタイプの t-検定は、特に対の測定値があるときに使用できます。

たとえば、ある母集団での薬の効果を調べることができます。

投薬の前と後で、薬の効果を見ることができます。

仮説を見てみましょう。

  • 包括仮説(Null Hypothesis)。両被説明変数が等しく、両者の差はゼロに等しい。
  • 代替仮説。2つの従属変数の間に差がある。
  • もう1つの対立仮説は、2つの独立変数がゼロより大きいか小さいかであることができる。

注意: このタイプの検定のオブザベーションは、お互いに独立にサンプリングされるべきです。

Pythonでこれをどのように実装するか見てみましょう。

今回は、ある母集団における投薬前と投薬後のデータを生成します。

pre = [88, 82, 84, 93, 75, 79, 84, 87, 95, 91, 83, 89, 77, 90, 91]
post = [91, 84, 88, 90, 79, 80, 88, 90, 90, 96, 88, 85, 81, 74, 92]
import scipy.stats as stats
stats.ttest_rel(pre, post)

を出力します。

Ttest_relResult(statistic=-0.36856465236305264, pvalue=0.7179658269802107)

両側p値は0.05より大きいので、帰無仮説を受け入れる。

まとめ

今回は、Pythonで様々なt検定について学びました。

t検定は、非常に少ないサンプル数でも適用できるという利点があります。

対のt検定の場合、サンプルサイズが小さい場合は2つのグループの対内相関が高いか、rが0.8以上であることが望ましいとされています。

タイトルとURLをコピーしました