# 迴圈練習:*T* 檢定與中央及限定裡模擬
###### tags: `R教學` `基礎教學`
```r=
rm(list=ls())
#### t test p-value calculation ####
t.test(x, mu = 7)
t.test(rnorm(20, 1, 1), rnorm (20, 2, 1))
#### normal distribution and mean ####
curve(dnorm(x, 5, 2),lwd = 3, xlim = c(-5,15))
x <- rnorm(10, mean = 5, sd = 2)
mean(x)
##### 中央極限定理 #####
##1. 從常態分佈 (mean = 5, sd = 2) 中隨機抽取 10 個樣本,其平均的分布
mean (rnorm(10, mean = 5, sd = 2))
c.m <- numeric(1000)
c.sd <- numeric(1000)
for( i in 1:1000){
a <- rnorm(10, 5, 2)
c.m[i] <- mean(a)
c.sd[i] <- sd(a)
}
hist(c.m, freq=F, breaks = 19, main = "樣本數 = 10")
curve(dnorm(x, 5, 2/sqrt(10)), add=T, col = 1, lty = 1, lwd = 2)
##2. 把平均的分布標準化
s.c.m <- (c.m-5)/(c.sd/sqrt(10))
hist(s.c.m, freq=F, ylim= c(0,0.4), main = "樣本數 = 10", breaks = 19)
curve(dnorm(x, 0, 1), add=T, col = 1, lty = 1, lwd = 2)
polygon (c(seq(-4, qnorm(0.025, 0, 1), length = 100), rev(seq(-4, qnorm(0.025, 0, 1), length = 100))),
c(dnorm (seq(-4, qnorm(0.025, 0, 1), length = 100), 0, 1),rep(0, 100)),
col = rgb(red=1, green=0, blue=0, alpha = 0.5), border = NA)
polygon (c(seq(qnorm(0.975, 0, 1), 4, length = 100), rev(seq(qnorm(0.975, 0, 1), 4, length = 100))),
c(dnorm (seq(qnorm(0.975, 0, 1), 4, length = 100), 0, 1),rep(0, 100)),
col = rgb(red=1, green=0, blue=0, alpha = 0.5), border = NA)
##3. 信賴區間
text(-2, 0.15, paste0("down = ",round(qnorm(0.025, 0, 1)*(2/sqrt(10))+5, 2)), cex = 1.5)
text( 2, 0.15, paste0("up = ", round(qnorm(0.975, 0, 1)*(2/sqrt(10))+5, 2)), cex = 1.5)
##4. 理論數值與實際數值
length(s.c.m[s.c.m<qnorm(0.025, 0, 1)|
s.c.m>qnorm(0.975, 0, 1)])/1000
##5. T 分布 and 常態分佈
hist(s.c.m, freq=F, ylim= c(0,0.4), main = "樣本數 = 10", breaks = 19)
curve(dnorm(x, 0, 1), add=T, col = 1, lty = 1, lwd = 2)
curve(dt(x, 9), add=T, col = 2, lty = 1, lwd = 2)
abline (v = qnorm(0.025, 0, 1), lwd = 2)
abline (v = qt(0.025,9), col = 2, lwd = 2)
#根據常態切位的實際數值
text(-1.8, 0.35, paste0("PN = ", length(s.c.m[s.c.m<qnorm(0.025, 0, 1)|s.c.m>qnorm(0.975, 0, 1)])/1000),
adj=c(0,1), cex = 1.5)
text(-3.5, 0.35, paste0("PT = ", length(s.c.m[s.c.m<qt(0.025, 9)|s.c.m>qt(0.975, 9)])/1000),
adj=c(0,1), cex = 1.5, col = 2)
length(s.c.m[s.c.m<qnorm(0.025, 0, 1)|
s.c.m>qnorm(0.975, 0, 1)])/1000
length(s.c.m[s.c.m<qt(0.025, 9)|
s.c.m>qt(0.975, 9)])/1000
t.test(x, mu = 7)
(mean(x)-7)/(sd(x)/sqrt(10))
pt(-4.976963, 9)*2
```