Repositioning semPaths() elements for a lavaan CLP model with 3 waves












0














I'm looking for a way to reposition semPlot::semPaths() elements drawn from a lavaan::sem() fitted crossed lagged panel model data with 3 time points.



This is what I get when running:



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



In red boxes are groupped 3 waves. What I'd like insted, is something like this: (I'm not the author of this plot)



enter image description here



My paths are correct, but no matter what I do, the *t2 wave group won't move to the center of the chart. Is there anyway around this?



For a fully reproducible example run this:



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")









share|improve this question



























    0














    I'm looking for a way to reposition semPlot::semPaths() elements drawn from a lavaan::sem() fitted crossed lagged panel model data with 3 time points.



    This is what I get when running:



    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



    In red boxes are groupped 3 waves. What I'd like insted, is something like this: (I'm not the author of this plot)



    enter image description here



    My paths are correct, but no matter what I do, the *t2 wave group won't move to the center of the chart. Is there anyway around this?



    For a fully reproducible example run this:



    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")









    share|improve this question

























      0












      0








      0







      I'm looking for a way to reposition semPlot::semPaths() elements drawn from a lavaan::sem() fitted crossed lagged panel model data with 3 time points.



      This is what I get when running:



      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



      In red boxes are groupped 3 waves. What I'd like insted, is something like this: (I'm not the author of this plot)



      enter image description here



      My paths are correct, but no matter what I do, the *t2 wave group won't move to the center of the chart. Is there anyway around this?



      For a fully reproducible example run this:



      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")









      share|improve this question













      I'm looking for a way to reposition semPlot::semPaths() elements drawn from a lavaan::sem() fitted crossed lagged panel model data with 3 time points.



      This is what I get when running:



      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



      In red boxes are groupped 3 waves. What I'd like insted, is something like this: (I'm not the author of this plot)



      enter image description here



      My paths are correct, but no matter what I do, the *t2 wave group won't move to the center of the chart. Is there anyway around this?



      For a fully reproducible example run this:



      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")






      r r-lavaan sem semplot






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Nov 20 '18 at 20:50









      blazej

      472214




      472214





























          active

          oldest

          votes











          Your Answer






          StackExchange.ifUsing("editor", function () {
          StackExchange.using("externalEditor", function () {
          StackExchange.using("snippets", function () {
          StackExchange.snippets.init();
          });
          });
          }, "code-snippets");

          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "1"
          };
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function() {
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled) {
          StackExchange.using("snippets", function() {
          createEditor();
          });
          }
          else {
          createEditor();
          }
          });

          function createEditor() {
          StackExchange.prepareEditor({
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          });


          }
          });














          draft saved

          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53401310%2frepositioning-sempaths-elements-for-a-lavaan-clp-model-with-3-waves%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown






























          active

          oldest

          votes













          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes
















          draft saved

          draft discarded




















































          Thanks for contributing an answer to Stack Overflow!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid



          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.


          To learn more, see our tips on writing great answers.





          Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


          Please pay close attention to the following guidance:


          • Please be sure to answer the question. Provide details and share your research!

          But avoid



          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.


          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53401310%2frepositioning-sempaths-elements-for-a-lavaan-clp-model-with-3-waves%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          Costa Masnaga

          Fotorealismo

          Sidney Franklin