Mô hình logistic đa cấp sau đây với một biến giải thích ở cấp 1 (cấp độ cá nhân) và một biến giải thích ở cấp độ 2 (cấp độ nhóm):
π 0 j = γ 00 + γ 01 z j + u 0 j ... ( 2 ) π 1 j = γ 10
trong đó, phần dư cấp độ nhóm và được giả sử là có phân phối chuẩn nhiều biến số với kỳ vọng bằng không. Phương sai của các lỗi dư được chỉ định là và phương sai của các lỗi dư được chỉ định là . u 1 j u 0 j σ 2 0 u 1 j σ 2 1
Tôi muốn ước tính tham số của mô hình và tôi muốn sử dụng R
lệnh glmmPQL
.
Thay vào phương trình (2) và (3) trong phương trình (1),
Có 30 nhóm và 5 cá nhân trong mỗi nhóm.
Mã R:
#Simulating data from multilevel logistic distribution
library(mvtnorm)
set.seed(1234)
J <- 30 ## number of groups
n_j <- rep(5,J) ## number of individuals in jth group
N <- sum(n_j)
g_00 <- -1
g_01 <- 0.3
g_10 <- 0.3
g_11 <- 0.3
s2_0 <- 0.13 ##variance corresponding to specific ICC
s2_1 <- 1 ##variance standardized to 1
s01 <- 0 ##covariance assumed zero
z <- rnorm(J)
x <- rnorm(N)
#Generate (u_0j,u_1j) from a bivariate normal .
mu <- c(0,0)
sig <- matrix(c(s2_0,s01,s01,s2_1),ncol=2)
u <- rmvnorm(J,mean=mu,sigma=sig,method="chol")
pi_0 <- g_00 +g_01*z + as.vector(u[,1])
pi_1 <- g_10 + g_11*z + as.vector(u[,2])
eta <- rep(pi_0,n_j)+rep(pi_1,n_j)*x
p <- exp(eta)/(1+exp(eta))
y <- rbinom(N,1,p)
Bây giờ ước tính tham số.
#### estimating parameters
library(MASS)
library(nlme)
sim_data_mat <- matrix(c(y,x,rep(z,n_j),rep(1:30,n_j)),ncol=4)
sim_data <- data.frame(sim_data_mat)
colnames(sim_data) <- c("Y","X","Z","cluster")
summary(glmmPQL(Y~X*Z,random=~1|cluster,family=binomial,data=sim_data,,niter=200))
ĐẦU RA:
iteration 1
Linear mixed-effects model fit by maximum likelihood
Data: sim_data
Random effects:
Formula: ~1 | cluster
(Intercept) Residual
StdDev: 0.0001541031 0.9982503
Variance function:
Structure: fixed weights
Formula: ~invwt
Fixed effects: Y ~ X * Z
Value Std.Error DF t-value p-value
(Intercept) -0.8968692 0.2018882 118 -4.442404 0.0000
X 0.5803201 0.2216070 118 2.618691 0.0100
Z 0.2535626 0.2258860 28 1.122525 0.2712
X:Z 0.3375088 0.2691334 118 1.254057 0.2123
Correlation:
(Intr) X Z
X -0.072
Z 0.315 0.157
X:Z 0.095 0.489 0.269
Number of Observations: 150
Number of Groups: 30
Tại sao nó chỉ mất lần lặp trong khi tôi đã đề cập để lấy lần lặp bên trong hàm theo đối số ?200
glmmPQL
niter=200
Ngoài ra giá trị p của biến cấp độ nhóm và tương tác ngang cấp cho thấy chúng không đáng kể. Vẫn còn tại sao trong bài viết này , họ giữ biến số cấp độ nhóm và tương tác ngang cấp để phân tích thêm?( X : Z ) ( Z ) ( X : Z )
Ngoài ra mức độ tự do
DF
được tính như thế nào?Nó không phù hợp với độ lệch tương đối của các ước tính khác nhau của bảng . Tôi đã cố gắng tính toán độ lệch tương đối như:
#Estimated Fixed Effect parameters : hat_g_00 <- -0.8968692 #overall intercept hat_g_10 <- 0.5803201 # X hat_g_01 <-0.2535626 # Z hat_g_11 <-0.3375088 #X*Z fixed <-c(g_00,g_10,g_01,g_11) hat_fixed <-c(hat_g_00,hat_g_10,hat_g_01,hat_g_11) #Estimated Random Effect parameters : hat_s_0 <-0.0001541031 ##Estimated Standard deviation of random intercept hat_s_1 <- 0.9982503 std <- c(sqrt(0.13),1) hat_std <- c(0.0001541031,0.9982503) ##Relative bias of Fixed Effect : rel_bias_fixed <- ((hat_fixed-fixed)/fixed)*100 [1] -10.31308 93.44003 -15.47913 12.50293 ##Relative bias of Random Effect : rel_bias_Random <- ((hat_std-std)/std)*100 [1] -99.95726 -0.17497
- Tại sao độ lệch tương đối không khớp với bảng?
I need to run a large number of simulations and compute averages