Как обрабатывать недостающие ковариатные данные в сетевом метаанализе? - PullRequest
0 голосов
/ 20 декабря 2018

Я выполняю метаанализ байесовской сети с ковариатной настройкой, используя зазубрины с rjags.

Дадту и модель можно скачать здесь: https://www.dropbox.com/sh/krujfh8xgjhxclv/AACdjhnIYV-o1Mv9lvUOL4B2a?dl=0.

Моя проблема связана с обработкой отсутствующего ковариата.Если я запускаю прикрепленный код, пропуская все случаи с пропущенными ковариационными данными, все работает нормально.Тем не менее, при попытке согласовать модель со всеми включенными данными, я получаю следующую ошибку:

Error in jags.model(model.file, data = data, inits = init.values,   n.chains = n.chains,  : 
RUNTIME ERROR:
Compilation error on line 30.
Cannot evaluate subset expression for ssumdev

Я знаю, что это из-за NA в ковариатных данных, которые не могут быть поднастроены.Но я изо всех сил пытаюсь решить это.Поэтому я хотел бы спросить, есть ли решение, позволяющее избежать этой ошибки и запустить модель путем включения отсутствующих ковариатных данных?

rm(list = ls())
library(rjags)

# Defining some MCMC parameters for JAGS
nchains  <- 3; # How Many Chains?
nadapt<-500
nburnin  <- 500; # How Many Burn-in Samples?
nsamples <- 500;  # How Many Recorded Samples?
nthin <- 10;
# Data
datasrc <- read.csv('Data.csv', header=TRUE)
datasrc[] <- lapply(datasrc, function(x){
x[is.nan(x)] <- NA
x
}) 
datasrc<-subset(datasrc,datasrc$XSevag!="NA");
mmu<-mean(datasrc$XSevag); 
basenumbers<-linspace(14,44,31);base<-c(mmu,basenumbers); 
datastruct<-list(z=base, nz=length(base),ns=length(datasrc$t1),nt=22,mmu=mmu,base=base,id=c(datasrc$id),na=c(datasrc$na),
             t=structure(.Data=c(datasrc$t1,datasrc$t2,datasrc$t3), .Dim=c(length(datasrc$t1),3)),
             r=structure(.Data=c(datasrc$r1,datasrc$r2,datasrc$r3), .Dim=c(length(datasrc$t1),3)),
             n=structure(.Data=c(datasrc$n1,datasrc$n2,datasrc$n3), .Dim=c(length(datasrc$t1),3)),
             XSevag=c(datasrc$XSevag))

 model.file1 = "ModelA1.txt"
 mod1 <- jags.model(file =model.file1, data=datastruct, n.chains=nchains, n.adapt=nadapt);

Большое спасибо за помощь, Liso

...