[英]Mediation package R - continuous treatment variable: How to define treatment and control values?
[英]Why is output of R mediation package showing control/treat groups when the predictor is continuous?
我正在使用 R 中介包運行中介模型,但我沒有得到變量類型的正確輸出。 我有一個連續的預測器,但輸出將我的預測器視為分類變量。
簡而言之:
預測變量= 認知測試分數 [Composite_Z](連續)
調解員= 自我意識 [意識] (二分法;變量類型 = 數值以便運行調解)
結果= 驅動頻率 [DRFRQ](二分法)
10 個協變量= 年齡(連續)、性別(二分)、種族(二分)、教育(二分)、嚴重程度(連續)、時間(連續)、癲癇發作(二分)、收入(序數)、運動(連續)、城市農村(序數)
我有兩個模型正在進入我的中介分析(這兩個模型都運行良好,沒有問題)--
模型#1 :二元邏輯回歸檢查認知(預測)和自我意識之間的關系,同時考慮協變量。
代碼:
fit.a.A3H1 <- glm(Awareness ~ Composite_Z + Age + Sex + Race +
Education + Severity + Time + Seizures + Income + Motor
+ UrbanRural, family=binomial(link="logit"), data=A3H1.df)
模型#2 :二元邏輯回歸檢查認知(預測)和駕駛頻率(結果)之間的關系,同時考慮自我意識(中介)和協變量。
代碼:
fit.total.A3H1 <- glm(DRFRQ ~ Composite_Z + Awareness + Age + Sex
+ Race + Education + Severity + Time + Seizures + Income
+ Motor + UrbanRural, family=binomial(link="logit"), data = A3H1.df)
中介模型:然后,我將這些模型(如上所述)放入我的中介分析中。 我正在使用 R中介包來運行分析。
代碼:
fitMed.A3H1 <- mediate(fit.a.A3H1, fit.total.A3H1, sims=1000, boot=FALSE,
treat="Composite_Z", mediator="Awareness",
covariates = NULL, use_speed = FALSE)
輸出:
Causal Mediation Analysis
Quasi-Bayesian Confidence Intervals
Estimate 95% CI Lower 95% CI Upper p-value
ACME (control) -0.001007 -0.004191 0.00 0.27
ACME (treated) -0.000686 -0.002933 0.00 0.27
ADE (control) 0.031882 0.003696 0.06 0.03 *
ADE (treated) 0.032203 0.003727 0.06 0.03 *
Total Effect 0.031196 0.004744 0.05 0.03 *
Prop. Mediated (control) -0.024010 -0.134304 0.08 0.25
Prop. Mediated (treated) -0.016399 -0.113058 0.07 0.25
ACME (average) -0.000846 -0.003507 0.00 0.27
ADE (average) 0.032042 0.003711 0.06 0.03 *
Prop. Mediated (average) -0.020204 -0.124782 0.08 0.25
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Sample Size Used: 350
Simulations: 1000
即使我的預測變量是連續變量,輸出也會分組給出結果。 有誰知道我為什么會遇到這個問題以及我可以解決它的方法? 任何建議將不勝感激!
同樣奇怪的是,當我使用相同的預測變量/中介變量/協變量(但不同的結果變量是連續的而不是二分的)運行單獨的中介分析時,我沒有這個問題。 這種單獨的中介分析由(1)二元邏輯回歸模型和(2)線性回歸模型組成,輸出僅顯示整體 ACME/ADE/etc(即沒有組)。
看起來mediate()
函數的輸出采用最終 DV 的形式:即,如果您有二進制 DV,則結果將被分離到控制和處理中,而如果您有連續 DV,則輸出不會(因為輸出是數字而不是標稱比例,因此代表 β)。
使用中介包 vignette中的代碼,請參閱以下示例:
library(mediation)
data("framing", package = "mediation")
set.seed(2014)
#1: models exactly from mediation vignette: continuous m, binary DV
med.fit <- lm(emo ~ treat + age + educ + gender + income, data = framing)
out.fit <- glm(cong_mesg ~ emo + treat + age + educ + gender + income, data = framing, family = binomial("probit"))
med.out <- mediate(med.fit, out.fit, treat = "treat", mediator = "emo", robustSE = TRUE, sims = 100)
summary(med.out)
#2: models swapped: binary DV, continuous m
med.fit <- glm(cong_mesg ~ treat + age + educ + gender + income, data = framing, family = binomial("probit"))
out.fit <- lm(emo ~ cong_mesg + treat + age + educ + gender + income, data = framing)
med.out <- mediate(med.fit, out.fit, treat = "treat", mediator = "emo", robustSE = TRUE, sims = 100)
summary(med.out)
如您所見, #1
具有二進制 DV 和連續 M, mediate()
的輸出被分離到控制和處理中,而2
的輸出具有連續 DV 和二進制 M,而輸出不是。
在連續治療變量的情況下,您必須在調用mediate
時定義對照組和治療組(此處為x
和y
):
fitMed.A3H1 <- mediate(fit.a.A3H1, fit.total.A3H1, sims=1000, boot=FALSE,
treat="Composite_Z", mediator="Awareness",
control.value = x, treat.value = y,
covariates = NULL, use_speed = FALSE)
我知道它可能不會產生您可能期望的效果,但該軟件包的構建考慮了一個具有有限數量治療選項的實驗。 (請參閱小插圖中的第 3.3 節)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.