[R-meta] shrinkage in location-scale RE model

Yefeng Yang ye|eng@y@ng1 @end|ng |rom un@w@edu@@u
Mon Jun 3 04:07:16 CEST 2024


Dear community,

I am investigating the study-specific effect in the context of a location-scale random-effects model. I'll explain my question briefly.

We start from a normal random-effects model. To get the study-specific effect (theta, hereafter) in a normal random-effects model, we first need to get the shrinkage factor (lambda) for each study:
lambda_i = tau^2 / (tau^2 + v_i^2), where tau^2 is the estimated heterogeneity in a RE model, and v_i is the sampling variance of the effect size estimates  y_i

then, theta is actually a weighted mean:
theta_i = lambda_i  * y_i +  (1 - lambda_i) * mu, where mu is the intercept from the RE model.

I manually checked the above formula is correct, using rma() in metafor package:
dat <- dat.bangertdrowns2004
# fit a RE
res <- rma(yi, vi, data=dat)
# get shrinkage
dat$lamda <- res$tau2 / (res$tau2 + res$vi)
# get study-specific effect
dat$theta <- dat$lamda * res$yi + (1 - dat$lamda) * res$beta[1]
# use blup() to get theta
theta <- blup(res)
# manual check
dat$theta == theta$pred

Now, if we fit a location-scale RE model, which relaxes the assumption of a common tau^2:
res.ls <- rma(yi, vi, scale = ~ 1, data=dat)

I thought we would get different tau^2 for each effect size included in the data, so that the lambda is becoming:
lambda_i = tau_i^2 / (tau^2 + v_i^2), where tau_i^2 is the heterogeneity corresponding to each y_i.

But this was not the case in rma().

So, my questions are:


  1.
Is my formula wrong when computing theta or lambda for the location-scale model
  2.
If my formula is correct, how to get the estimate of tau_i^2; the variance for each effect size, so that we can get lambda_i which is dependent on both  tau_i^2 and v_i


Best wishes,
Yefeng

	[[alternative HTML version deleted]]



More information about the R-sig-meta-analysis mailing list