Ошибка: количество наблюдений не совпадает между медиатором и моделями исходов в анализе медиации в R
Я потратил много времени на изучение пакета mediation
в R. Примеры работают хорошо. Однако произошла ошибка, когда я пытаюсь использовать свои собственные данные. Ошибка была следующей:
Ошибка в посредничестве (med.fit, out.fit, Treat = "BMI", meditor = "bwb", sims = 100,: количество наблюдений не совпадает между моделью посредника и исходом
Мой код выглядит следующим образом:
library( "mediation" )
med.fit <- lm(bwb~BMI+yearb+preage+BMI+a5+a23+a24+a25,data=test5)
out.fit <- lm(bmib~BMI+bwb+yearb+preage+BMI+a5+a23+a24+a25,data=test5)
med.out <- mediate(med.fit,out.fit,treat="BMI",meditor="bwb",sims=100)
1 ответ
В переменной "bmib" может быть больше пропущенных значений. Попробуй это,
test_df <- select(test5, bmib, BMI, bwb, yearb, preage, BMI, a5, a23, a24, a25)
test_df <- na.omit(test_df)
А потом,
med.fit <- lm(bwb ~ BMI + yearb + preage + BMI + a5 + a23 + a24 + a25, data = test_df)
out.fit <- lm(bmib ~ BMI + beb + yearb + preage + BMI + a5 + a23 + a24 + a25, data = test_df)
med.out <- mediate(med.fit, out.fit, treat = "BMI", meditor = "bwb", sims = 100)
Не глядя на ваши данные, трудно сказать, какова точная причина проблемы. Однако я столкнулся с той же проблемой с посредническим пакетом, и я решил применить функцию na.omit к данным перед запуском регрессионных моделей. В качестве альтернативы, если ваши переменные являются факторами, вы можете попробовать использовать функцию relevel(), чтобы заново настроить эталонную категорию ваших переменных. Эти двое решили мою проблему с посредническим пакетом, надеюсь, они вам тоже помогут!