我使用Rlibrary agricolae
中包含的sweetpotato database
:
数据(甘薯) 此数据集包含两个变量:产量(连续变量)和病毒(因子变量)。
由于 Levene 检验很重要,我不能假设方差的同质性,我在 R 中应用韦尔奇检验而不是单因素方差分析,然后是 Tukey posthoc。
然而,问题来自我应用事后测试时。在Tukey事后测试中,我使用library(agricolae)
并向我显示病毒组之间的上标字母。因此没有问题。
尽管如此,为了执行 Games-Howell posthoc,我使用library(userfriendlyscience)
并获得 Games-Howell 输出,但我不可能获得病毒组之间的字母上标比较,因为它是通过library(agricolae)
获得的。
使用它的代码如下:
图书馆(用户友好科学)
数据(甘薯)
单向<-单向(甘薯$病毒, y=甘薯$产量, posthoc = "游戏-豪威尔")
单程
我尝试使用以前library(multcompView)
导入cld()
但不起作用。
有人可以帮助我吗?
提前谢谢。
此功能目前在userfriendlyscience
中不存在。通过查看数据帧的行名和事后检验结果,可以查看哪些均值不同,哪些 p 值不同。我不确定哪个包包含sweetpotato
数据集,但使用 R 附带的ChickWeight
数据集(并在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 更高。这允许您计算multcompView
中multCompLetters
所需的逻辑向量。根据手册页中的示例?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 获取此更新的源代码(按"原始"按钮以获取易于下载的源代码版本)。
请注意,如果需要此更新版本,则需要将参数posthocLetters
设置为TRUE
,因为它默认是FALSE
的。例如:
oneway(y=ChickWeight$weight,
x=ChickWeight$Diet,
posthoc='games-howell',
posthocLetters=TRUE);
不应该是dif3 <- pValues < .05
,而不是dif3 <- pValues > .05
?
这样,如果分布"相同",则字母是相同的(这是,没有证据表明它们是不同的)。
如果我解释错误,请纠正我。