簡體   English   中英

R 中介分析——自舉

[英]R Mediation Analysis — Bootstrapping

我正在嘗試使用中介包在 R 中進行中介分析。 我查看了有關如何執行此操作的文檔,並通讀了 R 提供的示例(即,我已經運行了“example(mediate)”)。 盡管如此,我還是無法運行最簡單的中介。 理想情況下,我想做一個引導程序,a la Preacher & Hayes (2004)。

這是我嘗試運行的代碼:

model.m <- lm(desirdata1$zpers1 ~ desirdata1$zdesir1 + desirdata1$age)
model.y <- lm(desirdata1$zpers1 ~ desirdata1$age)
age1test <- mediate(model.m, model.y,treat="age", mediator="zdesir1",
                    boot=TRUE, sims=50)

請注意,數據集稱為desirdata ,處理稱為age ,結果稱為zpers1 ,中介稱為“zdesir1”。 當我運行它時,我收到以下錯誤:

Error in `[.data.frame`(m.data, , treat) : undefined columns selected

它似乎聲稱一個變量(特別是治療變量)不存在。 但是,運行 names(desirdata) 表明變量在那里,並且命名正確,所有其他變量也是如此。 前兩個模型(model.m 和 model.y)運行良好,輸出看起來應該如此。 這只是我無法運行的中介模型。 據我所知,我沒有打錯字,而且我已經檢查了一百次。

想法?

當我閱讀文檔中的示例時,中介模型的model.m將與主回歸對象model.y結果不同。 由於您沒有描述背景和什么樣的數據,因此很難確定這一點,但想知道您是否打算輸入:

model.m <- lm(zdesir1 ~  age, data=desirdata1)
model.y <- lm(zpers1 ~ age, , data=desirdata1 )
age1test <- mediate(model.m, model.y,treat="age", mediator="zdesir1",
                    boot=TRUE, sims=50)

我使用formuladata對象來轉換它,因為當給定向量時,一些回歸函數會崩潰。 還可以更容易地查看錯別字。

你的模型不正確。 model.m 應該根據 IV 預測中介,model.y 應該根據中介和 IV 預測 DV。

model.m <- lm(desirdata1$zdesir1 ~ desirdata1$age)
model.y <- lm(desirdata1$zpers1 ~ desirdata1$zdesir1 + desirdata1$age)
age1test <- mediate(model.m, model.y, treat="age", mediator="zdesir1", boot=TRUE, sims=50)

試試 MBESS 包。 Preacher 推薦它,您可以使用中介功能。 如果你想要引導程序,請確保它說引導程序 = TRUE。 B 是引導程序的數量。

mediation(x, mediator, dv, S = NULL, N = NULL, x.location.S = NULL,
mediator.location.S = NULL, dv.location.S = NULL, mean.x = NULL,
mean.m = NULL, mean.dv = NULL, conf.level = 0.95,
bootstrap = FALSE, B = 1000, which.boot="both", save.bs.replicates=FALSE)

我在模擬數據方面遇到了同樣的問題,所以我運行了 debug(mediate) 並找到了問題所在。 我相信問題出在代碼的 [treat="age", mediator="zdesir1"] 部分。 如果您附加數據,您不應該遇到那個問題。 或者,您可以使用 [treat="desirdata1$age", mediator="desirdata1$zdesir1"] 來解決問題。

那么試試這個:

model.m <- lm(zdesir1 ~ age, data=desirdata1)
model.y <- lm(zpers1 ~ age + zdesir1, data=desirdata1)
age1test <- mediate(model.m, model.y,treat="age", mediator="zdesir1",
                    boot=TRUE, sims=50)

為簡單起見,中介模型 (model.m) 應將中介作為結果。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM