我有一个在 5 个不同高度记录的颗粒浓度数据集。我想知道差异是否显着。对于每个高度,N=15。
什么测试适合使用?
我使用pairwise.t.test,但不确定这是否是正确的解决方案,因为样本量很小。 我还尝试了pairwise.wilcox.test,它返回不同的p值和错误“无法计算带有关系的精确p值”。这是因为样本量小吗?我可以使用它吗?
我的数据:
structure(list(height = c(1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L,
5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L, 5L,
1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L,
2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L,
3L, 4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L,
4L, 5L), values = c(1.67, 3.33, 6.67, 10, 15, 25, 20, 11.67,
16.67, 18.33, 1.67, 0, 1.67, 5, 3.33, 5, 73.33, 8.33, 5, 5, 10,
5, 6.67, 6.67, 3.33, 18.33, 18.33, 6.67, 38.33, 0, 23.33, 10,
15, 11.67, 5, 11.67, 8.33, 1.67, 15, 3.33, 13.33, 10, 10, 3.33,
10, 8.33, 21.67, 10, 41.67, 8.33, 3.33, 36.67, 15, 11.67, 8.33,
8.33, 8.33, 5, 5, 0, 1.67, 8.33, 16.67, 3.33, 10, 16.67, 8.33,
8.33, 25, 1.67, 6.67, 26.67, 3.33, 11.67, 1.67)), row.names = c(NA,
-75L), class = "data.frame")
最佳答案
如果您只想知道任何组均值是否存在显着差异,您可能需要使用方差分析 (ANOVA)。
library(afex)
df$id = 1:nrow(df)
aov_ez(data=df, id="id", between="height", dv="values")
结果
Anova Table (Type 3 tests)
Response: values
Effect df MSE F ges p.value
1 height 4, 70 118.38 2.45 + .123 .054
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘+’ 0.1 ‘ ’ 1
因此,在 5% 的 alpha 水平下,结果稍微不显着。然而,效应量很大,广义 eta 平方 (ges
) 为 0.123。
成对测试(例如您提到的 t 测试)的问题是 alpha 误差累积。为了解决 alpha 误差膨胀的问题,您需要降低各个测试的 alpha 级别,从而导致功效大幅降低。
如果数据来自相关测量(又名数据内),即您在这些高度多次测量同一对象,则可以使用对象内分析。
补充:为了快速可视化,您可能需要尝试
boxplot(df$values~df$height)
关于r - R中多个变量之间的显着差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65680940/