cardiomoon / processR

52 stars 10 forks source link

Help with a model setup #3

Closed b1azk0 closed 4 years ago

b1azk0 commented 4 years ago

Dear Prof. Moon,

I was struggling in setting up simple slopes for a variation of Hayes model 14 with two mediators operating in parallel:

image

I was trying to join code coming from:

X="X";M=c("M1","M2");Y="Y"; add2ndMediation=FALSE
cat(makeEquation(X,M,Y))

With this:

X="X";M="M";Y="Y";labels=NULL;range=TRUE
moderator=list(name=c("W"),site=list(c("a")))
cat(modmedEquation(X=X,M=M,Y=Y,moderator=moderator,range=TRUE))

Problems I had with the above are:

Could you please help me out with this?

cardiomoon commented 4 years ago

Dear Blazej Mroinski,

I have updated my processR package to 0.2.2.2.

Please install the latest version from Github:

devtools::install_github("cardiomoon/processR")

The following R codes makes your model.

require(processR)
require(lavaan)
labels=list(X="cond",M=c("import","pmi"),Y="reaction")
moderator=list(name="gender",matrix=list(c(0,0,0,0,0,1)))
covar=list(name="age",site=list(c("M1","M2","Y")))
drawConcept(labels=labels,moderator=moderator,covar=covar,parallel=TRUE,
           node.pos = list(C1=c(1,0.9),W=c(0.9,0)))

drawModel(labels=labels,moderator=moderator,covar=covar,parallel=TRUE,
          node.pos = list(C1=c(1,0.9),W=c(1,0),`M2:W`=c(0.8,0)))

modelsSummaryTable(labels=labels,moderator=moderator,covar=covar,data=pmi)

model=multipleMediation(labels=labels,moderator=moderator,covar=covar,data=pmi,
                        rangemode=2)
cat(model)
semfit=sem(model=model,data=pmi,se="boot")
summary(semfit)
medSummaryTable(semfit)
modmedSummaryTable(semfit)

conditionalEffectPlot(semfit,data=pmi,no=2)

drawModel(semfit,labels=labels,moderator=moderator,covar=covar,data=pmi,parallel=TRUE,
          node.pos = list(C1=c(1,0.9),W=c(1,0),`M2:W`=c(0.8,0)),whatLabel="est",
          arrow.pos = list(b3=0.3,g=0.3))
b1azk0 commented 4 years ago

Thank you very much! Your code works like a charm and explains a lot. Best regards Blazej