Takuya Kawanishi

5. データに有意差があるとはどういうことか 1 (t-検定)

5.1 実験結果の有意差

化学工学・生物化学工学系(化学系・生物系)の実験データ

  • 同一条件での繰り返し実験の数が限られる(3〜5). 例えば, ファーメンテーターでの酵素反応実験ならば, 1 回の実験に数日かかることはざら. 多くの条件による違いを検討したければ, 1 条件での繰り返し数は限られる.

有意差があるかどうかを調べるとは

  • 例として, 条件 I と条件 II でそれぞれ 3 回の繰り返し実験を行って, 生産物濃度 x g/L として, 以下の値を得たとする.

xI={10.1,10.4,9.8}xII={10.7,11.6,11.3}

  • これらは, それぞれ, 母集団 I, II からのサイズ 3 のサンプルである.

  • この 2 つの実験結果に有意な差があるかどうか, を判定するのであるが, 統計的には, 条件 I の母集団の平均値 μI と条件 II の母集団の平均値 μII に差があると言えるかどうかを, データ xI, xII にもとづいて調べることになる.

Remark

  • 「有意差がある」, 「有意差があるとは言えない」, という 0 か 1 かの判断ではなく, p 値(後述)や信頼区間を報告することが推奨されている.

  • 通常, p=0.05, p=0.1 以下であれば, それぞれ水準 5%, 10% で有意差が認められる, という.

  • しかし, p 値がこれよりも大きいとき, 「有意差がない」とは言えない. あくまで, 有意差があるはいえない, 差があることを強く示す統計的根拠はない, ということである.

5.2 仮説検定・第 1 種過誤・第 2 種過誤

帰無仮説と対立仮説

  • 否定したい結論を帰無仮説として設定, この仮説のもとに実験結果のようなデータが得られる確率(p-値)を計算し, p が十分小さければ仮説を棄却(reject)する.

  • 2 つのデータに有意な差があるかどうかを判定する場合, 帰無仮説(null hypothesis) H0 は,条件 I の母集団の平均を μI, 条件 II の母集団の平均を μII として

H0:μI=μII
  • 対立仮説(alternative hypothesis) H1

H1:μIμII
  • 仮説は, パラメーターについての仮説であることに注意.

  • 母集団について検定するわけである.

第 1 種過誤・第 2 種過誤

  • 英語では Type-I error, Type-II error である. 訳語はどうも堅苦しい.

  • 第 1 種過誤は, 実は H0 が正しいのに, それを棄却してしまうこと.

  • 第 2 種過誤は, 実は H1 が正しいのに, 棄却しそこなうこと.

5.3 Student の t-検定

なぜ Student の t-検定なのか

  • 化学, 生物分野, 化学工学・生物化学工学では, 同一条件での繰り返し実験数を多くとることは難しく, 慣習として 3 回程度の繰り返し実験の結果からデータ解析を行うことが多い.

  • このような条件下で, 有意差の有無について検定する方法は, Student の t 検定くらいしかない.

注意点

  • Student の t-検定は,

      1. 2 つの母集団がともに正規分布に従っている,

      1. 2 つの母集団の分散が等しい

      1. 2 つの母集団は独立である

       という仮定の上に成り立っている.

  • 仮定が成り立っているか不明な場合については後述

Student の t-検定法の手順

Step 1: 帰無仮説 H0 と対立仮説 H1 を設定する.

  • 例えば, 2 つの標本, xI, xII に有意差があるかどうか検定する場合には, 次の 2 つの仮説を設定する.

H0:μI=μII
H1:μIμII

Step 2: 2 つの標本の平均値の差の t-統計量を求める..

  • 例えば, 独立な 2 標本の t-検定の場合, 標本の大きさを n1, n2, 標本分散(不偏分散)を S1, S2 として, 以下のステップに従って Student の t を計算する.

  • step 2.1 合併分散(pooled variance) Sp2 を計算する.

    (2.1)Sp2=S12(n11)+S22(n21)n1+n22
  • この形だとややこしくみえるが, 実は, Sp2 は, それぞれの平均値に対する差の平方和を自由度 n2 で除したものである. その意味で, 1 群での標本分散と本質的に同じである.

  • また, ここで, 等分散を仮定していることから, 平方和を足すことができる.

  • step 2.2 平均値の差 X¯1X¯2 に関して次の t-統計量を算出する.

    (2.2)T=X¯1X¯2Sp1n1+1n2
  • これらの導出は別項

Step 3: p-値の算出と有意差の検定

  • 自由度 n1+n22t 分布から 統計量 t に対応する p-値を計算する.

  • p<0.1 の場合, 0.1 水準で有意差がある, p<0.05 の場合, 0.05 水準で有意差がある, とする.

Step 4(オプション): 平均値の差の信頼区間の算出

  • 自由度 n1+n22t 分布から, tα, の値を計算し, 信頼区間を次式で算出する(両側検定の場合).

(2.3)(|X¯1X¯2|Sptα,|X¯1X¯2|+Sptα)
  • ここで, Sp=Sp2 は平均値の差の標準偏差で, 合併分散(プールされた分散)の平方根, tα は水準 α における t の値である.

  • 95%信頼区間に 0 が含まれていれば, 0.05 水準で有意差がある, ということになる.


例題 5.1

  • 条件 A, 条件 B ののもとで, それぞれ 3 回の繰り返し実験を行い, 試料中の成分 P の濃度として次の値を得た (単位は, μg/L). それぞれの標本は, 同じ分散をもつ正規分布から得られたものと考えてよいとする.

条件

測定値

A

10.1 10.4 9.8

B

10.7 11.6 11.3

    1. 標本 A, 標本 B それぞれの標本平均と標本標準偏差(不偏分散の平方根)を求めよ.

    1. 標本 A と標本 B の平均値の差の, 合併分散, 標準偏差を求めよ.

    1. 標本 A と標本 B の平均値の差の 95% 信頼区間を求めよ.

    1. 結果は, 水準 α=0.05 で有意であると言えるか.

    1. p-値を求めよ.


解答例

  • 独立 2 群の差の検定であり, ここでは, 独立 2 標本 t-検定を行う.

  • 標本 A, 標本 B それぞれの平均値, 標本分散(不偏分散)と標準偏差(題 1.1 を参照).

標本A:x¯=10.10,s12=0.0900,s1=0.300
標本B:y¯=11.20,s22=0.2100,s2=0.458
  • 平均値の差の標本合併分散 sp2 を式 (2.1) で算出, それをもとに合併標準偏差 sp を計算する.

    sp2=0.150
    sp=0.150=0.387
  • t-検定で信頼区間を算出する. 自由度 4 の t-分布の α=0.05t-値, tαt-分布表から求め, 95% 信頼区間を式 (2.3) で求める.

tα=2.776
(0.222,1.978)
  • 信頼区間による検定: 95% 信頼区間が 0 を含まないので, 水準 α=0.05 で平均値に有意な差があるといえる.

  • p-値による検定: Student の t-統計量を式 (2.2) で計算し, 自由度 3+32=4t-分布から, p-値を計算する.

t=3.478
p=0.02539
  • p-値からも, 水準 α=0.05 で平均値に有意な差があるといえる.

Python での t-検定の例

  • scipy.stats.ttest_ind を使う.

  • 使い方は極めて簡単.

  • t-統計量と p-値が出力される.

  • paired t-test には scipy.stats.ttest_rel を使う.

[44]:
# Scipy.stats.ttest_ind
import numpy as np
import scipy.stats


x = [10.1, 10.4, 9.8]
y = [10.7, 11.6, 11.3]
res = scipy.stats.ttest_ind(x, y)
print(res)
Ttest_indResult(statistic=-3.47850542618521, pvalue=0.02538644793661544)

注意点

  • Student の t-統計量は, 母集団が正規分布に従い, かつ母分散が等しい場合で, 標本サイズが小さいときに用いられる.

