4 votos

Uso de términos aleatorios anidados en el metanálisis con un moderador.

Estoy llevando a cabo un meta-análisis y estoy luchando con el azar de la estructura cuando hay una continua moderador y un anidada al azar plazo. Comenzando con un simple ejemplo:

library(metafor)
dat<- dat.konstantopoulos2011
dat$year <-rnorm(nrow(dat))
dat$yi <- dat$yi + dat$year/3 + dat$district/200
dat$study <- factor(dat$study)
dat$district<-factor(dat$district)

Este conjunto de datos tiene 11 distritos, con 3-11 estudios por distrito. Hay un efecto de tamaño según el estudio. dat$yi son los tamaños del efecto, que se correlacionan con la continua moderador dat$year (pendiente 0.33) y tienen distintas intersecciones de los 11 distritos. Es el siguiente modelo correcto?

rma.mv(yi ~ year, vi, random = ~ 1 | district/study, data=dat)

Sólo quiero aclarar porque el modelo habitual en la ecología sería:

lme(yi ~ year, random = ~1|district, data=dat)  #and VarFixed (~ vi), lmecontrol (sigma=1)

correspondiente en metafor a

rma.mv(yi ~ age, vi, random = ~ 1 | district, data=dat)

Puedo comprender intuitivamente que por lo general no quieren tener todos varianza para terminar en el "estudio" plazo, pero que esto es diferente en un meta-análisis fueron las desviaciones se conoce con exactitud. Sólo quiero para asegurarse de que la anidación de estudio en el distrito es la correcta.

Mis datos reales para el meta-análisis es un poco más complicado. Se compone de los tamaños del efecto (la media de la diapausa fecha) a partir de 447 poblaciones, extraído de 57 estudios. El 57 estudios se llevaron a cabo en 46 especies de 32 géneros en 9 órdenes. No hay un solo continuo de moderador. Un completo azar plazo serían order/genus/species/study/population. I plan para colocar el plazo study, porque casi siempre hay un solo estudio de cada especie, a excepción de algunos casos donde los mismos autores realizaron varios estudios con la igualdad de métodos en la misma especie. También estoy pensando en dejar el término genus, como la mayoría de las especies provienen de diferentes géneros. Esto haría que el azar plazo order/species/population con tamaños de muestra de 9/46/447. O sería sólo order/species ? El primer modelo parece bien, pero para calcular el valor de R2 necesito utilizar un modelo nulo con el moderador caído, y en ese caso el plazo order de repente se explica cero de la varianza. Aquí está el script hasta el momento (incluyendo el acceso a los datos en bruto):

#libraries
library(RCurl) 
library(glmmTMB)
library(nlme)

#load data
url <- getURL('https://raw.githubusercontent.com/JensJoschi/variability_timing/master/lit_extract/mcmcresults.txt')
studies <- read.table(text=url, header = TRUE)
studies <- studies[,-c(2:4,6:18,23:25,28,30:32)]
studies<-studies[order(studies

Ahora me pregunto acerca de la 0 la varianza de la duración de la $order),] r<-studies$. Es esto porque popid no debe ser parte de la aleatorios plazo, o hice algo fundamentalmente equivocado en mis modelos? Dado que los modelos son correctos, ¿puedo usar el R2-valores (reporting 0 0.67 0.79; y 0,54 en general)?

Por último, me pregunto por qué upper_e-studies$lower_e #credible interval range r[r<(1/6)]<-1/6 #prevents studies from getting infinite weight vi<-r #CI should be (r / (2*1.96))^2 but perhaps this is sufficient for demonstration purposes vi2<-1/vi vi2<-vi2/sum(vi2) #Order, genus, spec, ID and popid are the terms for nesting, med_e the effect sizes, #vi the variances, and degN is a moderator (latitude). #Vi2 is a scaled inverse variance needed for glmmTMB. #Plotting: plot(studies siempre da estimaciones diferentes, no importa el azar términos de uso. Hay algo mal con mi uso de la función? Voy a necesitar más tarde, porque uno de mis tamaños del efecto se distribuye beta. Yo realmente apreciaría si alguien con más experiencia puede comprobar los modelos.

Más información sobre el estudio aquí

1voto

Derek Swingley Puntos 3851

Gracias por proporcionar un reproducible ejemplo. De hecho, a primera vista, parece un poco extraño que el order de efecto aleatorio cae a 0 cuando la eliminación de la degN predictor. Pero order sólo tiene 9 niveles, así que yo no esperaría muy estimaciones precisas de los correspondientes componentes de varianza. Vamos a ver:

res1 <- rma.mv(med_e ~ degN, vi, random = ~ 1 | order/spec/popid, data=studies)
res1
res0 <- rma.mv(med_e, vi, random = ~ 1 | order/spec/popid, data=studies)
res0

confint(res1, sigma2=1)
confint(res0, sigma2=1)

Esto produce:

> confint(res1, sigma2=1)

          estimate  ci.lb  ci.ub
sigma^2.1   0.3629 0.0362 1.7155
sigma.1     0.6024 0.1902 1.3098

> confint(res0, sigma2=1)

          estimate  ci.lb  ci.ub
sigma^2.1   0.0000 0.0000 1.6463
sigma.1     0.0003 0.0000 1.2831

Así, el 95% de perfil probabilidad de CI para esta variación componente es muy amplia y muy similares para los dos modelos. Así que, yo diría que es bueno para usar:

pmax(0, (res0

para obtener el pseudo-R^2 valores.

Como para $sigma2 - res1$: en Primer lugar, usted debe utilizar sigma2) / res0 desde REML estimación también es el valor predeterminado para $sigma2) sum(res0$. Pero los resultados siguen siendo diferentes. En realidad, si utilizas sigma2 - res1 o no hace ninguna diferencia aquí a lo $sigma2) / sum(res0$ devuelve. Yo no soy un experto en sigma2) , pero creo que el significado de pesos es muy diferente aquí de cómo el muestreo varianzas son utilizados por glmmTMB() (e REML=TRUE). Mi conjetura es que el peso se aplica a la varianza residual del componente, pero ya que básicamente obligar a que la componente a 0, no hace ninguna diferencia lo que los pesos que usted especifique. Entonces, yo creo que usted no puede caber el mismo modelo con rma.mv() que encajan con weights = vi2.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X