您需要首先解决有关交互的第二个问题。您当然可以像 Jan van der Laan 的回答那样设置似然比检验。您也可以anova
直接在适合的 lme 对象上使用。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