第 3 章 統計的推測 - 推定と検定
3.5 推定・検定の実際
1. Excelによる平均に関する推定と検定(Excel2007までのバージョンにも
対応)
(a) 観測または実験のデータ(標本)を作れ:165,162,171,...
(b) このデータの標本平均X¯をaverage(標本データ範囲)で、標本サイズ nをcounta(標本データ範囲)で出しておこう
(c) 検定において母平均µと比べる量µ0を決めよう
(d) このデータに関して、母平均の区間推定と検定をExcelで行おう
【母分散既知の場合の正規分布による方法】
(a) 信頼区間:[標本平均-d,標本平均+d]、ここでdは-norminv(α/2, 0, sqrt(母分散/標本サイズ))
(b) (注)P(X<norminv(p, m, v))=pなので、p<0.5かつm=0であれ
ばnorminvはマイナス値であることに注意
(c) (注)区間推定で使うのは両側z(α/2)値なので、norminvの第一引 数はα/2となる
(d) 両側検定の棄却域境界値:norminv(危険率/2, 0, sqrt(母分散/標本サ イズ))
(e) 両側検定のP値:normdist(-abs(標本平均-全国平均),0,sqrt(母分散/
標本サイズ), 1)*2
(f) (注)normdist(*, *, 1)は検定統計量までの累積確率を与えるので、
第一引数は絶対値をとる関数absを使ってマイナスであたえる (g) (注)両側P値はnormdistの値の2倍である
(h) 片側検定の棄却域境界値:norminv(危険率, 0, sqrt(母分散/標本サイ ズ))
(i) 片側検定のP値:normdist(-abs(標本平均-全国平均), 0, sqrt(母分散/
標本サイズ), 1)
【母分散未知の場合のt分布による方法】
(a) 信頼区間:[標本平均-t*sqrt(不偏分散/標本サイズ),標本平均+t*sqrt(不 偏分散/標本サイズ)]、ここでtはtinv(α,標本サイズ-1)
(b) (注)不偏分散は:var(標本データ範囲)
(c) (注)P(|X|>tinv(p, n))=pなので、tinvの場合はαをそのまま第 一引数として指定して正の両側t(α)値となる
(d) 両側検定の棄却域境界値:tinv(危険率,標本サイズ-1) (e) 両側検定のP値:tdist(abs(標本平均-全国平均), 0, 2) (f) (注)tdistの第3引数が2であると両側P値を与える
(g) (注)tdistは第一引数にマイナス値を与えるとエラーになるのでabs
(絶対値をとる関数)を使っている
(h) 片側検定の棄却域境界値:tinv(2*危険率,標本サイズ-1)
(i) (注)tinvは両側t(α)値を与えるので、片側の場合は危険率を2倍 する
(j) 片側検定のP値:tdist(abs(標本平均-全国平均),0 ,1) (k) (注)tdistの第3引数が1であると片側P値を与える
(l) (注)tdistは第一引数にマイナス値を与えるとエラーになるのでabs
(絶対値をとる関数)を使っている 2. Rによる平均に関する推定と検定
Rの基本的使い方については、この節の最後にまとめているので適宜参照 されたい。
上の母平均の推測はRでも同様に行うことができる。以下をデータを変え て実行してみよう
Rは関数名のみを入力してEnterするとその関数の引数がわかるし、help(関 数名)とすると詳しい使い方がわかる
まず、データを設定し標本サイズ、標準偏差、標本平均を出す。
> data <- c(3,5,4,6,5,7,3,8,4,5)
> n <- length(data)
> s <- sd(data)
> x_bar <- mean(data)
これに対し、正規分布による区間推定と検定を行う。
【母分散既知の場合の正規分布による方法】
sd(data)はdataの不偏標準偏差である。qnorm(p)は正規分布のP(X ≦ z) =pなるzである。pnorm(z)は正規分布のP(X ≦z)である
> z <- qnorm(0.975,mean=0,sd=s/sqrt(n))
> c(x_bar-z, x_bar+z) [1] 3.987879 6.012121
> 2*(1-pnorm(abs(6-x_bar),mean=0,sd=s/sqrt(n))) [1] 0.05280751
5%信頼区間を求めている。既知とする母分散には標本不偏分散を用いてい る(以下のt分布による方法との比較のため)。最後は、母平均が6を下回 るかの両側検定での(両側)P値である。
今度は同じデータに対し、t分布による区間推定と検定を行う。
【母分散未知の場合のt分布による方法】
qt(p)はt分布のP(X ≦t) =pなるtである。pt(x)はt分布のP(X ≦t) である
> t <- qt(0.975,df=n-1)*s/sqrt(n)
> c(x_bar-t, x_bar+t) [1] 3.831827 6.168173
> 2*(1-pt(abs(6-x_bar)/(s/sqrt(n)),n-1)) [1] 0.08478521
同じデータについて5%信頼区間と6を下回るかの検定をしているが、正 規分布の方法より精度は低い。
実は、Rには上の分析を一発でやる関数があるのでそれを使ってみよう:
> t.test(data,mu=6) One Sample t-test data: data
t = -1.9365, df = 9, p-value = 0.08479
alternative hypothesis: true mean is not equal to 6 95 percent confidence interval:
3.831827 6.168173 sample estimates:
mean of x 5
ここでは上と同様に両側検定を行っている。左片側にするには以下のよう にする。
> t.test(data,mu=6,alternative="less") One Sample t-test
data: data
t = -1.9365, df = 9, p-value = 0.04239
alternative hypothesis: true mean is less than 6 95 percent confidence interval:
-Inf 5.946615 sample estimates:
mean of x 5
これまでの母平均の検定はある定数と比べるものであったが、2つの母集 団の母平均を比べることも多い。これは理論はテキストに述べてあるとお りなので(授業でやっていなくても)ここで、Rを用いて実行してみよう。
上で実行したままに続けて以下を行う。
> data2 <- c(4,4,5,6,5,7,6,6,9,6)
> t.test(data,data2,var.equal=F) Welch Two Sample t-test
data: data and data2
t = -1.1494, df = 17.819, p-value = 0.2656
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
-2.2633529 0.6633529 sample estimates:
mean of x mean of y
5.0 5.8
3. Rによる2項検定
無作為に選んだ100人からある政策に賛成かを聞いたところ賛成が55人 であった。賛成の割合が半数を越えたといってよいか検定せよ。という問 題を上述のように2項検定で右片側検定する。
まず、pbinom(k,n,p)を使ってP値を求めてみる。これはB(n, p)に従う Xに関してP(X≦k)を返す。
> 1-pbinom(54,100,0.5) [1] 0.1841008
これはP値を、B(100,0.5)に従うXに関してP(55≦X) = 1−P(X ≦54) として求めている。つぎにこれと同じことをbinom.testでやってみる。
> binom.test(c(55,45),p=0.5,alternative="greater") Exact binomial test
data: c(55, 45)
number of successes = 55, number of trials = 100 p-value = 0.1841
alternative hypothesis: true probability of success is greater than 0.5
95 percent confidence interval:
0.4628896 1.0000000 sample estimates:
probability of success 0.55 4. Rによる独立性の検定
以下は、前述の演習と成績の関係についての例題の再実行であるが、今回 はデータをファイルから読み込んでやってみよう。まず以下のようなテキ ストファイルをdata3.txtというファイル名で作成する(Excelの表をテキ ストデータで保存するか、エディタで作成するなど)。
20 49 10 6 20 41 0 12 34
ただし、数の区切りは「タブ」にしておくのがよい。
以下を行う前に、Rでディレクトリ指定しないで読み込むために、ファイ ルメニューから作業ディレクトリをdata3.txtを保存したディレクトリに 変更をしておく。
> data3<-read.table("data3.txt")
> data3 V1 V2 V3 1 20 49 10 2 6 20 41 3 0 12 34
> chisq.test(data3)
Pearson’s Chi-squared test data: data3
X-squared = 59.2687, df = 4, p-value = 4.132e-12
Rの実行結果は直接Rコンソール画面をドラッグコピーしてエディターに張っ て保存しよう
Rの基本的使用法:
1. Rの起動は、Windowsでは通常デスクトップ上のRのアイコンをダブル クリックする。するとRのコンソールと呼ばれるものが立ち上がる 2. Rのコンソールの>はこの右にコマンドを書くための印でプロンプトという 3. 以下は、データ3,4,5を変数dに代入するコマンドを入力したところである。
> d <- c(3,4,5)
<-は代入を意味する記号である(不等号<とマイナス記号-の二文字からで きている)。多くの場合=でもよいが、<-が標準である。この入力後Enter キーを押すことでこのコマンドが実行される
4. 上のコマンド実行後、dの値を知りたければ(dにちゃんと代入されたか 確かめたければ)単に
> d
と入力してEnterを押せば良い [1] 3 4 5
と表示される
5. Rのコンソール上では、既に実行したコマンドをマウスでクリックしても再 実行できない。再実行は上側矢印を押して過去のコマンドを呼出してEnter を押すことで行われる