在硬币包中使用权重参数时,我得到了一些不一致的结果。特别是对于kruskal_test和spearman_test函数。
使用常规数据一切正常并且与stats包中的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
我设置此函数调用的方式有问题吗?
答案 0 :(得分:1)
这确实是一个错误。托尔斯滕回答说,等级变换没有考虑到权重。以下代码演示了测试的非排名版本,产生相同的结果:
> 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
希望将来能够解决这个问题。