[問題類型]:
程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來)
[軟體熟悉度]:
入門(寫過其他程式,只是對語法不熟悉)
[問題敘述]:
弱大數法則我還勉強能用丟銅板來"實驗"給學生看...
但是CLT要怎麼做呢= =
所以想用R來做電腦輔助教學...
而且我想示範:
1.不是n>=30就叫做大樣本。
所以除了常態分配和長得比較對稱的均勻分配以外,
其他都選取很極端的機率分佈,
結果n=30之下作Jarque Bera test都拒絕虛無假設。
2.期望值和變異數存在且有限才可適用CLT。
所以我故意選了Cauchy分配來示範。
(抽自柯西分配母體的樣本其平均仍然是柯西分配)
不過,我最後用ks.test的結果怪怪的,
是不是參數沒設定好?(難道沒辦法讓他自己抓常態分配的參數嗎= =)
(用SAS和SPSS都不用調參數....是不是用R作KS檢定一定要指定參數?)
[程式範例]:
#請記得先安裝TSA package
library(TSA)
#X~N(0,1)
set.seed(1)
par(mfrow=c(1,2))
popnorm<-rnorm(n=100000,mean=0, sd=1)
mean(popnorm)
var(popnorm)
plot(density(popnorm))
meannorm<-array(0,dim=c(1000))
for (i in 1:1000) {
meannorm[i]=mean(sample(popnorm,size=30,replace=TRUE))
}
mean(meannorm)
var(meannorm)
plot(density(meannorm))
ks.test(meannorm,"pnorm")
jarque.bera.test(meannorm)
結果:
> ks.test(meannorm,"pnorm")
One-sample Kolmogorov-Smirnov test
data: meannorm
D = 0.3406, p-value < 2.2e-16
alternative hypothesis: two-sided
> jarque.bera.test(meannorm)
Jarque Bera Test
data: meannorm
X-squared = 4.9045, df = 2, p-value = 0.0861
最後改用這個:
mean<-mean(meannorm)
sd<-sqrt(var(meannorm))
ks.test(meannorm,"pnorm",mean,sd)
結果:
One-sample Kolmogorov-Smirnov test
data: meannorm
D = 0.029, p-value = 0.3692
alternative hypothesis: two-sided
沒有違背預期的結果。
[關鍵字]:
電腦輔助教學, 機率, 中央極限定理
附註:以下試驗其他機率分佈
http://ideone.com/UkhaJO
為節省版面,貼到網路上供參考。