我被要求通过使用方差分析和线性对比来查看3组数据(每组5个点)中是否存在线性趋势。这三个组代表以2010
,2011
和2012
收集的数据。我想在此过程中使用R,并且尝试了以下两种方法:
contrasts(data$groups, how.many=1) <- contr.poly(3)
contrasts(data$groups) <- contr.poly(3)
两种方法似乎都可以正常工作,但是在p值方面给出的答案略有不同。我不知道哪个是正确的,在网络上为此寻求帮助确实很棘手。我想帮助您找出不同答案背后的原因。我不确定是否与分区平方和无关。
最佳答案
关于是否使用二次多项式,两种方法都不同。
为了说明起见,请看此示例,x
和y
都是具有三个级别的因子。
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/