[英]Is it possible to relevel a variable within a multiply imputed dataset (created using mice)?
我使用 r 小鼠 package (m = 50, method = "pmm")
對隨機對照試驗 (RCT) 數據集進行了多重插補。 我已經為我在線性回歸 model 中用作因變量的連續變量估算了數據。 在插補之前,該變量是一個具有兩個水平的因子,代表 RCT 的兩個試驗組。 但是,鼠標 package 不允許我將因子變量輸入到插補中,因此我使用 as.character function 將其轉換為字符。
在對估算數據運行回歸時,我想切換連續變量的參考水平,但是我不確定如何做到這一點。
我的插補代碼如下:
#impute missing data for wellbeing1yr using MICE package
peermentor$intervention <- as.character(peermentor$intervention)
peermentor$injecting_status <- as.character(peermentor$injecting_status)
imputed_Data <- mice(peermentor, m=50, method = "pmm")
imputefit <- with(data = imputed_Data, expr = lm(wellbeing1yr ~
intervention))
combine <- pool(imputefit)
summary(combine)
“干預”變量的兩個級別是“同伴指導”和“護理標准”。 我想以“護理標准”作為參考水平。
首先,您似乎沒有指定predictorMatrix
,這意味着data.frame
中的任何協變量中的缺失值都將被所有其他人預測,我建議不要這樣做(除非您有明確的理由這樣做)。
完成多重插補后,可以重新定義干預變量的水平。 使用miceadds::mids2datlist(imputed_Data)
將mids
object 轉換為多重插補數據集列表。 您可以使用此列表對協變量進行調整,然后使用miceadds::datlist2mids
將其轉換回mids
值。
由於您尚未提供示例數據,因此我將展示如何通過此reprex
完成此操作。
library(mice)
library(miceadds)
# multiply impute missing values
imp <- mice(nhanes, print = FALSE, seed = 123, maxit = 20, m = 10)
# convert mids to datlist
longlist <- complete(imp, 'long')
# make new factor covariate based on values of chl
longlist <- lapply(split(longlist, longlist$.imp), \(x) {
cbind(x, chl_new = factor(ifelse(x$chl < 185, 1, ifelse(x$chl >= 185 & x$chl < 191.4, 2, 3))))
})
imp_update <- datlist2mids(longlist)
fit <- with(imp_update, lm(age ~ bmi + chl_new))
> summary(pool(fit))
term estimate std.error statistic df p.value
1 (Intercept) 4.2473138 1.24133838 3.4215600 9.298439 0.007254247
2 bmi -0.1115735 0.05033307 -2.2167042 8.278105 0.056377780
3 chl_new2 0.3181516 0.45055559 0.7061317 15.177053 0.490804764
4 chl_new3 0.8243235 0.46964596 1.7552020 11.276793 0.106319297
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.