z検定

ヒストグラムや確率密度関数(確率分布のグラフ)は起こりやすさを表しています。
山の高いところは起こりやすく、山の低いところは起こりにくいところです。

  • 平均を中心に左右標準偏差 2つ分に95%が入ると考えるのが統計的推測、
  • 標準偏差 2つ分より中心から離れることはあり得ないと考えるのが統計的検定です。

標準正規分布

平均0, 標準偏差1の確率変数の確率密度関数は、
   \(\phi \left( z\right) =\dfrac{1}{\sqrt{2\pi }}\exp \left( -\dfrac{z^{2}}{2}\right)\sim N(0,1)\)  で表され標準正規分布と言います。

curve(dnorm(x, 0, 1),xlim=c(-4, 4),ylim=c(0, 0.4), col=1,xlab="z")

\(P(-2<z<2)=0.954\) (約 95%)であることから、\(|z|>2\) は起こり得ないと考えます。
(平均0から標準偏差2つ分離れることはあり得ない)

母分散 \(\sigma^2\) が既知のとき

標準化式  \(z=\dfrac{x-\mu}{\sigma}\sim N(0,1)\)
z はマハラノビスの距離といい、 x が平均から標準偏差いくつ分離れているかを表します。

これにより、
データが1個のとき
  \(z=\dfrac{x-\mu}{\sigma}\sim N(0,1)\) により平均値の検定や区間推定ができます。
  \(|z|>2\) のとき、あり得ないことが起こったと考え平均\(\mu\) を棄却します。

データがn個のとき
  \(\bar{X}=\dfrac{x_1+x_2+\cdots+x_n}{n}\sim N\left(\mu,\dfrac{\sigma^2}{n}\right)\) により\(\bar{X}\)を標準化します。

  \(z=\dfrac{\bar{x}-\mu}{\sigma/\sqrt{n}}\sim N(0,1)\) により平均値の検定や区間推定ができます。

母分散 \(\sigma^2\) が未知のとき

データが1個のとき
   \(\sigma\)は未知で近似値も分からないので平均値の検定はできません。
データがn個のとき
   \(\sigma\)は未知ですが近似値で推定することができます。
偏差平方和の計算で、
   \((x_1-\mu)^2+(x_2-\mu)^2+\cdots+(x_n-\mu)^2\) の代わりに
   \((x_1-\bar{X})^2+(x_2-\bar{X})^2+\cdots+(x_n-\bar{X})^2\) で代用するのです。
しかしここで、自由度という考えが必要になります。

自由度とは自由に独立に動く変数の個数と説明されることが多いです。
独立な確率変数の分散には加法性があるので、
 独立な変数が1個の分散は \(\sigma^2\)
 独立な変数が2個の和の分散は \(2\sigma^2\)
 独立な変数が3個の和の分散は \(3\sigma^2\)
 \((x_1-\mu)^2+(x_2-\mu)^2+\cdots+(x_n-\mu)^2\)は独立な変数n個の和なので分散は \(n\sigma^2\)
 (nで割った数が母分散の推定値になります)

\((x_1-\bar{X}),~(x_2-\bar{X}),\cdots\) は独立ではありません。
事実だけを述べれば、
\(E\left((x_1-\bar{X})^2+(x_2-\bar{X})^2+\cdots+(x_n-\bar{X})^2\right)=(n-1)\sigma^2\) となり自由度は(n-1)になります。

その式の分散が\(\sigma^2\) の何倍になるか、その倍数の数が自由度というほうが的を得ているでしょう。

偏差平方和の期待値

乱数を用いたRによる出力例を下に示します。
x_i は平均1、標準偏差1の確率変数を10個出力したもの。
y_i はその標本偏差平方和です。
偏差平方和は、\((n-1)\sigma^2=9 \cdot 1=9\)となるはずです。
偏差平方和を1000回計算し平均します。

#繰り返し
v=0
for (i in 1:10000) {
  x_i <- rnorm(10,mean=1,sd=1)
  y_i <- sum((x_i-mean(x_i))^2)
  v <- v+y_i
}
  v/10000
## [1] 9.020613

偏差平方和は \((n-1)\sigma^2=9\)
母分散の推定値を求めるには、偏差平方和を9で割ればよいことになります。
(自由度は9です)

標準誤差とt分布

   \(s^2=\dfrac{1}{n-1}\left[(x_1-\bar{X})^2+(x_2-\bar{X})^2+\cdots+(x_n-\bar{X})^2\right]\)
\(\sigma^2\) の推定値として利用できることになりました。
\(s^2\)は母分散の推定値ですが、データ数によって値が異なることに注意が必要です。
\(\sigma\) の代わりに sを用いて標準化した分布もデータの数によって異なります。
これを 自由度(n-1)のt分布 といいます。
   \(t=\dfrac{\bar{x}-\mu}{s/\sqrt{n}}\sim t(n-1)\)
