间隔包装/功能与lme4适合

时间:2016-05-03 19:21:32

标签: r

我估计了以下用于估计随机系数标准误差的模型:

library(nlme)
library(foreign)
Sample_Data <- read.dta (file="Sample_Data.dta")
Sample_Data <- within(Sample_Data, {
industry <- factor(industry)
id <- factor(id)
year <- factor(year)})
Model1 <- lme(MRPK ~ 1+age+empl+net_worth+input_growth+TFPR_shock, random = (~1+net_worth|industry/id), data=Sample_Data,  control=lmeControl(opt='optim'), method="REML")

我在以下链接上的示例数据:

https://dl.dropboxusercontent.com/u/99295510/Sample_Data.dta

我收到以下错误:

solve.default中的错误(pdMatrix(a,factor = TRUE)):
  Lapack例程dgesv:系统完全是单数:U [1,1] = 0

我们怎么能解决这个问题?

1 个答案:

答案 0 :(得分:0)

目前,我还不知道使用lme4获取随机效应的Wald标准误(我知道的唯一合理定义)的可靠方法。您的替代方案是(1):

variation.model1  <- lmer(sales ~ 1+(1|industry:id)+(1|industry),
    data=data_file, REML=TRUE)
confint(variation.model1, which="theta_")

这将给出方差参数的95%轮廓似然置信区间(但不是标准误差)(非常粗略地,您可以将这些置信区间的宽度除以1.96 * 2 = 3.92)

和(2),用lme代替模型:

library(nlme)
variation.model2  <- lme(sales ~ 1,
        random = (1|industry/id),
        data=data_file, method="REML")

内置(不需要intervals包):

intervals(variation.model2)     ## Wald intervals
sqrt(diag(variation.model2$apVar))  ## sd

有关lme4中Wald差异的详细信息,请参阅this rpubs document