2

我正在尝试运行混合效应逻辑回归模型,但我担心每个集群/组中的可变样本大小,以及某些模型中的“成功”数量非常少。

我有大约 700 棵树分布在 163 个田地(即集群/组)中,从 2004-11 年开始每年访问。我为研究的每一年拟合单独的混合效应逻辑回归模型(以下称为 GLMM),以将此输出与来自共享脆弱模型的推论(即随机效应的生存分析)进行比较。

每块地块的树木数量从 1 到 22 不等。此外,有些年份的“成功”数量非常少(即病树)。例如,2011 年在 694 个“失败”(即健康的树木)中只有 4 个成功。

我的问题是:(1)当推理的重点仅在于估计 GLMM 中的固定效应时,理想样本数是否有一般规则,(2)当存在如此极端的差异时,GLMM 是否稳定?成功率:失败率。

感谢您对来源的任何意见或建议。

-莎拉

4

2 回答 2

1

(嗨,莎拉,对不起,我之前没有通过电子邮件回复...)

一般来说,很难回答这些问题——你被你的数据困住了,对吧?所以这不是功率分析的问题。如果你想确保你的结果相当可靠,最好的办法可能是运行一些模拟。我将展示lme4(在 Github 上的开发版本 1.1-1 中)的一个相当新的功能,即在给定公式和一组参数的情况下模拟来自 GLMM 的数据。

首先我必须模拟预测变量(你不必这样做,因为你已经有了数据——尽管你可能想尝试改变地块数量的范围、每个地块的树等)。

set.seed(101)
## simulate number of trees per plot
## want mean of 700/163=4.3 trees, range=1-22
## by trial and error this is about right
r1 <- rnbinom(163,mu=3.3,size=2)+1
## generate plots and trees within plots
d <- data.frame(plot=factor(rep(1:163,r1)),
            tree=factor(unlist(lapply(r1,seq))))
## expand by year
library(plyr)
d2 <- ddply(d,c("plot","tree"),
        transform,year=factor(2004:2011))

现在设置参数:我将假设 year 是一个固定效应,并且总体疾病发病率是plogis(-2)=0.122011 年除外,当时它是plogis(-2-3)=0.0067. 地块间标准差为 1(在 logit 尺度上),地块间树内标准差也是如此:

beta <- c(-2,0,0,0,0,0,0,-3)
theta <- c(1,1)  ## sd by plot and plot:tree

现在模拟:年份作为固定效应,情节和树中情节作为随机效应

library(lme4)
s1 <- simulate(~year+(1|plot/tree),family=binomial,
     newdata=d2,newparams=list(beta=beta,theta=theta))
d2$diseased <- s1[[1]]

总结/检查:

d2sum <- ddply(d2,c("year","plot"),
           summarise,
           n=length(tree),
           nDis=sum(diseased),
           propDis=nDis/n)
library(ggplot2)
library(Hmisc)  ## for mean_cl_boot
theme_set(theme_bw())
ggplot(d2sum,aes(x=year,y=propDis))+geom_point(aes(size=n),alpha=0.3)+
    stat_summary(fun.data=mean_cl_boot,colour="red")

现在拟合模型:

g1 <- glmer(diseased~year+(1|plot/tree),family=binomial,
        data=d2)
fixef(g1)

您可以尝试多次,看看结果多久可靠......

于 2013-11-08T15:05:24.670 回答
0

正如 Josh 所说,这对于CrossValidated来说是一个更好的问题。

逻辑回归没有硬性规定,但一条经验法则是设计中每个单元(在本例中为集群)需要 10 次成功和 10 次失败乘以模型中连续变量的数量。

在您的情况下,我认为该模型如果收敛,将是不稳定的。您可以通过引导固定效应估计的误差来检查这一点。

于 2013-11-08T01:51:30.280 回答