Позиционирование элементов semPaths () для лавовой модели CLP с 3 волнами - PullRequest
0 голосов
/ 20 ноября 2018

Я ищу способ изменить положение semPlot::semPaths() элементов, извлеченных из данных модели скрещенных отстающих панелей lavaan::sem() с 3 временными точками.

Это то, что я получаю при работе:

library(semPlot)
semPaths(fit1, edge.label.cex = .5, rotation = 2, style = "lisrel", 
         intercepts = FALSE, residuals = TRUE, curve = 1, curvature = 3, 
         nCharNodes = 8, sizeMan = 6, sizeMan2 = 3, optimizeLatRes = TRUE, 
         edge.color = "#000000")

enter image description here

В красных коробках сгруппированы 3 волны.Что-то, что я хотел бы подать, выглядит примерно так: (я не автор этого сюжета)

enter image description here

Мои пути верны, ночто бы я ни делал, группа волн *t2 не будет перемещаться в центр графика.Есть ли что-нибудь вокруг этого?

Для полностью воспроизводимого примера запустите это:

library(lavaan)
library(semPlot)

df <- data.frame(CNt1=rnorm(100),
                 CNt2=rnorm(100),
                 CNt3=rnorm(100),
                 ISt1=rnorm(100),
                 ISt2=rnorm(100),
                 ISt3=rnorm(100),
                 SESt1=rnorm(100),
                 SESt2=rnorm(100),
                 SESt3=rnorm(100),
                 OUTt1=rnorm(100),
                 OUTt2=rnorm(100),
                 OUTt3=rnorm(100))
model1 <- '
CNt1 ~~ ISt1
CNt1 ~~ SESt1
CNt1 ~~ OUTt1
ISt1 ~~ SESt1
ISt1 ~~ OUTt1
SESt1 ~~ OUTt1

CNt2 ~~ ISt2
CNt2 ~~ SESt2
CNt2 ~~ OUTt2
ISt2 ~~ SESt2
ISt2 ~~ OUTt2
SESt2 ~~ OUTt2

CNt3 ~~ ISt3
CNt3 ~~ SESt3
CNt3 ~~ OUTt3
ISt3 ~~ SESt3
ISt3 ~~ OUTt3
SESt3 ~~ OUTt3

CNt2 ~ OUTt1 + CNt1 + ISt1 + SESt1
ISt2 ~ OUTt1 + CNt1 + ISt1 + SESt1
SESt2 ~ OUTt1 + CNt1 + ISt1 + SESt1
OUTt2 ~ OUTt1 + CNt1 + ISt1 + SESt1

CNt3 ~ CNt1 + OUTt2 + CNt2 + ISt2 + SESt2
ISt3 ~ ISt1 + OUTt2 + CNt2 + ISt2 + SESt2
SESt3 ~ SESt1 + OUTt2 + CNt2 + ISt2 + SESt2
OUTt3 ~ OUTt1 + OUTt2 + CNt2 + ISt2 + SESt2
'

fit1 <- sem(model1, data=df, fixed.x=FALSE)

semPaths(fit1, edge.label.cex = .5, rotation = 2, style = "lisrel", 
         intercepts = FALSE, residuals = TRUE, curve = 1, curvature = 3, 
         nCharNodes = 8, sizeMan = 6, sizeMan2 = 3, optimizeLatRes = TRUE, 
         edge.color = "#000000")
...