这是我模拟随机效果的方法。我将演示线性回归,但将其扩展到不同的 GLM 应该是直截了当的。
让我们从一个随机截距模型开始。模型通常写成
y=XB+Zγ
其中是该组的指标,均值为 0 和一些方差的正态分布。该模型的仿真如下...Zγi
groups<-1:5
N <- 250
g <- factor(sample(groups, replace = T, size = N), levels = groups)
x <- rnorm(N)
X <- model.matrix(~x)
Z <- model.matrix(~g-1)
beta <- c(10, 2)
gamma <- rnorm(length(groups), 0, 0.25)
y = X %*% beta + Z%*% gamma + rnorm(N, 0, 0.3)
让我们拟合一个混合模型,看看我们是否能恢复其中的一些估计
library(lme4)
model = lmer(y~x + (1|g), data = d)
summary(model)
inear mixed model fit by REML ['lmerMod']
Formula: y ~ x + (1 | g)
Data: d
REML criterion at convergence: 136.2
Scaled residuals:
Min 1Q Median 3Q Max
-2.85114 -0.65429 -0.00888 0.65268 2.63459
Random effects:
Groups Name Variance Std.Dev.
g (Intercept) 0.05771 0.2402
Residual 0.09173 0.3029
Number of obs: 250, groups: g, 5
Fixed effects:
Estimate Std. Error t value
(Intercept) 9.95696 0.10914 91.23
x 2.00198 0.01993 100.45
Correlation of Fixed Effects:
(Intr)
x -0.008
固定效应看起来不错,组标准差 (0.25) 估计得非常准确,残差标准差也是如此。
随机斜率模型类似。假设每个斜率都来自正态分布,那么我们可以将斜率写为
y=Bx+βix
这里是总体均值,是第 i 组的影响。这是一个模拟Bβi
library(tidyverse)
groups<-1:5
N <- 250
g <- sample(groups, replace = T, size = N)
x <- rnorm(N)
X <- model.matrix(~x)
B <- c(10, 2)
beta <- rnorm(length(groups), 0, 2)
y = X %*% B + x*beta[g] + rnorm(N, 0, 0.3)
和一个模特……
library(lme4)
d = tibble(y, x, g)
model = lmer(y ~ x + (x|g), data = d)
summary(model)
Linear mixed model fit by REML ['lmerMod']
Formula: y ~ x + (x | g)
Data: d
REML criterion at convergence: 158.9
Scaled residuals:
Min 1Q Median 3Q Max
-2.95141 -0.65904 0.02218 0.61932 2.66614
Random effects:
Groups Name Variance Std.Dev. Corr
g (Intercept) 2.021e-05 0.004496
x 3.416e+00 1.848314 1.00
Residual 9.416e-02 0.306856
Number of obs: 250, groups: g, 5
Fixed effects:
Estimate Std. Error t value
(Intercept) 10.00883 0.01984 504.47
x 2.05913 0.82682 2.49
Correlation of Fixed Effects:
(Intr)
x 0.099
这是5组的系数
coef(model)
$g
(Intercept) x
1 10.00135 -1.015180
2 10.01335 3.919787
3 10.00934 2.270760
4 10.01081 2.873636
5 10.00928 2.246626
并将它们与真实值进行比较
B[2] + beta
-0.9406479 3.9195119 2.2976457 2.8536623 2.3539863
```