0

我使用 R 中sweetpotato database包含的library agricolae内容:

data(sweetpotato) 该数据集包含两个变量:产量(连续变量)和病毒(因子变量)。

由于 Levene 检验很重要,我不能假设方差的同质性,我在 R 中应用 Welch 检验,而不是单向方差分析,然后是 Tukey posthoc。

然而,问题来自我应用事后测试时。在 Tukey posthoc 测试中,我使用library(agricolae)并显示病毒组之间的上标字母。因此没有问题。

尽管如此,为了执行 Games-Howell posthoc,我使用library(userfriendlyscience)并获得 Games-Howell 输出,但我无法获得病毒组之间的字母上标比较,因为它是通过library(agricolae).

使用它的代码如下:

图书馆(用户友好科学)

数据(红薯)

oneway<-oneway(sweetpotato$virus, y=sweetpotato$yield, posthoc = 'games-howell')

单程

我尝试cld()以前导入library(multcompView)但不起作用。

有人可以帮助我吗?

提前致谢。

4

2 回答 2

1

目前不存在此功能userfriendlyscience。通过查看具有事后测试结果的数据框的行名,您可以看到哪些均值​​不同,以及哪些 p 值不同。我不确定哪个包包含sweetpotato数据集,但使用ChickWeightR 附带的数据集(并在oneway手册页上使用):

oneway(y=ChickWeight$weight, x=ChickWeight$Diet, posthoc='games-howell');

产量:

### (First bit removed as it's not relevant.)

### Post hoc test: games-howell

     diff  ci.lo ci.hi    t     df     p
2-1 19.97   0.36 39.58 2.64 201.38  .044
3-1 40.30  17.54 63.07 4.59 175.92 <.001
4-1 32.62  13.45 51.78 4.41 203.16 <.001
3-2 20.33  -6.20 46.87 1.98 229.94  .197
4-2 12.65 -10.91 36.20 1.39 235.88  .507
4-3 -7.69 -33.90 18.52 0.76 226.16  .873

前三行将组 2、3 和 4 与 1 进行比较:使用 alpha = .05,1 和 2 具有相同的均值,但 3 和 4 更高。这使您可以计算multCompLettersin所需的逻辑向量multcompView。基于手册页中的示例?multcompView

### Run oneway anova and store result in object 'res'
res <- oneway(y=ChickWeight$weight, x=ChickWeight$Diet, posthoc='games-howell');

### Extract dataframe with post hoc test results,
### and overwrite object 'res'
res <- res$intermediate$posthoc;

### Extract p-values and comparison 'names'
pValues <- res$p;

### Create logical vector, assuming alpha of .05
dif3 <- pValues > .05;

### Assign names (row names of post hoc test dataframe)
names(dif3) <- row.names(res);

### convert this vector to the letters to compare
### the group means (see `?multcompView` for the
### references for the algorithm):
multcompLetters(dif3);

这产生了最终结果:

    2     3     4     1 
  "a"   "b"   "c" "abc"

这就是你需要的,对吧?

我将此功能添加到 中userfriendlyscience,但这个新版本将在 CRAN 上发布还需要一段时间。同时,如果需要,您可以在https://github.com/Matherion/userfriendlyscience/blob/master/R/oneway.R获取此更新的源代码(按“原始”按钮以获得简单的-下载版本的源代码)。

请注意,如果您需要此更新版本,则需要将参数设置posthocLettersTRUE,因为它是FALSE默认的。例如:

oneway(y=ChickWeight$weight,
       x=ChickWeight$Diet,
       posthoc='games-howell',
       posthocLetters=TRUE);
于 2018-01-17T15:19:53.273 回答
0

不应该 dif3 <- pValues < .05,而不是dif3 <- pValues > .05

这样,如果分布“相同”,则字母是相同的(也就是说,没有证据表明它们不同)。

如果我解释错了,请纠正我。

于 2019-02-21T23:46:32.143 回答