\(s/\sqrt{n}\)\(\bar{X}\)標準誤差といいます。

t 検定

母分散が未知の状況で平均を検定するには t検定によるしかありません。
次に示す「1標本t検定」は、患者さんに薬を投与したとき、投与前と投与後で変化があるかどうかを検定する方法です。
医薬生物学の分野でよく用いられる検定です。

一標本 t 検定

市原清志先生の「バイオサイエンスの統計学」の問題を、統計ソフト”R”で解説します。 詳細については、市原先生のテキスト(p28)を参照ください。

[基本]

n組のデータにつき各ペアの差 \(d\) を求め、その平均値 \(\overline{d}\) を統計量とする。
<帰無仮説>
   \(d\sim N(0\:,\:\sigma_d^2)\)(各ペアに差がない) より \(\overline{d}\sim N\left(0\:,\:\dfrac{\sigma_d^2}{n}\right)\) が成立。

差の母分散 \(\sigma_d^2\) が既知の場合は、 \(z=\dfrac{\bar{d}}{\sigma_d/\sqrt{n}} \sim N(0,1)\) によるZ検定となるが、
母分散が未知のため標本分散 \(s_d^2\) で代用し、\(\overline{d}\) を標準誤差 \(s_d/\sqrt{n}\) で割ると
   \(t=\dfrac{\bar{d}}{s_d/\sqrt{n}} \sim t(n-1)\): 自由度 \((n-1)\) の t分布に従う。


[例2-1]バセドウ病患者(p28)

6人のバセドウ病患者に薬を投与したとき、投与の前後で脈拍数に変化があるかどうか検定する。

pre<-c(98,88,100,96,107,114)
post<-c(86 ,73 ,95 ,92 ,99 ,116)
(x <- data.frame(pre,post,d=pre-post))
pre post d
98 86 12
88 73 15
100 95 5
96 92 4
107 99 8
114 116 -2

薬の投与後、血圧は下がっているように見えます。この変化が有意なものかどうかRで調べます。

帰無仮説「preとpostで変化がない」のもとで、
\(~~~~~d=pre-post\) は、\(d\sim N(0\:,\:\sigma_d^2)\):0を平均とした正規分布に従い、
標本標準偏差(標準誤差)で標準化した \(~~~t=\dfrac{\bar{d}}{s_d/\sqrt{6}} \sim t(5)\)  は、自由度5の t 分布に従います。
自由度 5の t 分布 とは、このような調査を無限回行った場合の t値の分布であり、0を中心としています。

par(family = "HiraKakuProN-W3") 
curve(dnorm(x, 0, 1),xlim=c(-5, 5),ylim=c(0, 0.4), col=2,xaxp=c(-6,7,13))
curve(dt(x, 5),xlim=c(-5, 5),col=3, add=T) 
legend( "topleft",legend=c("標準正規分布","t分布"), col=c("red","green"),lty=c(1,1))

t分布の裾の面積は標準正規分布の裾の面積より大きいので、有意水準5%の境界点はt検定の方が大きくなります。この結果、t検定の方が有意差が出にくくなります。
両側t検定のrコードは、t.testで”two.sided”をオプションとします。

pre<-c(98,88,100,96,107,114);post<-c(86 ,73 ,95 ,92 ,99 ,116)
res<- t.test(pre,post,paired=TRUE,alternative ="two.sided")
res
## 
##  Paired t-test
## 
## data:  pre and post
## t = 2.8265, df = 5, p-value = 0.03683
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
##   0.6338082 13.3661918
## sample estimates:
## mean of the differences 
##                       7

\(\bar{d}=7\)\(t=\dfrac{\bar{d}}{s_d/\sqrt{6}}=2.8265 \sim t(5)\) p-value = 0.03683 で、有意水準5%で有意ではありません。

統計学備忘録様 を参考にさせていただきました。

2標本 t 検定

2つの独立した母集団があり、それぞれの母集団から抽出した標本の平均に差があるかどうかを検定する方法を「2標本t検定」といいます。

2 つのグループを X グループと Y グループとします。
前提条件は、

  • XとYのデータ値が独立で、2つの正規母集団から無作為に抽出されていること
  • XとYの独立したグループが等分散性を満たすこと

ざっくりしたイメージは、
  「標準偏差とは誤差であり、標本から得た観測値は ±(標準偏差) の誤差を持つ」

2つのグループからデータを得たとき、
  差が標準偏差程度であれば誤差の範囲と考え、
  誤差の2倍を超えていれば有意な差があると判断します。
  (検定はこの操作を精密に行うだけです)

簡単な例で、このイメージを確認しましょう。 正規性などの仮定は少し目をつむります。
標本平均の分散はサンプル数の平方根分の1ですが、これも簡単のため目をつむります。
(イメージが理解できたところで正確な公式を提示します)
分散は、x, y ともに1としておきます。

平均差の違いによる検定出力

