所以我只是度过了一个愉快的夜晚,试图自己模拟一些层次模型并估计它们的参数。我尝试模拟和估计的第一个模型是 其中。所以实际上我估计的是。我已经生成了一些数据和估计参数以及误差项的方差,一切都很好:
set.seed(1)
N <- 100
nj <- 100
g00 <- 10
e <- rnorm(N*nj)
j <- c(sapply(1:N, function(x) rep(x, nj)))
uj <- c(sapply(1:N, function(x)rep(rnorm(1), nj)))
d <- data.frame(j, y=g00+uj+e)
library(nlme)
lme(y~1, data=d, random=~1|j)
Linear mixed-effects model fit by REML
Data: d
Log-restricted-likelihood: -14520.94
Fixed: y ~ 1
(Intercept)
10.00215
Random effects:
Formula: ~1 | j
(Intercept) Residual
StdDev: 0.7752422 1.012683
Number of Observations: 10000
Number of Groups: 100
然后我尝试了不同的模型: 其中和。所以我不得不估计方程 我做了和以前一样的事情,但这一次没有收敛。我试过这个,但它似乎没有用。
lme
g10 <- 10
u0j <- uj
u1j <- c(sapply(1:N, function(x)rep(rnorm(1), nj)))
x1 <- rnorm(N*nj)
d1 <- data.frame(j, y=g00+u0j+(g10+u1j)*x1, x1)
lme(y~1+x1, data=d1, random=~1+x1|j)
这是最后一次lme吐出的电话:
Error in lme.formula(y ~ 1 + x1, data = d1, random = ~1 + x1 | j) :
nlminb problem, convergence error code = 1
message = false convergence (8)
你能建议我做什么?也许问题出在我的模型规范、冗余参数、奇异矩阵或其他方面?
