He escrito R
códigos para la simulación de datos del modelo de regresión logística multinivel .
Me centro en el siguiente modelo logístico multinivel con una variable explicativa en el nivel 1 (nivel individual) y una variable explicativa en el nivel 2 (nivel de grupo) :
$$\text{logit}(p_{ij})=\pi_{0j}+\pi_{1j}x_{ij}\ldots (1)$$ $$\pi_{0j}=\gamma_{00}+\gamma_{01}z_j+u_{0j}\ldots (2)$$ $$\pi_{1j}=\gamma_{10}+\gamma_{11}z_j+u_{1j}\ldots (3)$$
donde , $u_{0j}\sim N(0,\sigma_0^2)$ , $u_{1j}\sim N(0,\sigma_1^2)$ , $\text{cov}(u_{0j},u_{1j})=\sigma_{01}$
En este papel en la ecuación (2) , asumieron $\text{cov}(u_{0j},u_{1j})=\sigma_{01}$ que no es independiente. Pero también mencionan en la sección de metodología que :
Los componentes aleatorios del grupo $u_{0j}$ y $u_{1j}$ son variables normales "independientes" con media cero y desviaciones estándar $_0$ y $_1$ .
Así que asumí $\text{cov}(u_{0j},u_{1j})=0$ .
Código R :
## Simulating data from multilevel logistic regression
set.seed(1234)
x <- rnorm(1000) ### individual level variable
z <- rnorm(1000) ### group level variable
##fixed effect parameter
g_00 <- -1
g_01 <- 0.3
g_10 <- 0.3
g_11 <- 0.3
g <- matrix(c(g_00,g_01,g_10,g_11),ncol=1)
require(mvtnorm)
##need variance values as input
s2_0 <- 0.36
s2_1 <- 1
s01 <- 0
##generate bi-variate normal rv for u0, u1
avg <- c(0,0) ##mean
sigma <- matrix(c(s2_0,s01,s01,s2_1),ncol=2)
u <- rmvnorm(1000,mean=avg,sigma=sigma,method="chol")
pi_0j <- g_00 +g_01*z + as.vector(u[,1])
pi_1j <- g_10 +g_11*z + as.vector(u[,2])
p <- exp(pi_0j+pi_1j*x)/(1+exp(pi_0j+pi_1j*x))
y <- rbinom(1000,1,p)
Pero no entiendo dónde hay que considerar el grupo. Si selecciono el número de grupos a ser $100$ $(j=1,2,\ldots, 100)$ Entonces, asignaré los grupos al azar contra cada uno $y_{i,j}$ ?
- ¿He simulado correctamente los datos de
Multilevel Logistic Distribution
?