母平均の検定

\(N(170,10)\)からの\(n=100\)のサンプリングデータ.

d<-rnorm(100,170,10)
hist(d,col="skyblue")

c(mean(d),sd(d))
## [1] 169.1495  11.0686

帰無仮説 \[H_0: \mu = \mu_0\] のもとでの\(t\)値を算出する関数を定義する. \[t=\frac{\bar{X}-\mu_0}{S/\sqrt{n}}\] \(\mu_0=165\)としたときの\(t\)値.

t<-function(data,mu0) {
  (mean(data)-mu0)/(sd(data)/sqrt(length(data)))
}
tstat<-t(d,165)
tstat
## [1] 3.748927

標準正規分布を仮定したときの\(p\)値.

2*(1-pnorm(abs(tstat)))
## [1] 0.0001775926

\(t\)分布\(t(n-1)\)を仮定したときの\(p\)値.

2*(1-pt(abs(tstat),length(d)-1))
## [1] 0.0002989832

t.test関数を使って同じことをする.

t.test(d, mu=165)   
## 
##  One Sample t-test
## 
## data:  d
## t = 3.7489, df = 99, p-value = 0.000299
## alternative hypothesis: true mean is not equal to 165
## 95 percent confidence interval:
##  166.9533 171.3458
## sample estimates:
## mean of x 
##  169.1495

帰無仮説\(H_0: \mu=165\)のもとでの\(t\)値の分布を確認する.

repdata<-replicate(10000,t(rnorm(100,165,10),165))
hist(repdata,col="skyblue", prob=TRUE)
curve(dnorm(x,0,1),-4,4,col="red",add=TRUE)

1.96以上,もしくは-1.96以下になる割合.

length(which(abs(repdata)>1.96))/length(repdata)
## [1] 0.0523

母比率の検定

ベルヌーイ分布\(Bern(0.6)\)からの\(n=100\)のサンプリングデータ.

d2<-rbinom(100,1,0.6)
hist(d2,xlim=c(-0.5,1.5),breaks=seq(-0.5,1.5,1),col="skyblue")

帰無仮説 \[H_0: p = p_0\] のもとでの\(z\)値を算出する関数を定義する. \[z=\frac{\hat{p}-p_0}{\sqrt{p_0(1-p_0)/n}}\] \(p_0=0.5\)としたときの\(z\)値.

z<-function(data,p0) {
  (mean(data)-p0)/sqrt(p0*(1-p0)/length(data))
}
zstat<-z(d2,0.5)
zstat
## [1] 0.6

標準正規分布を仮定したときの\(p\)値.

2*(1-pnorm(abs(zstat)))
## [1] 0.5485062

prop.test関数を使って検定.ただし,prop.testでは,以下のzstat^2がカイ二乗分布\(\chi^2(1)\)に従うことを利用して検定している.

prop.test(sum(d2), length(d2), p = 0.5 , correct = FALSE)
## 
##  1-sample proportions test without continuity correction
## 
## data:  sum(d2) out of length(d2), null probability 0.5
## X-squared = 0.36, df = 1, p-value = 0.5485
## alternative hypothesis: true p is not equal to 0.5
## 95 percent confidence interval:
##  0.4328886 0.6248918
## sample estimates:
##    p 
## 0.53
zstat^2
## [1] 0.36
1-pchisq(zstat^2,1)
## [1] 0.5485062