【发布时间】:2014-01-26 06:49:29
【问题描述】:
我正在尝试使用拟合优度检验生成卡方分布。
null.probs=c(0.17,0.37,0.23,0.23);
chi.sq.data <- numeric()
M=1000
samp.size=740
for (k in 1:M) {
samp.data = sample(c("Often","Some","Hardly","Never"),
size=samp.size,
replace=TRUE,
prob=null.probs)
E=samp.size*null.probs;
chi.sq.data[k] <- sum((table(samp.data)-E)^2/E)
}
hist(chi.sq.data,prob=TRUE)
显然我的想法是错误的。
有什么建议吗?
感谢提出的建议,这是有效的调整。
null.probs=c(0.17,0.37,0.23,0.23);
chi.sq.data <- numeric()
M=1000
samp.size=740
for (k in 1:M) {
samp.data = sample(c("Often","Some","Hardly","Never"),
size=samp.size,
replace=TRUE,
prob=null.probs)
n.Often=sum(samp.data=="Often")
n.Some=sum(samp.data=="Some")
n.Hardly=sum(samp.data=="Hardly")
n.Never=sum(samp.data=="Never")
O=c(n.Often,n.Some,n.Hardly,n.Never)
E=samp.size*null.probs
chi.sq.data[k] <- sum((O-E)^2/E)
}
hist(chi.sq.data,prob=TRUE,breaks="FD")
curve(dchisq(x,3),0,max(chi.sq.data),col="red",add=TRUE)
以及生成的图像。
【问题讨论】:
-
我觉得你可以直接使用
?rchisq来执行此操作,请参阅?distributions,其中有很多内置在 R 中。
标签: r