Leg*_*end 10 statistics r
我使用模型拟合来将负二项分布拟合到我的离散数据中.作为最后一步,看起来我需要执行Kolmogrov-Smirnov测试以确定模型是否适合数据.所有引用我能找到谈论使用测试正常分布的连续数据.有人可以告诉我,如果可以在R中为非正态分布和离散的数据做到这一点吗?(即使进行卡方测试也应该猜测,但如果我错了,请纠正我.)
更新:
所以我发现该vcd软件包包含一个goodfit可以通过以下方式用于此目的的函数:
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)
Run Code Online (Sandbox Code Playgroud)
但是在这gf <- ...一步之后,R抱怨说:
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
Run Code Online (Sandbox Code Playgroud)
当我说它plot抱怨时:
Error in xy.coords(x, y, xlabel, ylabel, log) :
'x' is a list, but does not have components 'x' and 'y'
Run Code Online (Sandbox Code Playgroud)
我不确定发生了什么,因为如果我设置data如下:
data <- <- rnbinom(200, size = 1.5, prob = 0.8)
Run Code Online (Sandbox Code Playgroud)
一切正常.有什么建议?
KS-Test仅适用于连续变量,另外您必须完全指定要测试的分布.如果您仍想这样做,它将如下所示:
ks.test(data, pnbinom, size=100, prob=0.8)
Run Code Online (Sandbox Code Playgroud)
它将经验累积分布函数data与指定函数进行比较(这是否有意义可能取决于您的数据).你将不得不选择的参数size和prob基于理论上的考虑,测试,如果你估计基于那些数据参数无效.
您的问题goodfit()可能与您的数据有关,您确定这些是重要的吗?barplot(table(data))看起来它看起来不像是负二项分布,比较,例如,与barplot(table(rnbinom(200, size = 1.5, prob = 0.8)))
最后,我不确定在拟合后进行零假设检验的方法是否合适.您可能希望研究超出/基于$\chi ^ 2 $的定量拟合度量,其中有许多(RMSEA,SRMR,...).