なぜ 生物・化学系で Student の t-検定がよく使われるのか

  • 2 群間Student’s :math:`t`-test の仮定: 正規分布, 等分散性, 独立,

  • サンプル数が少ないと正規性の検定は無理(正規性を仮定しても問題ないという根拠が必要だが, 必ずしも根拠が明らかでない場合にも使われれいる).

  • 慣習的に, 同じものを測定しているのだから, 実験データのばらつきは正規分布に従っているだろう, という期待でやっているのが実情であろう.

  • 統計学的にはクエスチョンマークがつくが, 各専門分野ではそれぞれの判断があり得る.

5.3 Welch の t-検定(Welch’s t-test)

等分散性が明らかではなく, サンプル数が極端には少なくないとき,

  • 等分散性が成立するときもしないときも, Welch の t-検定を使う.

  • Welch の t-検定は,

      1. 2 つの母集団がともに正規分布に従っている,

      1. 2 つの母集団は独立である,

      1. 2 つの母集団の分散が等しいか否かはわからない,

       ときに使う.

W=X¯1X¯2S12n1+S22n2
  • W は自由度 νt-分布に従う. ν は次の式で推算できる.

ν^=(S12n1+S22n2)2(S12/n1)2n11+(S22/n2)2n21

例題 5.2

  • 次のような独立なサンプルが得られたとする.

  • Welch の t-test でデータの母数の平均値に有意差があるかどうか検定せよ.

x = [0.61, 1.69, 0.75 , 0.44, 1.16]
y = [1.43, 1.76, 1.79, 1.33]

[69]:
import scipy.stats

x = [0.61, 1.69, 0.75 , 0.44, 1.16]
y = [1.43, 1.76, 1.79, 1.33]
res = scipy.stats.ttest_ind(x, y, equal_var = False)
print(res)
Ttest_indResult(statistic=-2.5649599674782246, pvalue=0.043481803801431025)

解答 5.2

  • scipy.stats.ttest_ind にて, equal_value=False を指定すると Welch の t-test となる.

  • p=0.043 で水準 0.05 で有意な差がある.

5.4 Student vs Welch

Student の t-検定と Welch の t-検定の比較.

Student

Welch

等分散性

等分散が確実

等分散かどうか不明

T 値の分母

Sp1n1+1n2
S1n1+S2n2

自由度

n1+n22

h:: hat nu = frac{left(dfrac{S_1^2}{n_1} + dfrac{S_2^2}{n_2} right)^2}{dfrac{(S_1^2/n_1)^2}{n_1 - 1} + dfrac{(S_2^2/n_2)^2}{n_2 - 1}}

  • ここで, Student の t-検定の欄の Sp は合併分散で, 次で表される.

    Sp2=S12(n11)+S22(n21)n1+n22

演習問題

5.1

  • 合併分散が式 (2.1) のように計算できるのはどのような場合か.

5.2

  • 等分散が成り立つかどうかが不明な場合, まず, F検定で等分散が成り立つかどうかを確認し, この仮定が成り立った場合に Student の t 検定, 成り立たなかった場合に, Welch の t 検定を用いる, という手順がある. 一見もっともそうに見えるが, このやり方には批判がある. web を検索して, なぜこのやり方がダメなのか, 批判派の論点を簡潔にまとめよ.

5.3

  • 前章の例題 4.1 で, サンプル [10.1,10.2,9.3] が, 真の値 (母平均) が 8 に等しいことを棄却するような検定について, 帰無仮説と対立仮説を示せ.

  • 真の値が 8 以下であることの検定について帰無仮説と対立仮説を示せ.

  • それぞれについて, 第1種過誤, 第2種過誤はどのような場合か示せ.

5.4

  • 次の2つのサンプルは共に正規分布に従い, 分散も等しいことがわかっている.

  • 2 つのサンプルが同じ母集団から出たものかどうか検定せよ.

x = [0.8, 2.1, 0.7, 1.3, 0.5]
y = [4.7, 1.8, 2.2, 2.4, 3.7]

5.5

  • 次の2つのサンプルは共に正規分布に従うが, 分散については情報がない.

  • 2 つのサンプルが同じ母集団から出たものかどうか検定せよ.

x = [2.3, 1. , 1.1, 0.5, 0.6]
y = [3.3, 5.4, 2.5, 3.4, 1.8]