首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >科莫戈罗夫-斯米尔诺夫还是一种分布的卡方检验?

科莫戈罗夫-斯米尔诺夫还是一种分布的卡方检验?
EN

Stack Overflow用户
提问于 2010-12-02 06:32:35
回答 1查看 6.9K关注 0票数 11

我用模型拟合来拟合我的离散数据的负二项分布。作为最后一步,看起来我需要执行Kolmogrov-Smirnov测试来确定模型是否适合数据。我可以找到的所有有关使用正态分布分布式连续数据测试的参考文献。有人能告诉我,对于非正态分布和离散的数据,是否可以在R中这样做?(即使是卡方测试,我也猜得出来,但如果我错了,请纠正我。)

更新:

因此,我发现vcd包包含一个可用于此目的的函数goodfit,方法如下:

代码语言:javascript
复制
library(vcd)

# Define the data
data <- c(67, 81, 93, 65, 18, 44, 31, 103, 64, 19, 27, 57, 63, 25, 22, 150,
          31, 58, 93, 6, 86, 43, 17, 9, 78, 23, 75, 28, 37, 23, 108, 14, 137,
          69, 58, 81, 62, 25, 54, 57, 65, 72, 17, 22, 170, 95, 38, 33, 34, 68,
          38, 117, 28, 17, 19, 25, 24, 15, 103, 31, 33, 77, 38, 8, 48, 32, 48,
          26, 63, 16, 70, 87, 31, 36, 31, 38, 91, 117, 16, 40, 7, 26, 15, 89,
          67, 7, 39, 33, 58)

gf <- goodfit(data, type = "nbinomial", method = "MinChisq") 
plot(gf)

但在gf <- ...一步之后,R抱怨道:

代码语言:javascript
复制
Warning messages:
1: In pnbinom(q, size, prob, lower.tail, log.p) : NaNs produced
2: In pnbinom(q, size, prob, lower.tail, log.p) : NaNs produced
3: In pnbinom(q, size, prob, lower.tail, log.p) : NaNs produced

当我说plot时,它会抱怨:

代码语言:javascript
复制
Error in xy.coords(x, y, xlabel, ylabel, log) : 
  'x' is a list, but does not have components 'x' and 'y'

我不知道发生了什么,因为如果我将data设置为以下内容:

代码语言:javascript
复制
data <- <- rnbinom(200, size = 1.5, prob = 0.8)

一切都很好。有什么建议吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-12-02 10:02:07

against只适用于连续变量,而且您必须完全指定要测试的分布。如果你还想这么做的话,它会是这样的:

代码语言:javascript
复制
ks.test(data, pnbinom, size=100, prob=0.8)

它将data的经验累积分布函数与指定的函数进行比较(这是否合理可能取决于您的数据)。您必须根据理论考虑为sizeprob选择参数,如果根据数据估计这些参数,则测试无效。

您的goodfit()问题可能与您的数据有关,您确定这些数据是计数的吗?barplot(table(data))看起来不像是在遵循负二项分布,例如,与barplot(table(rnbinom(200, size = 1.5, prob = 0.8)))的比较

最后,我不确定在拟合后进行零假设检验的方法是否合适。您可能想要研究$\chi^2$之外的数量拟合度量,其中有很多(RMSEA、SRMR、.)。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4332327

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档