MICE Multiple Imputation. Standardisierte Regressionskoeffizienten in Mediationsanalyse

Modelle zur Korrelations- und Regressionsanalyse

Moderator: EDi

Antworten
Xibit
Beiträge: 3
Registriert: Mo Aug 10, 2020 5:57 pm

MICE Multiple Imputation. Standardisierte Regressionskoeffizienten in Mediationsanalyse

Beitrag von Xibit »

Hallo zusammen,
ich würde gerne eine Mediationsanalyse mit standardisierten Koeffizienten rechnen. Mein Datensatz enthält fehlende Werte, die ich mit MICE multiple imputation imputieren möchte. Für mich macht es Sinn, meine Variablen erst nach der Imputation zu standardisieren.
Diesen R Code würde ich dafür verwenden:
#--- impute data df
imp <- mice(df, m=5, seed = 1234)
complete(imp)
#--- convert into datlist
datlist <- miceadds::mids2datlist(imp)
#--- scale datlist (only numeric variables: 1-7)
vars <- colnames(df[,1:7] )
sdatlist <- miceadds::scale_datlist(datlist, orig_var=vars, trafo_var=paste0("z",vars))
#--- reconvert to mids object
imp2 <- miceadds::datlist2mids(sdatlist)
imp2
complete(imp2)
Anschließend würde ich die imputierten Datensätze mit den zusätzlichen z-standardisierten Variablen für meine Mediationsanalyse nutzen.
Mit diesem Code würde ich die Mediationsanalyse rechnen:
> mediation <-'
scaleQIDS_t1 ~ diref*ModuleEr + b*WAI_P + QIDS_t0 + eCoach.d2 + eCoach.d3 + eCoach.d4 +
eCoach.d5 + eCoach.d6 + eCoach.d7 + eCoach.d8 + eCoach.d9 + eCoach.d10

WAI_P ~ a*ModuleEr + QIDS_t0 + eCoach.d2 + eCoach.d3 + eCoach.d4 +
eCoach.d5 + eCoach.d6 + eCoach.d7 + eCoach.d8 + eCoach.d9 + eCoach.d10
indef := a*b

total := indef + diref
'


# analysis based on all imputed datasets
mod6b <- lapply( imp3 , FUN = function(data){
res <- lavaan::sem(mediation , data = df )
return(res)
} )

# extract all parameters
qhat <- lapply( mod6b , FUN = function(ll){
h1 <- lavaan::parameterEstimates(ll)
parnames <- paste0( h1$lhs , h1$op , h1$rhs )
v1 <- h1$est
names(v1) <- parnames
return(v1)
} )
se <- lapply( mod6b , FUN = function(ll){
h1 <- lavaan::parameterEstimates(ll)
parnames <- paste0( h1$lhs , h1$op , h1$rhs )
v1 <- h1$se
names(v1) <- parnames
return(v1)
} )
Leider kann ich nicht die z-standardisierten Variablen verwenden, da sich der Code auf meinen ursprünglichen Datensatz df bezieht (res <- lavaan::sem(mediation , data = df )). Wenn ich z.B. zQIDS_t1 eingebe, findet es die Variable nicht. Nutze ich hingeben "sdatlist" oder "imp2" erscheint "Fehler in lavData(data = data, group = group, cluster = cluster, ov.names = OV.NAMES, :
lavaan ERROR: data object of class mids "

Meine Frage lautet deswegen:
Wie kann ich vorgehen, um standardisierte Regressionskoeffizienten bei meiner Mediationsanalyse nach einer multiple imputation zu erhalten.

Bin froh, um jeden Hinweis!!
Lieben Dank schonmal!
Antworten