平均の差が2であるようなサンプルでは、rのt検定では差は有意となります。
xのデータをyより小さく設定しているので、対立仮説は、
  alternative hypothesis: true difference in means is less than 0.
とした片側検定を行います。

x<-c(1:3);y<-c(3:5) 
d<-data.frame(x,y);d
x y
1 3
2 4
3 5

箱ひげ図とt検定の結果は、

boxplot(x,y,names=c("x","y"))

t.test(x,y,paired=FALSE,alternative ="less",var.equal=T)
## 
##  Two Sample t-test
## 
## data:  x and y
## t = -2.4495, df = 4, p-value = 0.03524
## alternative hypothesis: true difference in means is less than 0
## 95 percent confidence interval:
##        -Inf -0.2593544
## sample estimates:
## mean of x mean of y 
##         2         4

p-value = 0.03524 から、平均の差は有意水準 5%で有意です。

次に、
平均の差が1であるようなサンプルでは、t検定は差は有意となりません。

x<-c(1:3);y<-c(2:4) 
d<-data.frame(x,y);d
x y
1 2
2 3
3 4
boxplot(x,y,names=c("x","y"),ylim=c(1,5))

t.test(x,y,paired=FALSE,alternative ="less",var.equal=T)
## 
##  Two Sample t-test
## 
## data:  x and y
## t = -1.2247, df = 4, p-value = 0.1439
## alternative hypothesis: true difference in means is less than 0
## 95 percent confidence interval:
##       -Inf 0.7406456
## sample estimates:
## mean of x mean of y 
##         2         3

p-value = 0.1439 より、平均の差は有意ではありません。

このように、
平均の差が標準偏差の一定倍以上大きければ、差は有意と判定され、
平均の差が標準偏差の一定倍以上小さければ、差は有意と判定されません。

分散の違いによる検定出力

今度は分散を大きくしてみます。
平均の差に比べて分散が大きい場合は、差が誤差変動の範囲内と見なされ
有意とはなりません。

x<-c(1:3);y<-c(2,5,8) 
d<-data.frame(x,y);d
x y
1 2
2 5
3 8
boxplot(x,y,names=c("x","y"))

t.test(x,y,paired=FALSE,alternative ="less",var.equal=T)
## 
##  Two Sample t-test
## 
## data:  x and y
## t = -1.6432, df = 4, p-value = 0.08785
## alternative hypothesis: true difference in means is less than 0
## 95 percent confidence interval:
##       -Inf 0.8922019
## sample estimates:
## mean of x mean of y 
##         2         5

p-value = 0.08785 から、有意水準5%で有意とはなりません。
これは標本yの誤差変動(標準偏差)が大きく、平均の差は誤差の範囲であるからです。

[注意]
2標本t検定には、「2つの標本の分散が等しい」という前提が必要ですが、 実際の場面では2つの標本の分散が一致していることはありません。
しかし、「2つのグループの分散が等しい」という帰無仮説が棄却されないことが要請されます。差の大きさを判断するために共通の分散を設定する必要があります。

プールされた分散

上の例で、「x,yの分散が等しい」という帰無仮説をF検定で検定すると、

var.test(x,y) 
## 
##  F test to compare two variances
## 
## data:  x and y
## F = 0.11111, num df = 2, denom df = 2, p-value = 0.2
## alternative hypothesis: true ratio of variances is not equal to 1
## 95 percent confidence interval:
##  0.002849003 4.333333333
## sample estimates:
## ratio of variances 
##          0.1111111

p-value = 0.2 であり、等分散仮説は棄却されません。
x,yの分散は共通であるという前提で進むことになりますが、現実にx,yの分散は異なっています。 それは、誤差のためであると考え、実際の共通分散を推定する必要があります。
これがプールされた分散です。

少し難しいですが、立ち入って計算してみましょう。

計算方法

xの偏差平方和 \((1-2)^2+(2-1)^2+(3-2)^2=2\)  自由度 2
yの偏差平方和 \((2-5)^2+(5-5)^2+(8-5)^2=18\)  自由度 2

プールされた偏差平方和 \(2+18=20\) 自由度 4
xの標本分散は 1 、yの標本分散は 9 ですが、
プールされた分散は \(\dfrac{2+18}{4}=5\) となります。

この共通分散を使うと、 \(\bar{x}\)の分散は 5/3 、\(\bar{y}\)の分散は 5/3
\(\bar{x}-\bar{y}\)の分散は \(\dfrac{5}{3}+\dfrac{5}{3}=\dfrac{10}{3}\)

この標準偏差 \(\sqrt{\dfrac{10}{3}}\) を物差しにして、\(\bar{x}-\bar{y}\) が標準偏差いくつ分か計算したものが t値です。
即ち、 \(t=\dfrac{5-2}{10/\sqrt{3}}=-1.643\)   Rが出力した t値と一致します。
自由度は、プールされた偏差平方和の自由度で 4 となります。
(t検定の表で自由度4のところを参照することができます)