\(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