【问题标题】:Generating a chi-square distribution using goodness of fit test使用拟合优度检验生成卡方分布
【发布时间】: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


【解决方案1】:

您对其进行编码的方式是按c("Often","Some","Hardly","Never") 的顺序分配您的预期值,但是如果您查看任何一次运行,请注意该表不知道顺序是什么,所以它只是按字母顺序排列:c("Hardly","Never","Often","Some")

如果你真的正确地调整了你的期望,事情应该会成功。

但如果您的唯一目标是生成卡方,那么rchisq 是更好的选择。

【讨论】:

  • 不错的观察。我已经编辑了我的问题以显示解决方案。我知道我可以使用 rchisq,但这不是我想要的。目标不是简单地绘制 chisq 分布图,而是表明拟合优度过程,如果应用于大量样本,将生成 chisq 分布。感谢您的观察,我得到了它的工作。
【解决方案2】:

@Dason 是正确的。此外,由于您正在生成不包含空值的数据,因此您将(可能)从non-central chi-squared distribution 生成卡方统计信息。此外,值得注意的是,卡方统计的实际行为只能近似(任何)卡方分布。这是因为,由于您的数据是离散的,但分布是连续的,因此您的数据实现的可能性只有这么多,但卡方分布中有无限可能的值,而您的设置不可能在您的数据中出现 (尽管 N = 740,但近似值应该是合理的)。有关此问题的更多信息,它可能会帮助您在此处阅读我的答案(在 stats.SE 上):Comparing and contrasting p-values, significance levels, and type I error。你最好使用?rchisq

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-06
    • 2014-02-27
    • 1970-01-01
    • 1970-01-01
    • 2020-07-31
    • 1970-01-01
    • 2021-01-14
    相关资源
    最近更新 更多