![](/img/trans.png)
[英]Using R to calculate between- by within-subj ANOVA interaction contrasts using car or lme
[英]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.