(嗨,莎拉,抱歉我之前没有通过电子邮件回复...)
通常很难回答这些问题——你被困住了
用你的数据,对吧?所以这不是功率分析的问题。
如果你想确保你的结果是合理的
可靠,可能最好的办法是运行一些模拟。
我将展示lme4 的一个相当新的功能(在
开发版本1.1-1,在Github上),这是为了模拟
给定公式和一组参数的 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))
现在设置参数:我将假设年份是固定的
效果和总体疾病发病率是plogis(-2)=0.12,除了
2011 年的时候是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)
你可以多试几次,看看结果多可靠...