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:
Anschließend würde ich die imputierten Datensätze mit den zusätzlichen z-standardisierten Variablen für meine Mediationsanalyse nutzen.#--- 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)
Mit diesem Code würde ich die Mediationsanalyse rechnen:
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, :> 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)
} )
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!