弗里德曼检验未复制的完整块设计错误

Rmy*_*loR 6 error-handling statistics r

我在对我的数据运行弗里德曼测试时遇到问题。我正在尝试使用以下命令运行 Friedman 测试:

friedman.test(mean ~ isi | expId, data=monoSum)
Run Code Online (Sandbox Code Playgroud)

在以下数据库 ( https://www.dropbox.com/s/2ox0y1b4gwld0ai/monoSum.csv ) 上:

> monoSum
   expId isi  N       mean
1  m80B1   1 10 100.000000
2  m80B1   2 10  73.999819
3  m80B1   3 10  45.219362
4  m80B1   4 10 116.566174        
.   .     .   .          .
18 m80L2   2 10  82.945491
19 m80L2   3 10  57.675480
20 m80L2   4 10 207.169277
.    .     .  .   .      .
25 m80M2   1 10 100.000000
26 m80M2   2 10  49.752687
27 m80M2   3 10  19.042592
28 m80M2   4 10 150.411035
Run Code Online (Sandbox Code Playgroud)

它给了我错误:

Error in friedman.test.default(c(100, 73.9998193095267, 45.2193621626293,  : 
not an unreplicated complete block design
Run Code Online (Sandbox Code Playgroud)

我认为它给出了错误,因为当monoSum$isi==1均值始终为 100 时。这是正确的吗?

但是,monoSum$isi==1始终为 100,因为它是所有其他monoSum$isi组都归一化的对照组。我不能假设正态分布,所以我不能运行 rmANOVA ......有没有办法对这些数据运行弗里德曼测试,或者我在这里错过了一个非常重要的点?

提前谢谢了!

小智 6

如果我运行您的数据集,我不会收到错误消息:

   Friedman rank sum test

   data:  mean and isi and expId
   Friedman chi-squared = 17.9143, df = 3, p-value = 0.0004581
Run Code Online (Sandbox Code Playgroud)

但是,你必须确保expIdisi被编码为因素。运行这些命令:

    monoSum$expID$<-factor(monoSum$expID)
    monoSum$isi$<-factor(monoSum$isi)
Run Code Online (Sandbox Code Playgroud)

然后再次运行测试。这对我有类似的问题。


小智 6

我知道这已经很老了,但对于后代来说(另请参阅:我当我忘记并再次谷歌时):

table(groups, blocks)您可以通过运行或 在本问题的情况下确定数据框中缺少哪些值table(monoSum$isi, monoSum$expID)。这将返回一个由 0 和 1 组成的表。这些缺失的记录位于带 0 的单元格中。

在尝试删除结果不完整的块后,我遇到了这个问题;由于某种原因,获取数据的子集并没有删除块。