您需要先解決有關交互的第二個問題。您可以像Jan van der Laan的答案那樣設定似然比檢驗。您也可以直接在合適的lme物體上使用anova
。有關更多信息,請參閱anova.lme
的幫助頁面。
在解釋你的係數方面,我經常發現它有時需要製作一個羣組平均值的彙總表,以便適當地找出模型中哪些線性係數組合代表每個羣組。在你的問題中,我將展示一個攔截刪除的例子,儘管我發現這很少幫助我在模型中有兩個因素後找出我的係數。這裏是我用Orthodont數據集(我決定做平衡)的一個例子:
require(nlme)
# Make dataset balanced
Orthodont2 = Orthodont[-c(45:64),]
# Factor age
Orthodont2$fage = factor(Orthodont2$age)
# Create a model with an interaction using lme; remove the intercept
fit1 = lme(distance ~ Sex*fage - 1, random = ~1|Subject, data = Orthodont2)
summary(fit1)
這裏是估計的固定效應。但是每個這些係數代表什麼?
Fixed effects: distance ~ Sex * fage - 1
Value Std.Error DF t-value p-value
SexMale 23.636364 0.7108225 20 33.25213 0.0000
SexFemale 21.181818 0.7108225 20 29.79903 0.0000
fage10 0.136364 0.5283622 61 0.25809 0.7972
fage12 2.409091 0.5283622 61 4.55954 0.0000
fage14 3.727273 0.5283622 61 7.05439 0.0000
SexFemale:fage10 0.909091 0.7472171 61 1.21664 0.2284
SexFemale:fage12 -0.500000 0.7472171 61 -0.66915 0.5059
SexFemale:fage14 -0.818182 0.7472171 61 -1.09497 0.2778
總結一下小組意味着幫助解決這個問題。
require(plyr)
ddply(Orthodont2, .(Sex, age), summarise, dist = mean(distance))
Sex fage dist
1 Male 8 23.63636
2 Male 10 23.77273
3 Male 12 26.04545
4 Male 14 27.36364
5 Female 8 21.18182
6 Female 10 22.22727
7 Female 12 23.09091
8 Female 14 24.09091
注意,第一固定效應係數,稱爲SexMale
,對於年齡8名男性的平均距離。固定效應SexFemale
是8歲女性平均距離。這些是最容易看到的(我總是從簡單的開始),但其餘的都不難看出來。 10歲男性的平均距離是第一個係數加上第三個係數(fage10
)。 10歲女性的平均距離是係數SexFemale
,fage10
和SexFemale:fage10
的總和。其餘部分沿着相同的路線。
一旦您知道如何爲組平均值創建係數的線性組合,您可以使用estimable
來計算任何感興趣的比較。當然,這裏有一些關於主要效果的注意事項,交互的統計證據,離開交互的理論原因等等。這是由您來決定的。但是如果我離開模型中的相互作用(請注意,沒有統計證據表明相互作用,請參見anova(fit1)
),但想要比較Male
與Female
的整體均值,我會寫出以下線性係數組合:
# male/age group means
male8 = c(1, 0, 0, 0, 0, 0, 0, 0)
male10 = c(1, 0, 1, 0, 0, 0, 0, 0)
male12 = c(1, 0, 0, 1, 0, 0, 0, 0)
male14 = c(1, 0, 0, 0, 1, 0, 0, 0)
# female/age group means
female8 = c(0, 1, 0, 0, 0, 0, 0, 0)
female10 = c(0, 1, 1, 0, 0, 1, 0, 0)
female12 = c(0, 1, 0, 1, 0, 0, 1, 0)
female14 = c(0, 1, 0, 0, 1, 0, 0, 1)
# overall male group mean
male = (male8 + male10 + male12 +male14)/4
# overall female group mean
female = (female8 + female10 + female12 + female14)/4
require(gmodels)
estimable(fit1, rbind(male - female))
您可以檢查您的整體組意味着確保您正確地使係數的線性組合。
ddply(Orthodont2, .(Sex), summarise, dist = mean(distance))
Sex dist
1 Male 25.20455
2 Female 22.64773
感謝您的建議!看來,產出因素(條件)治療:因素(項目)E2'等都與參考相比較,對嗎?那麼,我怎麼能知道'item'這個因素的水平在'condition'中是不同的?也就是說,我仍然不知道如何獲得測試的p值,說E1在控制方面與在處理方面不同... – alittleboy
你也許可以嘗試省略'...〜0 +。 ..'來自模型。那麼'因素(條件)治療'的主要作用就是它與因素(項目)E2'上的控制之間的差異(如果它與零有顯着差異,那麼治療和控制是不同的)。麻煩的是,那麼相互作用是多少或多或少的治療與對照不同的是E1的差異。你可以嘗試multcomp的glht - http://stackoverflow.com/a/17867984/945039 – f1r3br4nd
好的答案。我忽略了失蹤的攔截。事實上,當沒有攔截時,對比的解釋會改變。 –