検定とはなんでしょうか。
異常な値が出てくれば機械に異常があると考えるのが検定です。
「今日は調子が悪いな、風邪かもしれないな」というのも広い意味での検定であり、検温をして平熱よりどれくらい高いかをみると統計的検定に近くなります。
直感的判断があり、それを確率的に裏付けようとするのが検定であり、その書き方は裁判のように堅苦しいものになるので敬遠する人もいます。
ここでは直感的な判断に重きをおき、ヒストグラムを用いて説明します。
抽出関数sampleを用いて確率変数を構成します。
probは抽出比率 5:3:2 を決めるオプションです。
A=c(0,1,2)
X <- sample(A, size = 10000, replace = TRUE,prob=c(5,3,2))#標本
prop.table(table(X))
## X
## 0 1 2
## 0.4928 0.3042 0.2030
mean(X)
## [1] 0.7102
var(X)
## [1] 0.6118771
4枚のカード1,2,3,4から2枚を引くとき
1枚目をX1、2枚目をX2 とします。
カードをもとに戻すとき、復元抽出といいます。
1回目と2回目は独立になり、どのXに対してもYは均等に出力します。
カードをもとに戻さないとき、非復元抽出といいます。
1回目に出たカードは2回目に出ることはありません。
同時分布の対角成分は0になります。
U=c(1,2,3,4)
X=c()
Y=c()
for (i in 1:10000){
s <- sample(U, size = 2, replace = TRUE)
X <- c(X,sum(s[1]))
Y <- c(Y,sum(s[2]))
}
prop.table(table(X,Y))
## Y
## X 1 2 3 4
## 1 0.0639 0.0604 0.0595 0.0615
## 2 0.0693 0.0624 0.0644 0.0646
## 3 0.0657 0.0608 0.0598 0.0622
## 4 0.0644 0.0592 0.0596 0.0623
カードを2枚ずつ用意しておけば確率が0になることはありませんが、1枚目に出た数字のカードは減っているので、2枚目に出る確率は小さくなります。
2回目は1回目の影響を受けるので、独立ではありません。
U=c(1,2,3,4)
X=c()
Y=c()
for (i in 1:10000){
s <- sample(U, size = 2, replace = FALSE)
X <- c(X,sum(s[1]))
Y <- c(Y,sum(s[2]))
}
prop.table(table(X,Y))
## Y
## X 1 2 3 4
## 1 0.0000 0.0899 0.0805 0.0889
## 2 0.0830 0.0000 0.0809 0.0814
## 3 0.0803 0.0853 0.0000 0.0789
## 4 0.0857 0.0824 0.0828 0.0000
U=c(1,2,3,4,1,2,3,4)
X=c()
Y=c()
for (i in 1:10000){
s <- sample(U, size = 2, replace = FALSE)
X <- c(X,sum(s[1]))
Y <- c(Y,sum(s[2]))
}
prop.table(table(X,Y))
## Y
## X 1 2 3 4
## 1 0.0335 0.0688 0.0735 0.0703
## 2 0.0678 0.0370 0.0764 0.0744
## 3 0.0731 0.0721 0.0359 0.0695
## 4 0.0692 0.0725 0.0681 0.0379
不良品率0.05の工場から品物を購入することにしました。
不良品を1、正常な品物を0と表示することにし、10000個購入すると
A=c(0,1)
X <- sample(A, size = 10000, replace = TRUE,prob=c(0.95,0.05))
table(X)
## X
## 0 1
## 9520 480
barplot(table(X))
mean(X)
## [1] 0.048
var(X)
## [1] 0.04570057
このような分布をベルヌーイ分布といいます。
二項分布の乱数生成関数 rbinom() の試行回数の引数sizeを1に指定することで、ベルヌーイ分布に従う乱数を生成できます。
x <- rbinom(10000,1,0.05)
table(x)
## x
## 0 1
## 9502 498
不良品率0.05の工場から毎日1個ずつ1年間購入すると1年間の不良品の個数は、 \(X=X_1+X_2+\cdots+X_{365}\)
Xはベルヌーイ分布の和であり二項分布となります。
x <- rbinom(10000,365,0.05)
hist(x)
回数が365と多いので、二項分布は正規分布に近い形状になっています。
「層化抽出法」は発展的な内容ですが、統計調査の根拠となるものです。
別ページ
を設けたので参照してください。
「標本平均とその分布」については、統計的推定と統計的仮説検定を参照してください。
コインが正常かどうか、100回のうち41回表が出た結果をもとに検定する。
正常であるという状態を帰無仮説の状態と考えます。 「確率が0.5」というのが帰無仮説になります。
コインを100回投げて表の出る回数をXとすると、Xは二項分布に従います。 この実験を1セット行うとXが出力されます。
x <- rbinom(1, 100, 0.5)
x
## [1] 43
この実験を10000セット行います。
x <- rbinom(10000, 100, 0.5)
hist(x,breaks = "Sturges")
今、1セットの実験で41回表、即ち、X=41 が得られたとします。
この結果は異常でしょうか?(中心50から離れすぎでしょうか?)
ヒストグラムで見ると、X=41 は起きることはあるようです。
10000セットの実験のうち X<41 である回数を数えると
sum(x<41)
## [1] 287
X<41 は、ある程度の回数は起こりうることがわかります。
X<31 は、起こりうるでしょうか?
sum(x<31)
## [1] 1
X<31 はほとんど起こりません。
10000回のうち起きる回数が1回以下ならば、確率的には起こらないと考える。これが検定の考え方です。
実際には、確率的基準を決めておき、それ以下ならば確率的に無視できると判断します。
この確率的基準を有意水準といいます。
X<41 は確率では
sum(x<41)/10000
## [1] 0.0287
この値をP値と言い、有意水準と比較して結果を判断します。
中心から離れた値は、確率が小さく異常値と考えられます。
サイコロの場合、右に離れる異常値と左に離れる異常値が考えられます。
有意水準(起こりうるかどうかの基準確率)を0.05とします。
片側0.025ずつ、両側合わせて0.05の範囲を両側にとって、そこに入った値は異常値と考える。このような検定を両側検定といい、両側0.025の範囲を棄却域と言います。
sum(x<41,x>59)
## [1] 568
sum(x<41,x>59)/10000
## [1] 0.0568
中心からX=41より離れる確率は0.05より大きく、確率は小さいですが、ありえないことではないと考えます。
つまり、X=41は棄却域に入らないと判断します。
中心からX=31より離れる確率はどうでしょうか?
sum(x<31,x>69)
## [1] 1
sum(x<31,x>69)/10000
## [1] 1e-04
確率は 0.0001
ほどになり、このようなことが起きることは確率的にありえないと判断します。
つまり、X=31は棄却域に入ります。
このとき、「p=0.5」という帰無仮説は間違っていると判断し棄却します。
帰無仮説という前提のもとで発生する値を乱数をイメージしておき、今得たデータが起こりえない範囲に入っていれば、帰無仮説が間違っているとして棄却する。背理法とよく似た論証法といえます。
中心から右側に異常値を想定することを片側検定と言います。
発芽率が0.6より上がったかどうか、150個のうち102個が発芽したという結果をもとに検定する。
x <- rbinom(10000, 150, 0.6)
hist(x,breaks = "Sturges")
x=102は起こりうるあたいに見えますが、確率を計算すると
sum(x > 102)/10000
## [1] 0.0174
このように、判断は有意水準によって変わってきます。
研究者は、品種改良によって発芽率が改善したと主張したいと思っています。
\(102/150=0.68\)
ですから「発芽率は改善した」というのが研究者の本音です。(これを対立仮説といいます)
しかし「たまたま良かっただけではないか」という反論に対抗するため、統計的な手法で説明しているわけです。
対立仮説を具体的に設定すると検定の検出力が計算されます。
検出力、第1種の過誤(生産者危険)、第2種の過誤(消費者危険)については教科書の範囲を超えているので別に説明をします。
無限母集団の平均 μ、標準偏差 σ とします。
母集団からn個の標本を無作為に抽出した標本の標本平均 \(\bar{X}\) について、
\(\bar{X}\) の平均は \(\mu\) 、分散は近似的に \(\frac{\sigma^2}{n}\) となります。
(復元抽出の場合は各抽出は独立になるので 分散は正確に \(\frac{\sigma^2}{n}\))
非復元で要素の個数がNの母集団から大きさnの標本を抽出するとき、
\(V(\bar{X})=\frac{N-n}{N-1}\times\frac{\sigma^2}{n}\) (有限母集団修正)であり、
nに対してNが十分大きい場合は \(\frac{N-n}{N-1}\fallingdotseq 1\)
であるので \(\frac{\sigma^2}{n}\)
としてよいことになります。
標準偏差は \(\frac{\sigma}{\sqrt{n}}\)
で、母集団の標準偏差の\(\frac{1}{\sqrt{n}}\)
倍になることに注意しておきましょう。
本問では、袋を1つ取り出したときの重さXが確率変数、
無作為に100袋取り出した \(X_1,X_2,\cdots,X_{100}\) の平均\(\bar{X}\)が標本平均で非復元抽出ですが、「袋の山」という表現から袋が無限個あると解釈し、
平均 \(\bar{X}\sim
N\left(\mu,~\dfrac{\sigma^2}{n}\right)\) と考えます。
さて本問に移ります。
「300グラムの表示の品物が297.4しかありませんでした。」
2.6g少ないのは誤差の範囲ではないかと思う人もいるでしょう。
実は、この誤差を数学的にとらえ、数学的に判断するのが統計学なのです。
今、平均300g、標準偏差7.5gの塩の自動販売機から10000個の塩を買って重さを調べたとしましょう。
x <- rnorm(10000,300,7.5)
hist(x,breaks="sturges")
sum(x<297.4)/10000
## [1] 0.37
297.4はありえない数値ではなく、検査したのが1袋なら 2.6gは誤差の範囲だという気がします。
しかし100袋を検査した平均なら判断は変わってきます。
100袋まとめ買いし平均する検査を10000回実行し、前のヒストグラムと比べてみます。
Xbar = c()
for (i in 1:10000) {
xbar <- mean(rnorm(100,300,7.5))
Xbar <-c(Xbar,xbar)
}
mean(Xbar)
## [1] 300.0014
par(mfrow = c(1, 2))#グラフを2つ並べる
hist(x,breaks="sturges",prob=T,xlim=c(270,330))
hist(Xbar,breaks="sturges",prob=T,xlim=c(270,330))
sum(Xbar < 297.4)/10000
## [1] 1e-04
もし「300グラム」という帰無仮説のもとでは、297.4以下となる確率は0.0001レベルで、確率的に起こらないことが起こったことになり、帰無仮説は棄却されます。 1回の調査よりも多数回の調査平均は誤差が小さく、わずかの値から異常が検知されることがわかります。
XをZに変換し正規分布表を用いて確率計算することは検定の本質ではありません。
「帰無仮説のもとで、どのような結果が出力されるか」
乱数を用いたヒストグラムで理解し、今得た結果がどこに位置するかによって
判断することが検定の本質といえるでしょう。