semPaths — узлы разного размера для lavaan SEM

Я хочу установить разные размеры для разных узлов, используя semPlot для модели SEM с lavaan.

library(lavaan)
library(semPlot)

model <- '
  # measurement model
    ind60 =~ x1 + x2 + x3
    dem60 =~ y1 + y2 + y3 + y4
    dem65 =~ y5 + y6 + y7 + y8
  # regressions
    dem60 ~ ind60
    dem65 ~ ind60 + dem60
  # residual correlations
    y1 ~~ y5
    y2 ~~ y4 + y6
    y3 ~~ y7
    y4 ~~ y8
    y6 ~~ y8
'
fit <- sem(model, data=PoliticalDemocracy)

semPlot дает:

semPaths(fit, whatLabels="std", style="lisrel", exoCov = T, curvePivot = TRUE, sizeMan = 3, sizeInt = 5, 
     residuals=F) 

введите здесь описание изображения

Однако мне бы хотелось этого: введите здесь описание изображения


person giac    schedule 17.06.2017    source источник
comment
не оптимально, но вы можете изменить размеры вручную: назначьте semPlot: s <- semPaths(..., а затем измените высоту и ширину узла, s$graphAttributes$Nodes$height[1:3] <- 8 ; s$graphAttributes$Nodes$width[1:3] <- 8 ; plot(s)   -  person user20650    schedule 17.06.2017


Ответы (1)


Я сделал это для своей диссертации

semPaths(fit, style="lisrel", 
        whatLabels = "std", edge.label.cex = .6, node.label.cex = .6, 
        label.prop=0.9, edge.label.color = "black", rotation = 4, 
        equalizeManifests = FALSE, optimizeLatRes = TRUE, node.width = 1.5, 
        edge.width = 0.5, shapeMan = "rectangle", shapeLat = "ellipse", 
        shapeInt = "triangle", sizeMan = 4, sizeInt = 2, sizeLat = 4, 
        curve=2, unCol = "#070b8c")

Совершенно уродливый, но хороший результат в конце!

Полный анализ SEM находится здесь https://github.com/pachamaltese/thesis.

Я также написал полное руководство в двух частях для своего блога: http://pacha.hk/tag/structural-equation-modelling-sem.html

person pachamaltese    schedule 17.06.2017
comment
привет, твой код не работает с примером? можете ли вы указать, откуда берется onefactormeasures? спасибо - person giac; 19.06.2017