我估计了以下用于估计随机系数标准误差的模型:
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
我们怎么能解决这个问题?
答案 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。