在使用硬币包中的权重参数时,我得到了一些不一致的结果。特别是对于kruskal_test和spearman_test函数。
使用常规数据时,一切运行正常,并与统计软件包中的kruskal.test一致:
> x <- xtabs( ~gear + vs,data=mtcars)
> df <- as.data.frame.table(x)
> kruskal_test(gear ~ as.factor(vs),data=mtcars)
Asymptotic Kruskal-Wallis Test
data: gear by as.factor(vs) (0, 1)
chi-squared = 2.4768, df = 1, p-value = 0.1155
> kruskal.test(gear ~ as.factor(vs),data=mtcars)
Kruskal-Wallis rank sum test
data: gear by as.factor(vs)
Kruskal-Wallis chi-squared = 2.4768, df = 1, p-value = 0.1155但是,当使用频率权重将相同的数据馈送到kruskal_test时,我得到了不正确的结果。
> kruskal_test(as.numeric(df[[1]]) ~ df[[2]],
+ weights=~as.integer(df[[3]]))
Asymptotic Kruskal-Wallis Test
data: as.numeric(df[[1]]) by df[[2]] (0, 1)
chi-squared = 1.3158, df = 1, p-value = 0.2513我设置这个函数调用的方式有问题吗?
发布于 2011-10-01 16:50:48
这确实是一个bug。Thorsten回应说,等级转换没有考虑权重。下面的代码演示了生成相同结果的测试的非等级版本:
> oneway_test(as.integer(gear) ~ vs, data = df, weights = ~ Freq)
Asymptotic 2-Sample Permutation Test
data: as.integer(gear) by vs (0, 1)
Z = -1.1471, p-value = 0.2513
alternative hypothesis: true mu is not equal to 0 希望这个问题能在未来得到解决。
https://stackoverflow.com/questions/7496096
复制相似问题