我花了很多时间研究R中的包
mediation
。示例运行良好。但是,当我尝试使用自己的数据时发生错误。错误如下:
mediate 中的错误(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)
在不查看数据的情况下,很难判断问题的确切原因是什么。但是,我在中介包中遇到了同样的问题,我的解决方案是在运行回归模型之前对数据应用 na.omit 函数。或者,如果您的变量是因素,您可能想尝试 relevel() 函数来重新调整变量的参考类别。这两个通过中介包解决了我的问题,希望他们也能帮助你!
变量“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)
数据中的缺失值在 med.fit 和 out.fit 中创建最终观察结果并不相同。删除数据中所有缺失的值