레벨 1 (개별 레벨)에 하나의 설명 변수와 레벨 2 (그룹 레벨)에 하나의 설명 변수가있는 다음 다중 레벨 물류 모델 :
여기서 그룹 레벨 잔차 및 는 기대 값이 0 인 다변량 정규 분포를 갖는 것으로 가정합니다. 잔여 오차의 분산 로 지정 , 상기 예측 오차의 분산 로 지정 .
모델의 매개 변수를 추정하고 R
command 을 사용하고 싶습니다 glmmPQL
.
방정식 (1)에서 방정식 (2)와 (3)을 대체하면
각 그룹 에는 30 개의 그룹 과 5 개의 개인이 있습니다.
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)
이제 모수 추정입니다.
#### 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))
출력 :
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
인수로 함수 내에서 회 반복하는 것을 언급하면서 왜 회만 반복 합니까?
glmmPQL
niter=200
또한 그룹 수준 변수 와 교차 수준 상호 작용 의 p- 값은 유의하지 않은 것으로 나타났습니다. 여전히이 기사 에서 그룹 수준 변수 와 교차 수준 상호 작용 을 추가 분석 을 위해 유지하는 이유는 무엇입니까?
또한 자유도
DF
는 어떻게 계산됩니까?표의 다양한 추정치의 상대적인 바이어스와 일치하지 않습니다 . 상대 바이어스를 다음과 같이 계산하려고했습니다.
#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
- 상대 바이어스가 테이블과 일치하지 않는 이유는 무엇입니까?
I need to run a large number of simulations and compute averages
? 다단계 로지스틱 분포에서 데이터를 회 시뮬레이션 할 때마다 매번 매개 변수를 추정하고 평균값을 구해야한다는 의미 입니까? 그러나 내가 말하면 에 따라 추정 매개 변수의 값이 매개 변수의 실제 값과 같지 않습니까?