簡體   English   中英

R:交互效應中的特殊對比

[英]R: Special contrasts within an interaction effect

在雙向ANOVA的背景下,我想在另一個因子(SpeciesA,SpeciesB)的水平內輸入一個因子(10,20,30度)的對比度水平。 這假設交互作用是顯着的,因此不能簡單地對溫度主效應進行對比。

我試圖在EZanova,multcomp和phia中做到這一點,但一直無法弄清楚有效的語法。 我錯過了允許這個的套餐嗎?

對比度和系數

對比1:對於物種A,10度是否與20和30不同? 物種:溫度(2,-1,-1,0,0,0) 對比度2:對於物種B,10度是否與20和30不同? 物種:溫度(0,0,0,2,-1,-1) 對比度3:物種A的10度與物種B的20度和30度不同嗎? 種類:溫度(2,0,0,0,-1,-1)

species<-rep(c("speciesA","speciesB"),each=12)
temp<-rep(rep(c("10","20","30"),each=4),2)
y<-rnorm(24,5,3)
(result<-anova(lm(y~species*temp)))

它是base-R的一部分。 請參閱“ ?contrasts頁面。 我將說明第一個要求的對比度; 另外兩個應該非常簡單。 我假設您希望單獨計算這些對比度p值,因此我使用how.many參數將對比度結構限制為單個比較。 否則你會得到5個對比,因為默認情況下, contrasts函數會嘗試建立一組正交對比:

set.seed(123)
species <- rep(c("speciesA","speciesB"),each=12)
temp <- rep(rep(c("10","20","30"),each=4),2)
y<-rnorm(24,5,3)

intvar <- interaction(species, temp)  # create an interaction variable
?contrasts

需要知道哪些級別可以正確排序對比度值:

> levels(intvar)
[1] "speciesA.10" "speciesB.10" "speciesA.20" "speciesB.20" "speciesA.30"
[6] "speciesB.30"

因此,這應該建立A物種中10對20或30個角度的對比:

 contrasts(intvar, how.many=1) <- c(2,0,-1,0,-1,0)
 anova(lm(y~intvar) )
#------------
Analysis of Variance Table

Response: y
          Df  Sum Sq Mean Sq F value Pr(>F)
intvar     1   0.013  0.0129  0.0015 0.9695
Residuals 22 190.306  8.6503      

您似乎處於學習R的相當早的階段,因此我建議您學習構建數據幀以將data= -arguments傳遞給回歸函數,而不是在工作空間中處理“松散”對象,請不要找到使用attach的討厭習慣。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM