R中多个变量之间的显着差异

问题描述

我有一个记录在 5 个不同高度的粒子浓度数据集。我想知道这些差异是否显着。对于每个高度,N=15。

什么测试适合使用?

我使用了pairwise.t.test,但不确定这是否是正确的解决方案,因为抽样规模很小。 我还尝试过pairwise.wilcox.test 返回不同的p 值和错误“无法计算精确的p 值与关系”。这是因为样本量小,我可以使用吗?

我的数据:

structure(list(height = c(1L,2L,3L,4L,5L,1L,5L),values = c(1.67,3.33,6.67,10,15,25,20,11.67,16.67,18.33,1.67,5,73.33,8.33,38.33,23.33,13.33,21.67,41.67,36.67,26.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)
,

我完全同意@marvinschmitt 的回答,但我将展示我对此类数据的处理方法。

1.数据是什么样子的?

boxplot(df$values~df$height)

2.不要忘记因素!否则结果将是错误的。

str(df)
df$height <- as.factor(df$height)

3.让我们建立一个模型:

model.lm = lm(values ~ height,data=df)

并检查:

a) 常态:

hist(resid(model.lm))
plot(model.lm,2)

b) 差异:

plot(model.lm,1)

您可以阅读有关这些诊断图的信息 here

4.方差分析:

a1 <- aov(model.lm)
summary(a1)

5. 事后测试:

(TukeyHSD(a1,'height',conf.level=0.95))
  Tukey multiple comparisons of means
    95% family-wise confidence level

Fit: aov(formula = model.lm)

$height
          diff        lwr        upr     p adj
2-1   6.888000  -4.236727 18.0127273 0.4204011
3-1  -1.888000 -13.012727  9.2367273 0.9893557
4-1   3.667333  -7.457394 14.7920606 0.8870422
5-1  -4.112000 -15.236727  7.0127273 0.8382557
3-2  -8.776000 -19.900727  2.3487273 0.1885170
4-2  -3.220667 -14.345394  7.9040606 0.9265135
5-2 -11.000000 -22.124727  0.1247273 0.0540926
4-3   5.555333  -5.569394 16.6800606 0.6307915
5-3  -2.224000 -13.348727  8.9007273 0.9803501
5-4  -7.779333 -18.904061  3.3453940 0.2972209

您还可以查看非参数多重检验:

kruskal.test(values ~ height,data=df)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...