【发布时间】:2014-01-24 15:56:02
【问题描述】:
我希望围绕我的多级模型系数估计值计算 95% 的置信区间。
对于具有单个分组变量的模型,我没有任何问题,但是当我添加一个额外的分组变量时,我遵循的引导方法 (http://www.ats.ucla.edu/stat/r/dae/melogit.htm) 基本上崩溃了。
我调查了 bootMer(lme4 新实现的部分),结果相同。
这是一个问题的例子:
---------------- 已编辑以包含可重现的示例 ------------- ---------------
对这个问题很有帮助并通过示例给出了答案 - 这不是添加第二个分组变量本身,而是导致问题的分组变量中的缺失。
对于遇到此问题的其他人来说,这是一个可行的示例。
为了便于说明,这里是一个简单的函数...
FUN <- function(fit) {return(fixef(fit))}
示例数据(完整)
grouper1 <- as.factor(sample(letters[1:20], 1000, replace = TRUE))
grouper2 <- sample(letters[1:2], 1000, replace = TRUE)
DV<-rnorm(1000)
IV<-rnorm(1000)
example<-data.frame(grouper1, grouper2, DV, IV)
可以很好地处理这些数据
one_grouper<-lmer(DV ~ IV + (1 | grouper1), data=example)
> bootMer(one_grouper,FUN, nsim=1)
Call:
bootMer(x = one_grouper, FUN = FUN, nsim = 1)
Bootstrap Statistics :
original bias std. error
t1* 0.005286026 0.041665542 NA
t2* 0.009642498 -0.003707219 NA
>
> two_grouper<-lmer(DV ~ IV + (1 | grouper1) + (1 | grouper2), data=example)
>
> bootMer(one_grouper,FUN, nsim=1)
Call:
bootMer(x = one_grouper, FUN = FUN, nsim = 1)
Bootstrap Statistics :
original bias std. error
t1* 0.005286026 -0.03465914 NA
t2* 0.009642498 -0.01361108 NA
但是,当我们在分组变量中引入缺失时...
example$missinggroups <- with(example, ifelse(randommissing=="f", NA,grouper1))
> one_grouper<-lmer(DV ~ IV + (1 | missinggroups ), data=example)
>
> bootMer(one_grouper,FUN, nsim=1)
Call:
bootMer(x = one_grouper, FUN = FUN, nsim = 1)
Bootstrap Statistics :
WARNING: All values of t1* are NA
WARNING: All values of t2* are NA
Warning message:
In bootMer(one_grouper, FUN, nsim = 1) : some bootstrap runs failed (1/1)
【问题讨论】:
-
这可能是 bootMer 中的一个错误,但一个可重现的示例会很棒!
-
第二组是否有缺失值?如果您可以为可重现的示例提供一些数据(模拟或实际),那么回答您的问题会更容易。另外,请注意,您可以使用
simulate和refit函数滚动您自己的参数引导程序——这样可能更容易排除故障。 -
缺失值肯定会出问题:github.com/lme4/lme4/issues/158(开发版已修复)
-
PS 你的例子在这里不是很可重复(你没有定义
randommissing,但是有一个类似的例子我确实让它工作(即使是NAs)与最新的发展版本。如果可能,install.packages("devtools"); install_github("lme4","lme4")(您将需要开发工具——编译器等)
标签: r lme4 statistics-bootstrap