лес(относительный.эффект())/ошибка в результате[[модель]] : нижний индекс выходит за пределы

Я пытаюсь представить результаты сетевого метаанализа. Я успешно сгенерировал ранговые вероятности для каждого лечения по сравнению с плацебо. Однако при вызове forest(relative.effect(results.rank)) возникает следующая ошибка:

Error in result[["model"]] : subscript out of bounds

Я понимаю, что на этом форуме есть много вопросов, касающихся индекса за пределами границ, однако ни один из тех, которые я задавал, не решил мою проблему должным образом.

Могу ли я получить указание относительно того, означает ли эта ошибка, что что-то не так с тем, как я пометил свои переменные, или мне нужно указать в строке forest(relative effect(results.rank)), чтобы каким-то образом расширить границы?

Любое руководство очень ценится.

ОБНОВЛЕНИЕ 29 ДЕКАБРЯ... Извиняюсь за минимальный контекст, вот мой код:

library(gemtc)
library(rjags)
library(readxl)
df<-read_xlsx("...Book1.xlsx")
#Create network model#
nw<-mtc.network(data.ab=df, treatments=unique(df$treatment))
#Build model#
nw.model <- mtc.model(nw, 
                         linearModel = "random",
                         n.chain = 4,
                         type="consistency",
                         likelihood='binom',
                         link="logit")
#Run MCMC#
nw.mcmc <- mtc.run(nw.model, n.adapt = 50, n.iter = 10000, thin = 10)
#Rank treatments#
nw.rank<-rank.probability(nw.mcmc, preferredDirection = -1)
#Plot relative effect#
forest(relative.effect(nw.rank))

Мои данные по этому вопросу:

study<-c("Jones", "Jones", "Prieto", "Prieto", "Scott", "Scott", "Mickle", "Mickle", "Yang", "Yang", "Zhao", "Zhao")
sampleSize<-c(3886, 3876, 218, 214, 2040, 2014, 137, 137, 683, 683, 221, 230)
responders<-c(114, 94, 3, 8, 30, 20, 1, 4, 9, 11, 1, 2)
treatment<-c("dx1", "px1", "rx1", "tx1", "rx1", "ax1", "zx1", "tx1", "gx1", "tx1", "ax1", "px1")
df<-as.data.frame(study, sampleSize, responders, treatment)

person Sandro    schedule 24.12.2020    source источник
comment
Пожалуйста, опубликуйте достаточно кода и примеров данных, чтобы воспроизвести проблему. См. минимально воспроизводимый пример.   -  person andrew_reece    schedule 24.12.2020
comment
@andrew_reece С Рождеством! Мои извинения - обновлен код с примерами данных, добавленными в исходное сообщение. Я бывший пользователь Stata, перешедший на R, поэтому для меня это проблема прорезывания зубов.   -  person Sandro    schedule 29.12.2020


Ответы (1)


Из документов функция relative.effect() берет

Объект класса S3 mtc.result, из которого извлекаются относительные эффекты.

В вашем примере объект nw.mcmc имеет тип mtc.result, а nw.rank — нет.

class(nw.mcmc) # "mtc.result"
class(nw.rank) # "mtc.rank.probability"

Итак, передайте nw.mcmc в своем вызове relative.effect(). Также обратите внимание, что второй аргумент, t1, обязателен, а в вашем коде он отсутствует:

t1: список базовых показателей для расчета относительных эффектов. Будет расширен, чтобы соответствовать длине t2.

Вызов forest/relative.effect с правильным объектом вместе с уровнем обработки в качестве базового выполняется без ошибок:

forest(relative.effect(nw.mcmc, "ax1"))

введите здесь описание изображения

person andrew_reece    schedule 29.12.2020