Мета-анализ показателей распространенности со случайными эффектами: есть ли проблемы с моим кодом? - PullRequest
3 голосов
/ 04 июля 2019

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

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

То, что заставляет меня задуматься, состоит в том, что три состояния распространенности со случайными эффектами не составляют в сумме 100. Это нормально?

require(data.table)
require(meta)

data <- data.table(Study = c("Smith", "Bond", "Francis", "Smith", "Bond", "Francis", "Smith", "Bond", "Francis"), Group = c("A", "A", "A", "B", "B", "B", "C", "C", "C"), size = c(150, 40, 30, 150, 40, 30, 150, 40, 30), members = c(140, 30, 20, 5, 5, 5, 5, 5, 5))
data$Study <- as.factor(data$Study)
data$Group <- as.factor(data$Group)

analysis <- metaprop(data = data, event = members, n = size, studlab = Study, byvar = data$Group)

Чтобы дать некоторую информацию о данных. Исследование - это название каждого из трех исследований. Группа - это какая из трех групп относится к каждой строке. Размер - это размер выборки в данном исследовании. Члены - это количество людей в выборке, принадлежащих к данной группе.

1 Ответ

2 голосов
/ 05 июля 2019

[forest(analysis) Я немного поигрался с числами и всегда получаю оценки распространенности, которые в сумме приближаются к 100 (+ -2) для моделей случайных и фиксированных эффектов.Итак, я думаю, это как-то связано с округлением?Если ваши результаты отличаются больше, это может быть связано с неправильным числом в ваших данных.]

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

data <- data[ which(data$Group=='A'),]

Я не уверен, как объединить группы для анализа (и я не знаю, рекомендуется ли это).Может быть, аргумент tau.common может быть полезен.удачи в любом случае!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...