我在R:
中使用glmer()
运行GLMM
glmer(survive ~ fyear + site + fyear * site.x + (1|fyear),
family = binomial(link = logexp(shaffer.sub$exposure)),
data = shaffer.sub)
存活率为0或1,具体取决于嵌套是否成功。 Here您可以看到数据的样子:
structure(list(id = structure(1:7, .Label = c("1", "2", "3",
"4", "5", "6", "7"), class = "factor"), year.x = structure(c(1L,
1L, 2L, 3L, 3L, 3L, 3L), .Label = c("1994", "1995", "1999"), class = "factor"),
survive = structure(c(1L, 2L, 2L, 2L, 2L, 2L, 1L), .Label = c("0",
"1"), class = "factor"), fyear = structure(c(1L, 1L, 2L,
3L, 3L, 3L, 3L), .Label = c("1994", "1995", "1999"), class = "factor"),
site.x = structure(c(1L, 2L, 1L, 1L, 1L, 2L, 1L), .Label = c("N",
"S"), class = "factor")), .Names = c("id", "year.x", "survive",
"fyear", "site.x"), row.names = c(NA, -7L), class = "data.frame")
但是我收到了这条警告信息:
*Warning messages:
1: In checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv, :
Model failed to converge with max|grad| = 0.0299425 (tol = 0.001, component 12)
2: In checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv, :
Model is nearly unidentifiable: large eigenvalue ratio
- Rescale variables?*
我被告知我不应该使用相同的随机因素作为同一模型的固定效果。
最后,我希望有一个输出,我可以看到年份,网站和互动年份:网站效果。就像在ANOVA表中一样(这可能吗?我一直在尝试使用summary(aov(model))
但这不起作用; anova(model)
也没有。
我为aov()
命令收到此错误:
*Error in summary`(aov(syearXsite))` :
error in evaluating the argument 'object' in selecting a method for function 'summary': Error in if (fixed.only) { : argument is not interpretable as logical*
我怎样才能看到这些变量对生存的影响?
答案 0 :(得分:1)
谁告诉你不要使用分类输入变量(fyear
)作为固定和随机效果都是正确的。很难确切知道要推荐什么,这取决于您在数据集中拥有的年数和网站数(是您链接到所有数据的数据(我希望不是),或者只是前几行?你有多少年,多少个站点以及总观测数量?)
如果您希望将年份视为随机,将网站视为固定(如果您的数据中只有两个网站(N
与S
相比),这将是明智的,并且需要几年时间,例如超过5)然后你可以适应:
g1 <- glmer(survive~site.x+(site.x|fyear),
family=binomial(link=logexp(shaffer.sub$exposure)),
data=shaffer.sub)
我不知道site
vs site.x
是什么:我只在您的数据摘要中看到site.x
。
要获取信息,请尝试summary(g1)
。 (这只会给你随机效应的差异,而不是固定效果; GLMM不像ANOVA那样在“方差解释”模式下运行,特别是因为不同术语解释的差异通常不加起来总方差。)