我被要求通过使用方差分析和线性对比来查看3组数据(每组5个点)中是否存在线性趋势。这三个组代表以201020112012收集的数据。我想在此过程中使用R,并且尝试了以下两种方法:

contrasts(data$groups, how.many=1) <- contr.poly(3)
contrasts(data$groups)  <- contr.poly(3)

两种方法似乎都可以正常工作,但是在p值方面给出的答案略有不同。我不知道哪个是正确的,在网络上为此寻求帮助确实很棘手。我想帮助您找出不同答案背后的原因。我不确定是否与分区平方和无关。

最佳答案

关于是否使用二次多项式,两种方法都不同。

为了说明起见,请看此示例,xy都是具有三个级别的因子。

x <- y <- gl(3, 2)
# [1] 1 1 2 2 3 3
# Levels: 1 2 3

第一种方法为二次多项式创建对比度矩阵,即具有线性(.L)和二次趋势(.Q)。 3的意思是:创建3 - 1 th多项式。
contrasts(x) <- contr.poly(3)
# [1] 1 1 2 2 3 3
# attr(,"contrasts")
#              .L         .Q
# 1 -7.071068e-01  0.4082483
# 2 -7.850462e-17 -0.8164966
# 3  7.071068e-01  0.4082483
# Levels: 1 2 3

相反,第二种方法导致一阶多项式(即仅线性趋势)。这是由于参数how.many = 1所致。因此,仅创建1对比。
contrasts(y, how.many = 1) <- contr.poly(3)
# [1] 1 1 2 2 3 3
# attr(,"contrasts")
#              .L
# 1 -7.071068e-01
# 2 -7.850462e-17
# 3  7.071068e-01
# Levels: 1 2 3

如果您仅对线性趋势感兴趣,那么第二种选择似乎更适合您。

关于r - 如何在R中正确设置对比度,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21770610/

10-10 17:26