From cd9e4401b51a2157d15a6b9c369e72557f392a6f Mon Sep 17 00:00:00 2001 From: Kss2k Date: Wed, 27 Nov 2024 20:24:56 +0000 Subject: [PATCH] Update pkgdown site [skip ci] --- .../figure-html/unnamed-chunk-4-1.png | Bin 71164 -> 62964 bytes .../figure-html/unnamed-chunk-5-1.png | Bin 68295 -> 58036 bytes pkgdown.yml | 2 +- reference/plot_interaction.html | 4 +++- reference/plot_jn.html | 19 ++++++++++++++---- search.json | 2 +- 6 files changed, 20 insertions(+), 7 deletions(-) diff --git a/articles/plot_interactions_files/figure-html/unnamed-chunk-4-1.png b/articles/plot_interactions_files/figure-html/unnamed-chunk-4-1.png index d9afe4dd729d0eb5c42ae6ade5afba679d51fed7..aae847e3feee583ee147635bdabefcca1d0eedfd 100644 GIT binary patch literal 62964 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 X`Vt*q^9sJ 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
1m7W9Zp6bw&b?vhi>| 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 K8_vALKk^sqNGCD? literal 68295 zcmc$`bySpJ^fx+mBZzbf3?S0oA?W~u(wzd*-7T#MI;0>VQqs~5ql_Re-Ce@aF*Mu< z<$K@vUF&z({p+s#EOBO@dCoceeD-JWv-ds+VxFrh5#UncfHE{K_J?w+aHwp)qN`v=phIq|3u5@)7Gr7 zkCD~n>Hh9VNSenyG}-v&i|oor7$0aAUb1P+>j#i3JbCaUxW3{SOZn%A*k41wd|`YO z@+cw!1Dv1eS)m~>k{jk{QO-j znHMwno=l)D zW9wL>i4N!n9Wv4y7k$Fi3r7;78ChOD66GQE{u;Kynup^RVx8r850->(a<9q*Bc zySg5338l3(218!Zhp;T}SVM_xp0+TM#tz zsepcl-V0#X<#a1oMP9YJN9Sk0lLsi;aff4-j*f$$cM{vi#){3ZX!iCi9m^2b8MhNq zU=uPF_zOQ~1}7ER^O$s@ZsWiTwt{c@0T&h@LNb(Pqp5G9cRRye;_v9?xn*J@av@$8 z(pszo!_QsJCl8$TF&J*e7Enxs@Ri_1B~>fvpBFaa}* zk5X+Rj5Wj*?FLl`6)%)JG)J$Bu810?0OcNt8%-rt8pRY%sN5yCI8?j2@wEr%f}WY0 z*jmrV!G?D1G$??go`3c_3w9FP_jsoDt4^o$XS(&YM%;Q)nYl_d74hnzK%x+Y7ZH9@L|M+@NsL0@WDGU$Bw?Mq)Uh(9fWjVnodOxK(Zj!Sd}K1dIi1$* z9iM;HsGsDdc_f>1F;@}ks{9YB+%(8o2MLK+_UoP`7+k7@J!|1BN`3unS7&qvW#|z@iSxG|AS{#A{=y|`x=-Lb<`|XYe_D8`MvizXBy#3>Rpc@v{w$GKzKEyov z>AY#tG1W4vL%NSquAgkw=#^cby+X;{VyZnDSCv(TB9DE_lr78QA`6|Qv6La~k6Oy< zo;iybr1Mq<^l6KC88j?ep1Y<@vuC_4CEJ}H(5?>zA-}GD|3{(^r9rP zc4QZ>HtPLJSWVA$C+iP4f`l&6>&qQlszPUnD|QMhb9-g}PVxE==Y~+zR_i?^uUa0? z9H;NG>m~L6{B^6u)2`QO{wUfO)b0eHZe?^IX)99OZR-pVl%*Dxcdcn>1j01 zgKB12q(Bfgz}IM`?Z_{{WNZO?i?4dMLSyR&lJYuC-x6lX5fZx?k- zn@qQ~)#bzA*)cr_?heAQ^BG#os-spT6CY#WUDd|6>wwGZ*ZWRvhSEg-yU0}?<*tsMBA;|0 z&q^c#X)I1fMti&Q(gyo?@rm+=Yp_qj3%^;8<(l1`x%5Q*^@NZd|ZO`#oE;~nvL8n5f7a4@kDr=v@* zNF`=ST}#iHXmyk)&<&k>A!E%{Ol9q3YJcmL3qp>j^75B|x)LArr#CgUU7r0ZW0u!l z?c{o{Kh)T)An&~`E~S249`l8*xsmhYtR%UQ6Qh zxo5lT5p9mT7Vq3G!jk>hU#p7_aFx3TckWjM-5w_1k7qsR@9!Dj4jx=ZS}PYUWX<;= z-¥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

-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 OBJQf*$&ojD@xK6I)%GC( diff --git a/pkgdown.yml b/pkgdown.yml index 0c68233..6dc94cb 100644 --- a/pkgdown.yml +++ b/pkgdown.yml @@ -12,4 +12,4 @@ articles: observed_lms_qml: observed_lms_qml.html plot_interactions: plot_interactions.html quadratic: quadratic.html -last_built: 2024-11-27T17:12Z +last_built: 2024-11-27T20:10Z diff --git a/reference/plot_interaction.html b/reference/plot_interaction.html index acb6d7a..634abb3 100644 --- a/reference/plot_interaction.html +++ b/reference/plot_interaction.html @@ -85,11 +85,13 @@

Argumentsvals_x -

The values of the x variable to plot, the more values the smoother the std.error-area will be

+

The values of the x variable to plot, the more values the smoother the std.error-area will be. +NOTE: vals_x are measured relative to the mean of x. The correct values will show up in the plot.

vals_z

The values of the moderator variable to plot. A separate regression +NOTE: vals_z are measured relative to the mean of z. The correct values will show up in the plot. line (y ~ x | z) will be plotted for each value of the moderator variable

diff --git a/reference/plot_jn.html b/reference/plot_jn.html index 401f6bc..e2ef51e 100644 --- a/reference/plot_jn.html +++ b/reference/plot_jn.html @@ -58,8 +58,10 @@

Usage model, min_z = -3, max_z = 3, - alpha = 0.05, + sig.level = 0.05, + alpha = 0.2, detail = 1000, + sd.line = 2, ... ) @@ -89,21 +91,30 @@

Argumentsmin_z -

The minimum value of the moderator variable z to be used in the plot (default is -3).

+

The minimum value of the moderator variable z to be used in the plot (default is -3). It is relative to the mean of z.

max_z
-

The maximum value of the moderator variable z to be used in the plot (default is 3).

+

The maximum value of the moderator variable z to be used in the plot (default is 3). It is relative to the mean of z.

-
alpha
+
sig.level

The significance level for the confidence intervals (default is 0.05).

+
alpha
+

alpha setting used in `ggplot` (i.e., the opposite of opacity)

+ +
detail

The number of generated data points to use for the plot (default is 1000). You can increase this value for smoother plots.

+
sd.line
+

A thick black line showing +/- sd.line * sd(z). NOTE: This line will be truncated by min_z and max_z if +the sd.line falls outside of [min_z, max_z].

+ +
...

Additional arguments (currently not used).

diff --git a/search.json b/search.json index 93c2a06..e68bcfc 100644 --- a/search.json +++ b/search.json @@ -1 +1 @@ -[{"path":"/CONTRIBUTING.html","id":null,"dir":"","previous_headings":"","what":"Contributing to modsem","title":"Contributing to modsem","text":"Thank considering contributing modsem! welcome contributions help improve package estimating interaction effects structural equation modeling (SEM). ensure smooth collaboration, please follow guidelines .","code":""},{"path":[]},{"path":"/CONTRIBUTING.html","id":"fork-and-clone-the-repository","dir":"","previous_headings":"Getting Started","what":"Fork and Clone the Repository","title":"Contributing to modsem","text":"Fork repository GitHub. Clone fork local machine.","code":"git clone https://github.com/your-username/modsem.git cd modsem"},{"path":"/CONTRIBUTING.html","id":"setting-up-your-development-environment","dir":"","previous_headings":"Getting Started","what":"Setting up your Development Environment","title":"Contributing to modsem","text":"Ensure R installed machine. Install package dependencies. Install modsem package local repository.","code":"install.packages(\"devtools\") devtools::install_deps() devtools::install()"},{"path":[]},{"path":"/CONTRIBUTING.html","id":"creating-a-branch","dir":"","previous_headings":"Making Changes","what":"Creating a Branch","title":"Contributing to modsem","text":"Always create new branch work.","code":"git checkout -b your-branch-name"},{"path":"/CONTRIBUTING.html","id":"making-your-changes","dir":"","previous_headings":"Making Changes","what":"Making Your Changes","title":"Contributing to modsem","text":"Make changes codebase. Ensure changes well-documented. Write tests changes applicable.","code":""},{"path":"/CONTRIBUTING.html","id":"contributing-to-vignettes","dir":"","previous_headings":"Making Changes","what":"Contributing to Vignettes","title":"Contributing to modsem","text":"also encourage contributions vignettes. new use case example, feel free add alter vignettes help demonstrate functionality modsem.","code":""},{"path":"/CONTRIBUTING.html","id":"running-tests","dir":"","previous_headings":"Making Changes","what":"Running Tests","title":"Contributing to modsem","text":"Run tests ensure changes break existing functionality.","code":"devtools::test()"},{"path":"/CONTRIBUTING.html","id":"submitting-your-changes","dir":"","previous_headings":"","what":"Submitting Your Changes","title":"Contributing to modsem","text":"Push changes fork. Open pull request GitHub main branch original repository.","code":"git push origin your-branch-name"},{"path":"/CONTRIBUTING.html","id":"pull-request-guidelines","dir":"","previous_headings":"Submitting Your Changes","what":"Pull Request Guidelines","title":"Contributing to modsem","text":"Provide clear descriptive title pull request. Describe changes made necessary. Reference related issues pull requests. Ensure tests pass merge conflicts.","code":""},{"path":"/CONTRIBUTING.html","id":"reporting-issues","dir":"","previous_headings":"","what":"Reporting Issues","title":"Contributing to modsem","text":"encounter issues suggestions improvements, please open issue GitHub. Provide much detail possible help us understand address issue.","code":""},{"path":"/LICENSE.html","id":null,"dir":"","previous_headings":"","what":"MIT License","title":"MIT License","text":"Copyright (c) 2024 modsem authors Permission hereby granted, free charge, person obtaining copy software associated documentation files (“Software”), deal Software without restriction, including without limitation rights use, copy, modify, merge, publish, distribute, sublicense, /sell copies Software, permit persons Software furnished , subject following conditions: copyright notice permission notice shall included copies substantial portions Software. SOFTWARE PROVIDED “”, WITHOUT WARRANTY KIND, EXPRESS IMPLIED, INCLUDING LIMITED WARRANTIES MERCHANTABILITY, FITNESS PARTICULAR PURPOSE NONINFRINGEMENT. EVENT SHALL AUTHORS COPYRIGHT HOLDERS LIABLE CLAIM, DAMAGES LIABILITY, WHETHER ACTION CONTRACT, TORT OTHERWISE, ARISING , CONNECTION SOFTWARE USE DEALINGS SOFTWARE.","code":""},{"path":"/articles/customizing.html","id":"specifying-the-measurement-model","dir":"Articles","previous_headings":"","what":"Specifying the Measurement Model","title":"customizing interaction terms","text":"default, modsem() creates possible combinations product indicators. However, another common approach match indicators order. example, let’s say interaction latent variables X Z: X =~ x1 + x2 Z =~ z1 + z2. default, get XZ =~ x1z1 + x1z2 + x2z1 + x2z2. prefer use matching approach, expect XZ =~ x1z1 + x2z2 instead. achieve , can use match = TRUE argument.","code":"m2 <- ' # Outer Model X =~ x1 + x2 Y =~ y1 + y2 Z =~ z1 + z2 # Inner model Y ~ X + Z + X:Z ' est2 <- modsem(m2, oneInt, match = TRUE) summary(est2) #> modsem (version 1.0.4, approach = dblcent): #> lavaan 0.6-19 ended normally after 41 iterations #> #> Estimator ML #> Optimization method NLMINB #> Number of model parameters 22 #> #> Number of observations 2000 #> #> Model Test User Model: #> #> Test statistic 11.355 #> Degrees of freedom 14 #> P-value (Chi-square) 0.658 #> #> Parameter Estimates: #> #> Standard errors Standard #> Information Expected #> Information saturated (h1) model Structured #> #> Latent Variables: #> Estimate Std.Err z-value P(>|z|) #> X =~ #> x1 1.000 #> x2 0.819 0.021 38.127 0.000 #> Y =~ #> y1 1.000 #> y2 0.807 0.010 82.495 0.000 #> Z =~ #> z1 1.000 #> z2 0.836 0.024 35.392 0.000 #> XZ =~ #> x1z1 1.000 #> x2z2 0.645 0.024 26.904 0.000 #> #> Regressions: #> Estimate Std.Err z-value P(>|z|) #> Y ~ #> X 0.688 0.029 23.366 0.000 #> Z 0.576 0.029 20.173 0.000 #> XZ 0.706 0.032 22.405 0.000 #> #> Covariances: #> Estimate Std.Err z-value P(>|z|) #> .x1z1 ~~ #> .x2z2 0.000 #> X ~~ #> Z 0.202 0.025 8.182 0.000 #> XZ 0.003 0.026 0.119 0.905 #> Z ~~ #> XZ 0.042 0.026 1.621 0.105 #> #> Variances: #> Estimate Std.Err z-value P(>|z|) #> .x1 0.179 0.022 8.029 0.000 #> .x2 0.151 0.015 9.956 0.000 #> .y1 0.184 0.021 8.577 0.000 #> .y2 0.136 0.014 9.663 0.000 #> .z1 0.197 0.025 7.802 0.000 #> .z2 0.138 0.018 7.831 0.000 #> .x1z1 0.319 0.035 9.141 0.000 #> .x2z2 0.244 0.016 15.369 0.000 #> X 0.962 0.042 23.120 0.000 #> .Y 0.964 0.042 23.110 0.000 #> Z 0.987 0.044 22.260 0.000 #> XZ 1.041 0.054 19.441 0.000"},{"path":"/articles/customizing.html","id":"more-complicated-models","dir":"Articles","previous_headings":"","what":"More Complicated Models","title":"customizing interaction terms","text":"want even control, can use get_pi_syntax() get_pi_data() functions extract modified syntax data modsem(), allowing modify needed. can particularly useful cases want estimate model using feature lavaan isn’t available modsem(). example, syntax ordered multigroup models (now) isn’t flexible modsem() lavaan. can modify auto-generated syntax (along altered dataset) modsem() suit needs.","code":"m3 <- ' # Outer Model X =~ x1 + x2 Y =~ y1 + y2 Z =~ z1 + z2 # Inner model Y ~ X + Z + X:Z ' syntax <- get_pi_syntax(m3) cat(syntax) #> X =~ x1 #> X =~ x2 #> Y =~ y1 #> Y =~ y2 #> Z =~ z1 #> Z =~ z2 #> Y ~ X #> Y ~ Z #> Y ~ XZ #> XZ =~ 1*x1z1 #> XZ =~ x2z1 #> XZ =~ x1z2 #> XZ =~ x2z2 #> x1z1 ~~ 0*x2z2 #> x1z2 ~~ 0*x2z1 #> x1z1 ~~ x1z2 #> x1z1 ~~ x2z1 #> x1z2 ~~ x2z2 #> x2z1 ~~ x2z2 data <- get_pi_data(m3, oneInt) head(data) #> x1 x2 y1 y2 z1 z2 x1z1 #> 1 2.4345722 1.3578655 1.4526897 0.9560888 0.8184825 1.60708140 -0.4823019 #> 2 0.2472734 0.2723201 0.5496756 0.7115311 3.6649148 2.60983102 -2.2680403 #> 3 -1.3647759 -0.5628205 -0.9835467 -0.6697747 1.7249386 2.10981827 -1.9137416 #> 4 3.0432836 2.2153763 6.4641465 4.7805981 2.5697116 3.26335379 2.9385205 #> 5 2.8148841 2.7029616 2.2860280 2.1457643 0.3467850 0.07164577 -1.4009548 #> 6 -0.5453450 -0.7530642 1.1294876 1.1998472 -0.2362958 0.60252657 1.7465860 #> x2z1 x1z2 x2z2 #> 1 -0.1884837 0.3929380 -0.0730934 #> 2 -2.6637694 -1.2630544 -1.4547433 #> 3 -1.4299711 -2.3329864 -1.7383407 #> 4 1.3971422 3.9837389 1.9273102 #> 5 -1.1495704 -2.2058995 -1.8169042 #> 6 2.2950753 0.7717365 1.0568143"},{"path":"/articles/higher_order_interactions.html","id":"interaction-between-two-higher-order-constructs","dir":"Articles","previous_headings":"","what":"Interaction between two higher order constructs","title":"higher order interactions","text":"WARNING: Please note literature higher order interactions product indicator approaches virtually non-existant, likely need experiment different approaches find one works. well experiment adding constraints model. modsem two datasets variants Theory Planned Behaviour (TPB) dataset. TPB_2SO contains two second order constructs, INT (intention) second order construct ATT (attitude) SN (subjective norm), PBC (perceived behavioural control) second order construct PC (perceived control) PB (perceived behaviour).","code":"tpb <- ' # First order constructs ATT =~ att1 + att2 + att3 SN =~ sn1 + sn2 + sn3 PB =~ pb1 + pb2 + pb3 PC =~ pc1 + pc2 + pc3 BEH =~ b1 + b2 # Higher order constructs INT =~ ATT + SN PBC =~ PC + PB # Higher order interaction INTxPBC =~ ATT:PC + ATT:PB + SN:PC + SN:PB # Structural model BEH ~ PBC + INT + INTxPBC ' est_ca <- modsem(tpb, data = TPB_2SO, method = \"ca\") summary(est_ca) #> modsem (version 1.0.4, approach = ca): #> lavaan 0.6-19 ended normally after 628 iterations #> #> Estimator ML #> Optimization method NLMINB #> Number of model parameters 96 #> Row rank of the constraints matrix 28 #> #> Number of observations 2000 #> #> Model Test User Model: #> #> Test statistic 3479.483 #> Degrees of freedom 309 #> P-value (Chi-square) 0.000 #> #> Parameter Estimates: #> #> Standard errors Standard #> Information Expected #> Information saturated (h1) model Structured #> #> Latent Variables: #> Estimate Std.Err z-value P(>|z|) #> ATT =~ #> a (l_1_A) 1.000 #> a (l_2_A) 0.903 0.010 94.899 0.000 #> a (l_3_A) 0.787 0.009 89.747 0.000 #> SN =~ #> s (l_1_S) 1.000 #> s (l_2_S) 0.917 0.013 71.403 0.000 #> s (l_3_S) 0.804 0.012 67.969 0.000 #> PB =~ #> p (l_1_PB) 1.000 #> p (l_2_PB) 0.923 0.010 89.364 0.000 #> p (l_3_PB) 0.790 0.009 84.731 0.000 #> PC =~ #> p (l_1_PC) 1.000 #> p (l_2_PC) 0.889 0.009 101.651 0.000 #> p (l_3_PC) 0.787 0.008 97.811 0.000 #> BEH =~ #> b (l_1_B) 1.000 #> b (l_2_B) 0.848 0.043 19.772 0.000 #> INT =~ #> A (l_ATT_) 1.000 #> S (l_SN_) 0.646 0.076 8.547 0.000 #> PBC =~ #> P (l_PC) 1.000 #> P (l_PB) 0.650 0.081 7.985 0.000 #> INTxPBC =~ #> A (l_ATTPC) 1.000 #> A (l_ATTPB) 0.817 0.036 22.725 0.000 #> S (l_SNPC) 0.729 0.031 23.234 0.000 #> S (l_SNPB) 0.606 0.027 22.365 0.000 #> ATTPC =~ #> a (l_11_ATTPC) 1.000 #> a (l_22_ATTPC) 0.803 0.009 90.729 0.000 #> a (l_33_ATTPC) 0.620 0.007 86.179 0.000 #> ATTPB =~ #> a (l_11_ATTPB) 1.000 #> a (l_22_ATTPB) 0.834 0.010 83.614 0.000 #> a (l_33_ATTPB) 0.622 0.008 78.869 0.000 #> SNPC =~ #> s (l_11_SNPC) 1.000 #> s (l_22_SNPC) 0.815 0.011 71.600 0.000 #> s (l_33_SNPC) 0.633 0.009 68.160 0.000 #> SNPB =~ #> s (l_11_SNPB) 1.000 #> s (l_22_SNPB) 0.846 0.012 68.808 0.000 #> s (l_33_SNPB) 0.635 0.010 65.238 0.000 #> #> Regressions: #> Estimate Std.Err z-value P(>|z|) #> BEH ~ #> PBC (G_PB) 0.221 0.031 7.155 0.000 #> INT (G_INT_) 0.209 0.029 7.224 0.000 #> INTPB (G_INTP) 0.158 0.019 8.137 0.000 #> #> Covariances: #> Estimate Std.Err z-value P(>|z|) #> INT ~~ #> PBC (C_INT_P) 0.017 0.026 0.669 0.504 #> INTP (C_INT_I) -0.002 0.029 -0.083 0.934 #> PBC ~~ #> INTP (C_PB) -0.094 0.035 -2.712 0.007 #> .att1pc1 ~~ #> .at22 0.000 #> .at33 0.000 #> .att2pc2 ~~ #> .at33 0.000 #> .att1pb1 ~~ #> .at22 0.000 #> .at33 0.000 #> .att2pb2 ~~ #> .at33 0.000 #> .sn1pc1 ~~ #> .sn22 0.000 #> .sn33 0.000 #> .sn2pc2 ~~ #> .sn33 0.000 #> .sn1pb1 ~~ #> .sn22 0.000 #> .sn33 0.000 #> .sn2pb2 ~~ #> .sn33 0.000 #> #> Intercepts: #> Estimate Std.Err z-value P(>|z|) #> .ATTP (M_ATTPC) 0.017 0.026 0.669 0.504 #> .ATTP (M_ATTPB) 0.011 0.017 0.668 0.504 #> .SNPC (M_SNPC) 0.011 0.017 0.668 0.504 #> .SNPB (M_SNPB) 0.007 0.011 0.667 0.505 #> .att1 1.008 0.025 40.614 0.000 #> .att2 1.002 0.023 43.736 0.000 #> .att3 1.012 0.021 49.282 0.000 #> .sn1 0.980 0.018 53.085 0.000 #> .sn2 0.986 0.018 56.087 0.000 #> .sn3 0.993 0.016 61.749 0.000 #> .pb1 1.010 0.024 41.515 0.000 #> .pb2 1.014 0.023 43.981 0.000 #> .pb3 1.015 0.020 50.248 0.000 #> .pc1 1.032 0.028 36.550 0.000 #> .pc2 1.023 0.026 39.909 0.000 #> .pc3 1.027 0.023 44.819 0.000 #> .b1 1.000 0.020 50.566 0.000 #> .b2 0.997 0.018 54.925 0.000 #> .at11 0.012 0.048 0.242 0.809 #> .at22 -0.016 0.039 -0.401 0.689 #> .at33 0.005 0.031 0.170 0.865 #> .at11 0.031 0.038 0.812 0.417 #> .at22 0.009 0.033 0.292 0.770 #> .at33 0.025 0.025 1.013 0.311 #> .sn11 0.021 0.034 0.605 0.545 #> .sn22 0.000 0.029 0.008 0.994 #> .sn33 0.006 0.023 0.282 0.778 #> .sn11 0.028 0.028 1.031 0.303 #> .sn22 0.008 0.024 0.344 0.731 #> .sn33 0.009 0.019 0.467 0.640 #> #> Variances: #> Estimate Std.Err z-value P(>|z|) #> .AT (Vr_ATT) 0.306 0.088 3.482 0.000 #> .SN (Vr_SN) 0.190 0.037 5.088 0.000 #> .PB (Vr_PB) 0.619 0.054 11.411 0.000 #> .PC (V_PC) 0.469 0.120 3.907 0.000 #> .BE (Z_BE) 0.544 0.036 15.260 0.000 #> IN (Vr_INT) 0.752 0.091 8.252 0.000 #> PB (V_PBC) 0.958 0.123 7.760 0.000 #> IN (V_INTP) 1.297 0.089 14.646 0.000 #> .AT (V_ATTPC) 1.511 0.041 36.482 0.000 #> .AT (V_ATTPB) 1.084 0.031 35.464 0.000 #> .SN (V_SNPC) 0.719 0.022 32.194 0.000 #> .SN (V_SNPB) 0.516 0.016 31.825 0.000 #> .a1 (Vr_t1) 0.174 0.008 21.062 0.000 #> .a2 (Vr_t2) 0.186 0.007 24.851 0.000 #> .a3 (Vr_t3) 0.187 0.007 28.710 0.000 #> .s1 (Vr_s1) 0.177 0.007 24.784 0.000 #> .s2 (Vr_s2) 0.195 0.007 28.844 0.000 #> .s3 (Vr_s3) 0.192 0.006 32.240 0.000 #> .p1 (Vr_pb1) 0.161 0.009 18.864 0.000 #> .p2 (Vr_pb2) 0.191 0.008 23.432 0.000 #> .p3 (Vr_pb3) 0.178 0.007 26.465 0.000 #> .p1 (Vr_pc1) 0.167 0.009 18.483 0.000 #> .p2 (Vr_pc2) 0.185 0.008 22.968 0.000 #> .p3 (Vr_pc3) 0.165 0.007 24.405 0.000 #> .b1 (Vr_b1) 0.131 0.031 4.180 0.000 #> .b2 (Vr_b2) 0.191 0.023 8.211 0.000 #> .a1 (Vr_tt1pc1) 0.454 0.015 30.377 0.000 #> .a2 (Vr_tt2pc2) 0.404 0.011 36.058 0.000 #> .a3 (Vr_tt3pc3) 0.305 0.008 39.382 0.000 #> .a1 (Vr_tt1pb1) 0.377 0.012 30.603 0.000 #> .a2 (Vr_tt2pb2) 0.363 0.010 36.293 0.000 #> .a3 (Vr_tt3pb3) 0.270 0.007 40.454 0.000 #> .s1 (Vr_sn1pc1) 0.367 0.012 31.101 0.000 #> .s2 (Vr_sn2pc2) 0.334 0.009 36.194 0.000 #> .s3 (Vr_sn3pc3) 0.255 0.007 38.970 0.000 #> .s1 (Vr_sn1pb1) 0.291 0.009 32.171 0.000 #> .s2 (Vr_sn2pb2) 0.288 0.008 37.329 0.000 #> .s3 (Vr_sn3pb3) 0.214 0.005 40.765 0.000 #> #> Constraints: #> |Slack| #> V_ATTPC-((_ATT_INT^2*V_INT+V_ATT)*(_PC_PB 0.000 #> V_11-(_1_ATT^2*(_ATT_INT^2*V_INT+V_ATT)*V 0.000 #> V_22-(_2_ATT^2*(_ATT_INT^2*V_INT+V_ATT)*V 0.000 #> V_33-(_3_ATT^2*(_ATT_INT^2*V_INT+V_ATT)*V 0.000 #> V_ATTPB-((_ATT_INT^2*V_INT+V_ATT)*(_PB_PB 0.000 #> V_11-(_1_ATT^2*(_ATT_INT^2*V_INT+V_ATT)*V 0.000 #> V_22-(_2_ATT^2*(_ATT_INT^2*V_INT+V_ATT)*V 0.000 #> V_33-(_3_ATT^2*(_ATT_INT^2*V_INT+V_ATT)*V 0.000 #> V_SNPC-((_SN_INT^2*V_INT+V_SN)*(_PC_PBC^2 0.000 #> V_11-(_1_SN^2*(_SN_INT^2*V_INT+V_SN)*V_1+ 0.000 #> V_22-(_2_SN^2*(_SN_INT^2*V_INT+V_SN)*V_2+ 0.000 #> V_33-(_3_SN^2*(_SN_INT^2*V_INT+V_SN)*V_3+ 0.000 #> V_SNPB-((_SN_INT^2*V_INT+V_SN)*(_PB_PBC^2 0.000 #> V_11-(_1_SN^2*(_SN_INT^2*V_INT+V_SN)*V_1+ 0.000 #> V_22-(_2_SN^2*(_SN_INT^2*V_INT+V_SN)*V_2+ 0.000 #> V_33-(_3_SN^2*(_SN_INT^2*V_INT+V_SN)*V_3+ 0.000 #> lmbd_tt1pc1_ATTPC-(lmbd_tt1_ATT*lmb_1_PC) 0.000 #> lmbd_tt2pc2_ATTPC-(lmbd_tt2_ATT*lmb_2_PC) 0.000 #> lmbd_tt3pc3_ATTPC-(lmbd_tt3_ATT*lmb_3_PC) 0.000 #> lmbd_tt1pb1_ATTPB-(lmbd_tt1_ATT*lmb_1_PB) 0.000 #> lmbd_tt2pb2_ATTPB-(lmbd_tt2_ATT*lmb_2_PB) 0.000 #> lmbd_tt3pb3_ATTPB-(lmbd_tt3_ATT*lmb_3_PB) 0.000 #> lmbd_sn1pc1_SNPC-(lmbd_sn1_SN*lmbd_p1_PC) 0.000 #> lmbd_sn2pc2_SNPC-(lmbd_sn2_SN*lmbd_p2_PC) 0.000 #> lmbd_sn3pc3_SNPC-(lmbd_sn3_SN*lmbd_p3_PC) 0.000 #> lmbd_sn1pb1_SNPB-(lmbd_sn1_SN*lmbd_p1_PB) 0.000 #> lmbd_sn2pb2_SNPB-(lmbd_sn2_SN*lmbd_p2_PB) 0.000 #> lmbd_sn3pb3_SNPB-(lmbd_sn3_SN*lmbd_p3_PB) 0.000 #> Mn_ATTPC-((Cv_INT_PBC*l_ATT_INT*_PC_PBC)) 0.000 #> Mn_ATTPB-((Cv_INT_PBC*l_ATT_INT*_PB_PBC)) 0.000 #> Mn_SNPC-((Cv_INT_PBC*lmb_PC_PBC*_SN_INT)) 0.000 #> Mn_SNPB-((Cv_INT_PBC*lmb_PB_PBC*_SN_INT)) 0.000 est_dblcent <- modsem(tpb, data = TPB_2SO, method = \"dblcent\") summary(est_dblcent) #> modsem (version 1.0.4, approach = dblcent): #> lavaan 0.6-19 ended normally after 465 iterations #> #> Estimator ML #> Optimization method NLMINB #> Number of model parameters 186 #> #> Number of observations 2000 #> #> Model Test User Model: #> #> Test statistic 10052.300 #> Degrees of freedom 1089 #> P-value (Chi-square) 0.000 #> #> Parameter Estimates: #> #> Standard errors Standard #> Information Expected #> Information saturated (h1) model Structured #> #> Latent Variables: #> Estimate Std.Err z-value P(>|z|) #> ATT =~ #> att1 1.000 #> att2 0.908 0.011 83.766 0.000 #> att3 0.798 0.010 77.657 0.000 #> SN =~ #> sn1 1.000 #> sn2 0.909 0.016 55.251 0.000 #> sn3 0.813 0.015 53.511 0.000 #> PB =~ #> pb1 1.000 #> pb2 0.918 0.012 77.166 0.000 #> pb3 0.789 0.011 72.867 0.000 #> PC =~ #> pc1 1.000 #> pc2 0.891 0.010 89.774 0.000 #> pc3 0.792 0.009 86.846 0.000 #> BEH =~ #> b1 1.000 #> b2 0.850 0.039 21.738 0.000 #> INT =~ #> ATT 1.000 #> SN 0.670 0.061 11.032 0.000 #> PBC =~ #> PC 1.000 #> PB 0.668 0.072 9.292 0.000 #> INTxPBC =~ #> ATTPC 1.000 #> ATTPB 0.786 0.029 26.650 0.000 #> SNPC 0.715 0.026 27.124 0.000 #> SNPB 0.562 0.022 25.714 0.000 #> ATTPC =~ #> att1pc1 1.000 #> att2pc1 0.896 0.012 76.955 0.000 #> att3pc1 0.784 0.011 71.763 0.000 #> att1pc2 0.889 0.010 86.420 0.000 #> att2pc2 0.796 0.014 58.748 0.000 #> att3pc2 0.688 0.012 55.935 0.000 #> att1pc3 0.786 0.009 82.801 0.000 #> att2pc3 0.703 0.012 57.546 0.000 #> att3pc3 0.610 0.011 54.822 0.000 #> ATTPB =~ #> att1pb1 1.000 #> att2pb1 0.902 0.012 73.281 0.000 #> att3pb1 0.790 0.011 69.090 0.000 #> att1pb2 0.911 0.013 69.779 0.000 #> att2pb2 0.821 0.016 50.353 0.000 #> att3pb2 0.719 0.015 49.305 0.000 #> att1pb3 0.769 0.012 63.518 0.000 #> att2pb3 0.699 0.014 49.233 0.000 #> att3pb3 0.609 0.013 47.566 0.000 #> SNPC =~ #> sn1pc1 1.000 #> sn2pc1 0.916 0.017 52.984 0.000 #> sn3pc1 0.773 0.016 48.814 0.000 #> sn1pc2 0.890 0.011 80.299 0.000 #> sn2pc2 0.815 0.018 44.884 0.000 #> sn3pc2 0.684 0.016 42.622 0.000 #> sn1pc3 0.804 0.010 76.966 0.000 #> sn2pc3 0.734 0.016 44.770 0.000 #> sn3pc3 0.624 0.015 42.476 0.000 #> SNPB =~ #> sn1pb1 1.000 #> sn2pb1 0.932 0.018 52.861 0.000 #> sn3pb1 0.807 0.016 50.349 0.000 #> sn1pb2 0.921 0.014 67.113 0.000 #> sn2pb2 0.862 0.020 43.061 0.000 #> sn3pb2 0.746 0.018 41.358 0.000 #> sn1pb3 0.782 0.013 61.764 0.000 #> sn2pb3 0.726 0.018 41.471 0.000 #> sn3pb3 0.636 0.016 39.286 0.000 #> #> Regressions: #> Estimate Std.Err z-value P(>|z|) #> BEH ~ #> PBC 0.211 0.026 8.120 0.000 #> INT 0.199 0.023 8.696 0.000 #> INTxPBC 0.139 0.017 8.230 0.000 #> #> Covariances: #> Estimate Std.Err z-value P(>|z|) #> .att1pc1 ~~ #> .att2pc2 0.000 #> .att2pc3 0.000 #> .att3pc2 0.000 #> .att3pc3 0.000 #> .att2pc1 ~~ #> .att1pc2 0.000 #> .att1pc2 ~~ #> .att2pc3 0.000 #> .att3pc1 ~~ #> .att1pc2 0.000 #> .att1pc2 ~~ #> .att3pc3 0.000 #> .att2pc1 ~~ #> .att1pc3 0.000 #> .att2pc2 ~~ #> .att1pc3 0.000 #> .att3pc1 ~~ #> .att1pc3 0.000 #> .att3pc2 ~~ #> .att1pc3 0.000 #> .att2pc1 ~~ #> .att3pc2 0.000 #> .att3pc3 0.000 #> .att3pc1 ~~ #> .att2pc2 0.000 #> .att2pc2 ~~ #> .att3pc3 0.000 #> .att3pc1 ~~ #> .att2pc3 0.000 #> .att3pc2 ~~ #> .att2pc3 0.000 #> .att1pc1 ~~ #> .att1pc2 0.228 0.015 15.643 0.000 #> .att1pc3 0.202 0.013 15.648 0.000 #> .att2pc1 0.192 0.012 16.158 0.000 #> .att3pc1 0.171 0.011 16.161 0.000 #> .att1pc2 ~~ #> .att1pc3 0.182 0.012 15.689 0.000 #> .att2pc2 0.206 0.011 19.546 0.000 #> .att3pc2 0.180 0.009 19.366 0.000 #> .att1pc3 ~~ #> .att2pc3 0.194 0.009 21.544 0.000 #> .att3pc3 0.165 0.008 20.892 0.000 #> .att2pc1 ~~ #> .att2pc2 0.265 0.013 19.849 0.000 #> .att2pc3 0.231 0.012 19.601 0.000 #> .att3pc1 0.157 0.010 16.172 0.000 #> .att2pc2 ~~ #> .att2pc3 0.204 0.011 19.396 0.000 #> .att3pc2 0.165 0.009 19.366 0.000 #> .att2pc3 ~~ #> .att3pc3 0.150 0.007 20.763 0.000 #> .att3pc1 ~~ #> .att3pc2 0.266 0.012 22.627 0.000 #> .att3pc3 0.238 0.011 22.542 0.000 #> .att3pc2 ~~ #> .att3pc3 0.208 0.009 22.293 0.000 #> .att1pb1 ~~ #> .att2pb2 0.000 #> .att2pb3 0.000 #> .att3pb2 0.000 #> .att3pb3 0.000 #> .att2pb1 ~~ #> .att1pb2 0.000 #> .att1pb2 ~~ #> .att2pb3 0.000 #> .att3pb1 ~~ #> .att1pb2 0.000 #> .att1pb2 ~~ #> .att3pb3 0.000 #> .att2pb1 ~~ #> .att1pb3 0.000 #> .att2pb2 ~~ #> .att1pb3 0.000 #> .att3pb1 ~~ #> .att1pb3 0.000 #> .att3pb2 ~~ #> .att1pb3 0.000 #> .att2pb1 ~~ #> .att3pb2 0.000 #> .att3pb3 0.000 #> .att3pb1 ~~ #> .att2pb2 0.000 #> .att2pb2 ~~ #> .att3pb3 0.000 #> .att3pb1 ~~ #> .att2pb3 0.000 #> .att3pb2 ~~ #> .att2pb3 0.000 #> .att1pb1 ~~ #> .att1pb2 0.178 0.011 16.118 0.000 #> .att1pb3 0.150 0.010 15.776 0.000 #> .att2pb1 0.196 0.012 16.080 0.000 #> .att3pb1 0.164 0.011 15.563 0.000 #> .att1pb2 ~~ #> .att1pb3 0.142 0.009 15.903 0.000 #> .att2pb2 0.228 0.012 19.763 0.000 #> .att3pb2 0.195 0.010 19.467 0.000 #> .att1pb3 ~~ #> .att2pb3 0.212 0.010 22.266 0.000 #> .att3pb3 0.184 0.008 22.055 0.000 #> .att2pb1 ~~ #> .att2pb2 0.201 0.010 19.667 0.000 #> .att2pb3 0.170 0.009 19.380 0.000 #> .att3pb1 0.151 0.010 15.533 0.000 #> .att2pb2 ~~ #> .att2pb3 0.158 0.008 19.210 0.000 #> .att3pb2 0.191 0.010 19.989 0.000 #> .att2pb3 ~~ #> .att3pb3 0.165 0.008 21.609 0.000 #> .att3pb1 ~~ #> .att3pb2 0.189 0.009 21.673 0.000 #> .att3pb3 0.162 0.008 21.467 0.000 #> .att3pb2 ~~ #> .att3pb3 0.149 0.007 21.111 0.000 #> .sn1pc1 ~~ #> .sn2pc2 0.000 #> .sn2pc3 0.000 #> .sn3pc2 0.000 #> .sn3pc3 0.000 #> .sn2pc1 ~~ #> .sn1pc2 0.000 #> .sn1pc2 ~~ #> .sn2pc3 0.000 #> .sn3pc1 ~~ #> .sn1pc2 0.000 #> .sn1pc2 ~~ #> .sn3pc3 0.000 #> .sn2pc1 ~~ #> .sn1pc3 0.000 #> .sn2pc2 ~~ #> .sn1pc3 0.000 #> .sn3pc1 ~~ #> .sn1pc3 0.000 #> .sn3pc2 ~~ #> .sn1pc3 0.000 #> .sn2pc1 ~~ #> .sn3pc2 0.000 #> .sn3pc3 0.000 #> .sn3pc1 ~~ #> .sn2pc2 0.000 #> .sn2pc2 ~~ #> .sn3pc3 0.000 #> .sn3pc1 ~~ #> .sn2pc3 0.000 #> .sn3pc2 ~~ #> .sn2pc3 0.000 #> .sn1pc1 ~~ #> .sn1pc2 0.235 0.014 17.052 0.000 #> .sn1pc3 0.211 0.012 17.095 0.000 #> .sn2pc1 0.103 0.007 15.796 0.000 #> .sn3pc1 0.092 0.006 15.750 0.000 #> .sn1pc2 ~~ #> .sn1pc3 0.178 0.011 16.493 0.000 #> .sn2pc2 0.106 0.006 18.376 0.000 #> .sn3pc2 0.091 0.005 18.007 0.000 #> .sn1pc3 ~~ #> .sn2pc3 0.103 0.005 20.203 0.000 #> .sn3pc3 0.087 0.004 19.503 0.000 #> .sn2pc1 ~~ #> .sn2pc2 0.261 0.013 20.103 0.000 #> .sn2pc3 0.228 0.011 19.894 0.000 #> .sn3pc1 0.083 0.005 15.378 0.000 #> .sn2pc2 ~~ #> .sn2pc3 0.206 0.010 20.014 0.000 #> .sn3pc2 0.087 0.005 18.174 0.000 #> .sn2pc3 ~~ #> .sn3pc3 0.082 0.004 19.532 0.000 #> .sn3pc1 ~~ #> .sn3pc2 0.255 0.011 23.013 0.000 #> .sn3pc3 0.227 0.010 22.859 0.000 #> .sn3pc2 ~~ #> .sn3pc3 0.198 0.009 22.679 0.000 #> .sn1pb1 ~~ #> .sn2pb2 0.000 #> .sn2pb3 0.000 #> .sn3pb2 0.000 #> .sn3pb3 0.000 #> .sn2pb1 ~~ #> .sn1pb2 0.000 #> .sn1pb2 ~~ #> .sn2pb3 0.000 #> .sn3pb1 ~~ #> .sn1pb2 0.000 #> .sn1pb2 ~~ #> .sn3pb3 0.000 #> .sn2pb1 ~~ #> .sn1pb3 0.000 #> .sn2pb2 ~~ #> .sn1pb3 0.000 #> .sn3pb1 ~~ #> .sn1pb3 0.000 #> .sn3pb2 ~~ #> .sn1pb3 0.000 #> .sn2pb1 ~~ #> .sn3pb2 0.000 #> .sn3pb3 0.000 #> .sn3pb1 ~~ #> .sn2pb2 0.000 #> .sn2pb2 ~~ #> .sn3pb3 0.000 #> .sn3pb1 ~~ #> .sn2pb3 0.000 #> .sn3pb2 ~~ #> .sn2pb3 0.000 #> .sn1pb1 ~~ #> .sn1pb2 0.163 0.010 16.601 0.000 #> .sn1pb3 0.143 0.009 16.410 0.000 #> .sn2pb1 0.104 0.006 16.170 0.000 #> .sn3pb1 0.093 0.006 15.771 0.000 #> .sn1pb2 ~~ #> .sn1pb3 0.131 0.008 16.144 0.000 #> .sn2pb2 0.101 0.006 17.420 0.000 #> .sn3pb2 0.091 0.005 17.177 0.000 #> .sn1pb3 ~~ #> .sn2pb3 0.099 0.005 20.252 0.000 #> .sn3pb3 0.094 0.005 20.442 0.000 #> .sn2pb1 ~~ #> .sn2pb2 0.192 0.010 19.812 0.000 #> .sn2pb3 0.166 0.009 19.549 0.000 #> .sn3pb1 0.082 0.005 15.386 0.000 #> .sn2pb2 ~~ #> .sn2pb3 0.154 0.008 19.408 0.000 #> .sn3pb2 0.083 0.005 17.108 0.000 #> .sn2pb3 ~~ #> .sn3pb3 0.080 0.004 19.531 0.000 #> .sn3pb1 ~~ #> .sn3pb2 0.177 0.008 21.670 0.000 #> .sn3pb3 0.158 0.007 21.493 0.000 #> .sn3pb2 ~~ #> .sn3pb3 0.150 0.007 21.690 0.000 #> INT ~~ #> PBC 0.034 0.033 1.045 0.296 #> INTxPBC -0.003 0.035 -0.099 0.921 #> PBC ~~ #> INTxPBC -0.120 0.039 -3.063 0.002 #> #> Variances: #> Estimate Std.Err z-value P(>|z|) #> .att1 0.164 0.009 18.496 0.000 #> .att2 0.150 0.008 19.739 0.000 #> .att3 0.161 0.007 23.292 0.000 #> .sn1 0.159 0.008 18.691 0.000 #> .sn2 0.172 0.008 21.687 0.000 #> .sn3 0.160 0.007 23.161 0.000 #> .pb1 0.146 0.009 16.806 0.000 #> .pb2 0.168 0.008 20.515 0.000 #> .pb3 0.159 0.007 23.189 0.000 #> .pc1 0.165 0.009 17.845 0.000 #> .pc2 0.165 0.008 20.574 0.000 #> .pc3 0.150 0.007 22.166 0.000 #> .b1 0.133 0.029 4.600 0.000 #> .b2 0.189 0.022 8.768 0.000 #> .att1pc1 0.495 0.022 22.813 0.000 #> .att2pc1 0.501 0.019 25.991 0.000 #> .att3pc1 0.468 0.017 28.208 0.000 #> .att1pc2 0.459 0.018 25.111 0.000 #> .att2pc2 0.448 0.016 27.871 0.000 #> .att3pc2 0.406 0.014 29.875 0.000 #> .att1pc3 0.397 0.015 26.508 0.000 #> .att2pc3 0.380 0.013 28.927 0.000 #> .att3pc3 0.343 0.011 30.642 0.000 #> .att1pb1 0.426 0.018 23.037 0.000 #> .att2pb1 0.419 0.016 25.558 0.000 #> .att3pb1 0.356 0.013 26.825 0.000 #> .att1pb2 0.427 0.017 25.557 0.000 #> .att2pb2 0.435 0.015 28.402 0.000 #> .att3pb2 0.364 0.012 29.496 0.000 #> .att1pb3 0.387 0.014 28.034 0.000 #> .att2pb3 0.347 0.012 29.384 0.000 #> .att3pb3 0.299 0.010 30.764 0.000 #> .sn1pc1 0.414 0.018 23.103 0.000 #> .sn2pc1 0.404 0.016 24.941 0.000 #> .sn3pc1 0.392 0.014 27.841 0.000 #> .sn1pc2 0.340 0.014 23.817 0.000 #> .sn2pc2 0.363 0.014 26.739 0.000 #> .sn3pc2 0.321 0.011 28.764 0.000 #> .sn1pc3 0.296 0.012 25.044 0.000 #> .sn2pc3 0.300 0.011 27.459 0.000 #> .sn3pc3 0.271 0.009 29.358 0.000 #> .sn1pb1 0.320 0.013 23.685 0.000 #> .sn2pb1 0.325 0.013 25.720 0.000 #> .sn3pb1 0.292 0.011 27.314 0.000 #> .sn1pb2 0.287 0.012 24.298 0.000 #> .sn2pb2 0.298 0.011 26.547 0.000 #> .sn3pb2 0.267 0.009 28.196 0.000 #> .sn1pb3 0.256 0.010 26.436 0.000 #> .sn2pb3 0.248 0.009 27.882 0.000 #> .sn3pb3 0.235 0.008 29.850 0.000 #> .ATT 0.342 0.094 3.641 0.000 #> .SN 0.229 0.043 5.317 0.000 #> .PB 0.688 0.062 11.176 0.000 #> .PC 0.503 0.127 3.970 0.000 #> .BEH 0.545 0.034 16.237 0.000 #> INT 1.058 0.104 10.185 0.000 #> PBC 1.201 0.137 8.775 0.000 #> INTxPBC 1.520 0.089 17.158 0.000 #> .ATTPC 0.942 0.055 17.182 0.000 #> .ATTPB 0.729 0.040 18.024 0.000 #> .SNPC 0.453 0.030 15.307 0.000 #> .SNPB 0.385 0.023 16.924 0.000"},{"path":"/articles/higher_order_interactions.html","id":"interaction-between-a-first-order-and-a-higher-order-construct","dir":"Articles","previous_headings":"","what":"Interaction between a first order and a higher order construct","title":"higher order interactions","text":"TPB_1SO dataset, INT construct second order construct ATT, SN PBC. example, estimate interaction INT (higher order construct) PBC (first order construct).","code":"tpb <- ' # First order constructs ATT =~ att1 + att2 + att3 SN =~ sn1 + sn2 + sn3 PBC =~ pbc1 + pbc2 + pbc3 BEH =~ b1 + b2 # Higher order constructs INT =~ ATT + PBC + SN # Higher order interaction INTxPBC =~ ATT:PBC + SN:PBC + PBC:PBC # Structural model BEH ~ PBC + INT + INTxPBC ' est_ca <- modsem(tpb, data = TPB_1SO, method = \"ca\") summary(est_ca) #> modsem (version 1.0.4, approach = ca): #> lavaan 0.6-19 ended normally after 446 iterations #> #> Estimator ML #> Optimization method NLMINB #> Number of model parameters 73 #> Row rank of the constraints matrix 21 #> #> Number of observations 2000 #> #> Model Test User Model: #> #> Test statistic 4246.901 #> Degrees of freedom 178 #> P-value (Chi-square) 0.000 #> #> Parameter Estimates: #> #> Standard errors Standard #> Information Expected #> Information saturated (h1) model Structured #> #> Latent Variables: #> Estimate Std.Err z-value P(>|z|) #> ATT =~ #> att1 (l_1_A) 1.000 #> att2 (l_2_A) 0.904 0.010 89.441 0.000 #> att3 (l_3_A) 0.801 0.009 85.442 0.000 #> SN =~ #> sn1 (l_1_S) 1.000 #> sn2 (l_2_S) 0.879 0.013 66.744 0.000 #> sn3 (l_3_S) 0.780 0.012 63.639 0.000 #> PBC =~ #> pbc1 (l_1_P) 1.000 #> pbc2 (l_2_P) 0.900 0.007 135.630 0.000 #> pbc3 (l_3_P) 0.776 0.006 125.111 0.000 #> BEH =~ #> b1 (l_1_B) 1.000 #> b2 (l_2_B) 0.863 0.033 26.043 0.000 #> INT =~ #> ATT (l_ATT_) 1.000 #> PBC (l_PBC_) 0.783 0.030 26.191 0.000 #> SN (l_SN_) 0.717 0.027 26.257 0.000 #> INTxPBC =~ #> ATTPB (l_ATTP) 1.000 #> SNPBC (l_SNP) 0.735 0.020 35.914 0.000 #> PBCPB (l_PBCP) 1.011 0.027 36.926 0.000 #> ATTPBC =~ #> att11 (l_11_A) 1.000 #> att22 (l_22_A) 0.813 0.009 87.006 0.000 #> att33 (l_33_A) 0.621 0.008 82.373 0.000 #> SNPBC =~ #> sn1p1 (l_11_S) 1.000 #> sn2p2 (l_22_S) 0.792 0.012 68.052 0.000 #> sn3p3 (l_33_S) 0.605 0.009 64.723 0.000 #> PBCPBC =~ #> pbc11 (l_11_P) 1.000 #> pbc22 (l_22_P) 0.810 0.012 67.815 0.000 #> pbc33 (l_33_P) 0.602 0.010 62.555 0.000 #> #> Regressions: #> Estimate Std.Err z-value P(>|z|) #> BEH ~ #> PBC (G_PB) 0.249 0.052 4.775 0.000 #> INT (G_INT_) 0.160 0.056 2.838 0.005 #> INTPB (G_INTP) 0.221 0.016 13.492 0.000 #> #> Covariances: #> Estimate Std.Err z-value P(>|z|) #> INT ~~ #> INTxPBC (C_IN) -0.019 0.025 -0.758 0.448 #> .att1pbc1 ~~ #> .att2pb2 0.000 #> .att3pb3 0.000 #> .att2pbc2 ~~ #> .att3pb3 0.000 #> .sn1pbc1 ~~ #> .sn2pbc2 0.000 #> .sn3pbc3 0.000 #> .sn2pbc2 ~~ #> .sn3pbc3 0.000 #> .pbc1pbc1 ~~ #> .pbc2pb2 0.000 #> .pbc3pb3 0.000 #> .pbc2pbc2 ~~ #> .pbc3pb3 0.000 #> #> Intercepts: #> Estimate Std.Err z-value P(>|z|) #> .ATTPBC (M_AT) 0.422 0.013 32.832 0.000 #> .SNPBC (M_SN) 0.302 0.010 30.547 0.000 #> .PBCPBC (M_PB) 0.575 0.011 51.528 0.000 #> .att1 1.001 0.023 44.025 0.000 #> .att2 1.008 0.021 47.861 0.000 #> .att3 1.002 0.019 52.974 0.000 #> .sn1 0.974 0.018 55.116 0.000 #> .sn2 0.982 0.016 60.802 0.000 #> .sn3 0.991 0.015 67.883 0.000 #> .pbc1 0.983 0.021 47.193 0.000 #> .pbc2 0.988 0.020 49.207 0.000 #> .pbc3 0.998 0.018 54.375 0.000 #> .b1 1.150 0.020 57.082 0.000 #> .b2 1.132 0.018 61.428 0.000 #> .att1pb1 0.391 0.038 10.186 0.000 #> .att2pb2 0.330 0.032 10.249 0.000 #> .att3pb3 0.256 0.025 10.137 0.000 #> .sn1pbc1 0.262 0.029 9.112 0.000 #> .sn2pbc2 0.226 0.024 9.516 0.000 #> .sn3pbc3 0.177 0.019 9.454 0.000 #> .pbc1pb1 0.553 0.038 14.525 0.000 #> .pbc2pb2 0.501 0.032 15.560 0.000 #> .pbc3pb3 0.421 0.025 16.843 0.000 #> #> Variances: #> Estimate Std.Err z-value P(>|z|) #> .ATT (Vr_ATT) 0.346 0.023 15.014 0.000 #> .SN (Vr_SN) 0.179 0.013 13.986 0.000 #> .PBC (Vr_PBC) 0.245 0.016 15.052 0.000 #> .BEH (Z_BE) 0.513 0.029 18.005 0.000 #> INT (Vr_INT) 0.539 0.027 19.889 0.000 #> INTPB (V_INTP) 1.535 0.076 20.148 0.000 #> .ATTPB (V_ATTP) 0.687 0.022 30.946 0.000 #> .SNPBC (V_SNP) 0.354 0.013 27.980 0.000 #> .PBCPB (V_PBCP) 0.662 0.026 25.764 0.000 #> .att1 (Vr_t1) 0.150 0.008 18.624 0.000 #> .att2 (Vr_t2) 0.165 0.007 22.170 0.000 #> .att3 (Vr_t3) 0.147 0.006 23.582 0.000 #> .sn1 (Vr_s1) 0.168 0.008 20.991 0.000 #> .sn2 (Vr_s2) 0.168 0.007 24.105 0.000 #> .sn3 (Vr_s3) 0.149 0.006 25.303 0.000 #> .pbc1 (Vr_p1) 0.293 0.009 30.965 0.000 #> .pbc2 (Vr_p2) 0.340 0.009 38.979 0.000 #> .pbc3 (Vr_p3) 0.327 0.007 44.262 0.000 #> .b1 (Vr_b1) 0.144 0.024 6.051 0.000 #> .b2 (Vr_b2) 0.181 0.018 9.880 0.000 #> .att11 (Vr_t11) 0.389 0.011 34.052 0.000 #> .att22 (Vr_t22) 0.378 0.010 39.469 0.000 #> .att33 (Vr_t33) 0.285 0.007 41.921 0.000 #> .sn1p1 (Vr_s11) 0.279 0.008 35.023 0.000 #> .sn2p2 (Vr_s22) 0.256 0.006 39.790 0.000 #> .sn3p3 (Vr_s33) 0.191 0.005 41.982 0.000 #> .pbc11 (Vr_p11) 0.423 0.015 28.080 0.000 #> .pbc22 (Vr_p22) 0.432 0.013 33.193 0.000 #> .pbc33 (Vr_p33) 0.334 0.009 35.936 0.000 #> #> Constraints: #> |Slack| #> V_ATTPBC-((_ATT_INT^2*V_INT+V_ATT)*(_PBC_ 0.000 #> V_11-(_1_ATT^2*(_ATT_INT^2*V_INT+V_ATT)*V 0.000 #> V_22-(_2_ATT^2*(_ATT_INT^2*V_INT+V_ATT)*V 0.000 #> V_33-(_3_ATT^2*(_ATT_INT^2*V_INT+V_ATT)*V 0.000 #> V_SNPBC-((_SN_INT^2*V_INT+V_SN)*(_PBC_INT 0.000 #> V_11-(_1_SN^2*(_SN_INT^2*V_INT+V_SN)*V_1+ 0.000 #> V_22-(_2_SN^2*(_SN_INT^2*V_INT+V_SN)*V_2+ 0.000 #> V_33-(_3_SN^2*(_SN_INT^2*V_INT+V_SN)*V_3+ 0.000 #> V_PBCPBC-((_PBC_INT^2*V_INT+V_PBC)*(_PBC_ 0.000 #> V_11-(_1_PBC^2*(_PBC_INT^2*V_INT+V_PBC)*V 0.000 #> V_22-(_2_PBC^2*(_PBC_INT^2*V_INT+V_PBC)*V 0.000 #> V_33-(_3_PBC^2*(_PBC_INT^2*V_INT+V_PBC)*V 0.000 #> lmbd_tt1pbc1_ATTPBC-(lmbd_tt1_ATT*_1_PBC) 0.000 #> lmbd_tt2pbc2_ATTPBC-(lmbd_tt2_ATT*_2_PBC) 0.000 #> lmbd_tt3pbc3_ATTPBC-(lmbd_tt3_ATT*_3_PBC) 0.000 #> lmbd_sn1pbc1_SNPBC-(lmbd_sn1_SN*lm_1_PBC) 0.000 #> lmbd_sn2pbc2_SNPBC-(lmbd_sn2_SN*lm_2_PBC) 0.000 #> lmbd_sn3pbc3_SNPBC-(lmbd_sn3_SN*lm_3_PBC) 0.000 #> lmbd_pbc1pbc1_PBCPBC-(lmbd_p1_PBC*_1_PBC) 0.000 #> lmbd_pbc2pbc2_PBCPBC-(lmbd_p2_PBC*_2_PBC) 0.000 #> lmbd_pbc3pbc3_PBCPBC-(lmbd_p3_PBC*_3_PBC) 0.000 #> Mn_ATTPBC-((lmbd_ATT_INT*_PBC_INT*V_INT)) 0.000 #> Mn_SNPBC-((lmbd_PBC_INT*lm_SN_INT*V_INT)) 0.000 #> Mn_PBCPBC-((lmbd_PBC_INT^2*Vr_INT+V_PBC)) 0.000 est_dblcent <- modsem(tpb, data = TPB_1SO, method = \"dblcent\") summary(est_dblcent) #> modsem (version 1.0.4, approach = dblcent): #> lavaan 0.6-19 ended normally after 339 iterations #> #> Estimator ML #> Optimization method NLMINB #> Number of model parameters 125 #> #> Number of observations 2000 #> #> Model Test User Model: #> #> Test statistic 6227.020 #> Degrees of freedom 505 #> P-value (Chi-square) 0.000 #> #> Parameter Estimates: #> #> Standard errors Standard #> Information Expected #> Information saturated (h1) model Structured #> #> Latent Variables: #> Estimate Std.Err z-value P(>|z|) #> ATT =~ #> att1 1.000 #> att2 0.909 0.011 82.767 0.000 #> att3 0.802 0.010 80.426 0.000 #> SN =~ #> sn1 1.000 #> sn2 0.891 0.016 54.218 0.000 #> sn3 0.790 0.015 52.448 0.000 #> PBC =~ #> pbc1 1.000 #> pbc2 0.909 0.014 66.751 0.000 #> pbc3 0.793 0.013 63.368 0.000 #> BEH =~ #> b1 1.000 #> b2 0.864 0.029 30.237 0.000 #> INT =~ #> ATT 1.000 #> PBC 0.819 0.024 33.977 0.000 #> SN 0.702 0.021 33.482 0.000 #> INTxPBC =~ #> ATTPBC 1.000 #> SNPBC 0.717 0.017 42.130 0.000 #> PBCPBC 1.003 0.024 42.678 0.000 #> ATTPBC =~ #> att1pbc1 1.000 #> att2pbc1 0.896 0.010 94.261 0.000 #> att3pbc1 0.808 0.009 92.565 0.000 #> att1pbc2 0.899 0.011 79.087 0.000 #> att2pbc2 0.804 0.013 61.655 0.000 #> att3pbc2 0.727 0.012 61.499 0.000 #> att1pbc3 0.752 0.011 70.229 0.000 #> att2pbc3 0.675 0.012 55.856 0.000 #> att3pbc3 0.614 0.011 56.951 0.000 #> SNPBC =~ #> sn1pbc1 1.000 #> sn2pbc1 0.884 0.013 65.689 0.000 #> sn3pbc1 0.783 0.012 63.016 0.000 #> sn1pbc2 0.893 0.012 76.169 0.000 #> sn2pbc2 0.791 0.015 51.434 0.000 #> sn3pbc2 0.693 0.014 49.947 0.000 #> sn1pbc3 0.771 0.011 70.139 0.000 #> sn2pbc3 0.673 0.014 48.082 0.000 #> sn3pbc3 0.601 0.013 47.729 0.000 #> PBCPBC =~ #> pbc1pbc1 1.000 #> pbc2pbc1 0.902 0.010 86.187 0.000 #> pbc3pbc1 0.764 0.010 79.520 0.000 #> pbc2pbc2 0.812 0.018 44.917 0.000 #> pbc3pbc2 0.689 0.013 51.106 0.000 #> pbc3pbc3 0.590 0.015 40.172 0.000 #> #> Regressions: #> Estimate Std.Err z-value P(>|z|) #> BEH ~ #> PBC 0.189 0.043 4.359 0.000 #> INT 0.187 0.045 4.140 0.000 #> INTxPBC 0.203 0.015 13.754 0.000 #> #> Covariances: #> Estimate Std.Err z-value P(>|z|) #> .att1pbc1 ~~ #> .att2pbc2 0.000 #> .att2pbc3 0.000 #> .att3pbc2 0.000 #> .att3pbc3 0.000 #> .att2pbc1 ~~ #> .att1pbc2 0.000 #> .att1pbc2 ~~ #> .att2pbc3 0.000 #> .att3pbc1 ~~ #> .att1pbc2 0.000 #> .att1pbc2 ~~ #> .att3pbc3 0.000 #> .att2pbc1 ~~ #> .att1pbc3 0.000 #> .att2pbc2 ~~ #> .att1pbc3 0.000 #> .att3pbc1 ~~ #> .att1pbc3 0.000 #> .att3pbc2 ~~ #> .att1pbc3 0.000 #> .att2pbc1 ~~ #> .att3pbc2 0.000 #> .att3pbc3 0.000 #> .att3pbc1 ~~ #> .att2pbc2 0.000 #> .att2pbc2 ~~ #> .att3pbc3 0.000 #> .att3pbc1 ~~ #> .att2pbc3 0.000 #> .att3pbc2 ~~ #> .att2pbc3 0.000 #> .att1pbc1 ~~ #> .att1pbc2 0.123 0.008 15.877 0.000 #> .att1pbc3 0.108 0.007 15.606 0.000 #> .att2pbc1 0.188 0.011 16.599 0.000 #> .att3pbc1 0.166 0.010 16.500 0.000 #> .att1pbc2 ~~ #> .att1pbc3 0.098 0.006 15.298 0.000 #> .att2pbc2 0.211 0.011 19.889 0.000 #> .att3pbc2 0.194 0.010 20.282 0.000 #> .att1pbc3 ~~ #> .att2pbc3 0.237 0.010 23.982 0.000 #> .att3pbc3 0.204 0.009 23.565 0.000 #> .att2pbc1 ~~ #> .att2pbc2 0.156 0.008 20.453 0.000 #> .att2pbc3 0.144 0.007 20.721 0.000 #> .att3pbc1 0.153 0.009 16.556 0.000 #> .att2pbc2 ~~ #> .att2pbc3 0.130 0.006 20.338 0.000 #> .att3pbc2 0.174 0.009 19.943 0.000 #> .att2pbc3 ~~ #> .att3pbc3 0.185 0.008 23.276 0.000 #> .att3pbc1 ~~ #> .att3pbc2 0.133 0.006 20.972 0.000 #> .att3pbc3 0.119 0.006 20.773 0.000 #> .att3pbc2 ~~ #> .att3pbc3 0.107 0.005 20.310 0.000 #> .sn1pbc1 ~~ #> .sn2pbc2 0.000 #> .sn2pbc3 0.000 #> .sn3pbc2 0.000 #> .sn3pbc3 0.000 #> .sn2pbc1 ~~ #> .sn1pbc2 0.000 #> .sn1pbc2 ~~ #> .sn2pbc3 0.000 #> .sn3pbc1 ~~ #> .sn1pbc2 0.000 #> .sn1pbc2 ~~ #> .sn3pbc3 0.000 #> .sn2pbc1 ~~ #> .sn1pbc3 0.000 #> .sn2pbc2 ~~ #> .sn1pbc3 0.000 #> .sn3pbc1 ~~ #> .sn1pbc3 0.000 #> .sn3pbc2 ~~ #> .sn1pbc3 0.000 #> .sn2pbc1 ~~ #> .sn3pbc2 0.000 #> .sn3pbc3 0.000 #> .sn3pbc1 ~~ #> .sn2pbc2 0.000 #> .sn2pbc2 ~~ #> .sn3pbc3 0.000 #> .sn3pbc1 ~~ #> .sn2pbc3 0.000 #> .sn3pbc2 ~~ #> .sn2pbc3 0.000 #> .sn1pbc1 ~~ #> .sn1pbc2 0.163 0.008 19.281 0.000 #> .sn1pbc3 0.140 0.007 18.855 0.000 #> .sn2pbc1 0.092 0.006 15.534 0.000 #> .sn3pbc1 0.082 0.005 15.167 0.000 #> .sn1pbc2 ~~ #> .sn1pbc3 0.128 0.007 18.607 0.000 #> .sn2pbc2 0.103 0.006 18.569 0.000 #> .sn3pbc2 0.097 0.005 19.080 0.000 #> .sn1pbc3 ~~ #> .sn2pbc3 0.110 0.005 21.785 0.000 #> .sn3pbc3 0.099 0.005 21.584 0.000 #> .sn2pbc1 ~~ #> .sn2pbc2 0.137 0.007 19.800 0.000 #> .sn2pbc3 0.122 0.006 19.734 0.000 #> .sn3pbc1 0.074 0.005 15.077 0.000 #> .sn2pbc2 ~~ #> .sn2pbc3 0.110 0.006 19.347 0.000 #> .sn3pbc2 0.084 0.005 18.558 0.000 #> .sn2pbc3 ~~ #> .sn3pbc3 0.087 0.004 21.102 0.000 #> .sn3pbc1 ~~ #> .sn3pbc2 0.121 0.006 20.829 0.000 #> .sn3pbc3 0.106 0.005 20.481 0.000 #> .sn3pbc2 ~~ #> .sn3pbc3 0.094 0.005 20.111 0.000 #> .pbc1pbc1 ~~ #> .pbc2pbc2 0.000 #> .pbc3pbc2 0.000 #> .pbc3pbc3 0.000 #> .pbc2pbc1 ~~ #> .pbc3pbc3 0.000 #> .pbc3pbc1 ~~ #> .pbc2pbc2 0.000 #> .pbc2pbc2 ~~ #> .pbc3pbc3 0.000 #> .pbc1pbc1 ~~ #> .pbc2pbc1 0.268 0.014 19.031 0.000 #> .pbc3pbc1 0.240 0.012 19.187 0.000 #> .pbc2pbc1 ~~ #> .pbc2pbc2 0.302 0.014 22.286 0.000 #> .pbc3pbc1 0.106 0.006 17.710 0.000 #> .pbc3pbc2 0.132 0.006 20.914 0.000 #> .pbc2pbc2 ~~ #> .pbc3pbc2 0.244 0.011 21.890 0.000 #> .pbc3pbc1 ~~ #> .pbc3pbc2 0.152 0.006 23.891 0.000 #> .pbc3pbc3 0.272 0.011 24.933 0.000 #> .pbc3pbc2 ~~ #> .pbc3pbc3 0.243 0.010 24.501 0.000 #> INT ~~ #> INTxPBC -0.038 0.033 -1.150 0.250 #> #> Variances: #> Estimate Std.Err z-value P(>|z|) #> .att1 0.152 0.008 18.217 0.000 #> .att2 0.168 0.008 21.469 0.000 #> .att3 0.147 0.006 22.691 0.000 #> .sn1 0.171 0.009 19.842 0.000 #> .sn2 0.165 0.008 21.850 0.000 #> .sn3 0.151 0.006 23.313 0.000 #> .pbc1 0.162 0.009 18.804 0.000 #> .pbc2 0.167 0.008 21.285 0.000 #> .pbc3 0.159 0.007 23.501 0.000 #> .b1 0.144 0.021 6.755 0.000 #> .b2 0.181 0.017 10.910 0.000 #> .att1pbc1 0.363 0.016 23.326 0.000 #> .att2pbc1 0.370 0.014 26.472 0.000 #> .att3pbc1 0.305 0.011 26.846 0.000 #> .att1pbc2 0.378 0.014 26.203 0.000 #> .att2pbc2 0.366 0.013 28.665 0.000 #> .att3pbc2 0.303 0.010 29.105 0.000 #> .att1pbc3 0.369 0.013 29.040 0.000 #> .att2pbc3 0.361 0.011 31.610 0.000 #> .att3pbc3 0.281 0.009 31.219 0.000 #> .sn1pbc1 0.306 0.012 25.602 0.000 #> .sn2pbc1 0.256 0.010 26.184 0.000 #> .sn3pbc1 0.228 0.008 27.105 0.000 #> .sn1pbc2 0.300 0.011 27.855 0.000 #> .sn2pbc2 0.243 0.009 27.943 0.000 #> .sn3pbc2 0.209 0.007 29.007 0.000 #> .sn1pbc3 0.260 0.009 29.414 0.000 #> .sn2pbc3 0.225 0.007 30.173 0.000 #> .sn3pbc3 0.185 0.006 30.379 0.000 #> .pbc1pbc1 0.646 0.030 21.568 0.000 #> .pbc2pbc1 0.306 0.011 27.014 0.000 #> .pbc3pbc1 0.290 0.010 29.693 0.000 #> .pbc2pbc2 0.618 0.025 24.778 0.000 #> .pbc3pbc2 0.271 0.009 30.899 0.000 #> .pbc3pbc3 0.482 0.018 27.155 0.000 #> .ATT 0.389 0.025 15.717 0.000 #> .SN 0.199 0.014 14.732 0.000 #> .PBC 0.300 0.018 16.350 0.000 #> .BEH 0.521 0.027 19.503 0.000 #> INT 0.995 0.049 20.233 0.000 #> INTxPBC 1.701 0.074 22.836 0.000 #> .ATTPBC 0.309 0.025 12.116 0.000 #> .SNPBC 0.193 0.015 12.939 0.000 #> .PBCPBC 0.206 0.027 7.713 0.000"},{"path":"/articles/interaction_two_etas.html","id":"the-problem","dir":"Articles","previous_headings":"","what":"The Problem","title":"interaction effects between endogenous variables","text":"Interaction effects two endogenous (.e., dependent) variables work expect product indicator methods (\"dblcent\", \"rca\", \"ca\", \"uca\"). However, lms qml approaches, straightforward. lms qml approaches can (default) handle interaction effects endogenous exogenous (.e., independent) variables, natively support interaction effects two endogenous variables. interaction effect exists two endogenous variables, equations easily written “reduced” form, meaning normal estimation procedures won’t work.","code":""},{"path":"/articles/interaction_two_etas.html","id":"the-solution","dir":"Articles","previous_headings":"","what":"The Solution","title":"interaction effects between endogenous variables","text":"Despite limitations, workaround lms qml approaches. Essentially, model can split two parts: one linear one non-linear. can replace covariance matrix used estimation non-linear model model-implied covariance matrix linear model. allows treat endogenous variable exogenous—provided can expressed linear model.","code":""},{"path":"/articles/interaction_two_etas.html","id":"example","dir":"Articles","previous_headings":"","what":"Example","title":"interaction effects between endogenous variables","text":"Let’s consider theory planned behavior (TPB), wish estimate quadratic effect INT BEH (INT:INT). can use following model: Since INT endogenous variable, quadratic term (.e., interaction effect ) involve two endogenous variables. result, normally able estimate model using lms qml approaches. However, can split model two parts: one linear one non-linear. INT endogenous variable, can expressed linear model since affected interaction terms: can remove part original model, giving us: Now, can estimate non-linear model since INT treated exogenous variable. However, incorporate structural model INT. address , can instruct modsem replace covariance matrix (phi) (INT, PBC, ATT, SN) model-implied covariance matrix linear model estimating models simultaneously. achieve , use cov.syntax argument modsem:","code":"tpb <- ' # Outer Model (Based on Hagger et al., 2007) ATT =~ att1 + att2 + att3 + att4 + att5 SN =~ sn1 + sn2 PBC =~ pbc1 + pbc2 + pbc3 INT =~ int1 + int2 + int3 BEH =~ b1 + b2 # Inner Model (Based on Steinmetz et al., 2011) INT ~ ATT + SN + PBC BEH ~ INT + PBC BEH ~ INT:INT ' tpb_linear <- 'INT ~ PBC + ATT + SN' tpb_nonlinear <- ' # Outer Model (Based on Hagger et al., 2007) ATT =~ att1 + att2 + att3 + att4 + att5 SN =~ sn1 + sn2 PBC =~ pbc1 + pbc2 + pbc3 INT =~ int1 + int2 + int3 BEH =~ b1 + b2 # Inner Model (Based on Steinmetz et al., 2011) BEH ~ INT + PBC BEH ~ INT:INT ' est_lms <- modsem(tpb_nonlinear, data = TPB, cov.syntax = tpb_linear, method = \"lms\") #> Warning: It is recommended that you have at least 48 nodes for interaction #> effects between endogenous variables in the lms approach 'nodes = 24' summary(est_lms) #> #> modsem (version 1.0.4): #> Estimator LMS #> Optimization method EM-NLMINB #> Number of observations 2000 #> Number of iterations 63 #> Loglikelihood -23780.86 #> Akaike (AIC) 47669.71 #> Bayesian (BIC) 47972.16 #> #> Numerical Integration: #> Points of integration (per dim) 24 #> Dimensions 1 #> Total points of integration 24 #> #> Fit Measures for H0: #> Loglikelihood -26393 #> Akaike (AIC) 52892.45 #> Bayesian (BIC) 53189.29 #> Chi-square 66.27 #> Degrees of Freedom (Chi-square) 82 #> P-value (Chi-square) 0.897 #> RMSEA 0.000 #> #> Comparative fit to H0 (no interaction effect) #> Loglikelihood change 2612.37 #> Difference test (D) 5224.73 #> Degrees of freedom (D) 1 #> P-value (D) 0.000 #> #> R-Squared: #> BEH 0.235 #> INT 0.364 #> R-Squared Null-Model (H0): #> BEH 0.210 #> INT 0.367 #> R-Squared Change: #> BEH 0.025 #> INT -0.002 #> #> Parameter Estimates: #> Coefficients unstandardized #> Information expected #> Standard errors standard #> #> Latent Variables: #> Estimate Std.Error z.value P(>|z|) #> INT =~ #> int1 1.000 #> int2 0.915 0.024 38.09 0.000 #> int3 0.807 0.019 43.02 0.000 #> ATT =~ #> att1 1.000 #> att2 0.878 0.015 56.99 0.000 #> att3 0.789 0.015 50.95 0.000 #> att4 0.695 0.016 43.22 0.000 #> att5 0.887 0.019 47.24 0.000 #> SN =~ #> sn1 1.000 #> sn2 0.888 0.026 34.20 0.000 #> PBC =~ #> pbc1 1.000 #> pbc2 0.913 0.018 50.55 0.000 #> pbc3 0.801 0.019 41.39 0.000 #> BEH =~ #> b1 1.000 #> b2 0.959 0.053 18.18 0.000 #> #> Regressions: #> Estimate Std.Error z.value P(>|z|) #> BEH ~ #> INT 0.196 0.035 5.60 0.000 #> PBC 0.238 0.032 7.54 0.000 #> INT:INT 0.129 0.027 4.83 0.000 #> INT ~ #> PBC 0.219 0.044 5.03 0.000 #> ATT 0.210 0.044 4.82 0.000 #> SN 0.171 0.045 3.78 0.000 #> #> Intercepts: #> Estimate Std.Error z.value P(>|z|) #> int1 1.007 0.029 34.22 0.000 #> int2 1.006 0.025 40.68 0.000 #> int3 0.999 0.024 41.61 0.000 #> att1 1.010 0.034 29.46 0.000 #> att2 1.003 0.029 34.64 0.000 #> att3 1.013 0.029 35.54 0.000 #> att4 0.996 0.024 42.12 0.000 #> att5 0.989 0.031 31.61 0.000 #> sn1 1.002 0.045 22.34 0.000 #> sn2 1.007 0.040 25.29 0.000 #> pbc1 0.994 0.041 24.36 0.000 #> pbc2 0.981 0.035 28.30 0.000 #> pbc3 0.988 0.035 28.32 0.000 #> b1 0.997 0.032 30.87 0.000 #> b2 1.015 0.027 37.81 0.000 #> BEH 0.000 #> INT 0.000 #> ATT 0.000 #> SN 0.000 #> PBC 0.000 #> #> Covariances: #> Estimate Std.Error z.value P(>|z|) #> PBC ~~ #> ATT 0.673 0.047 14.34 0.000 #> SN 0.673 0.050 13.54 0.000 #> ATT ~~ #> SN 0.624 0.052 12.10 0.000 #> #> Variances: #> Estimate Std.Error z.value P(>|z|) #> int1 0.161 0.014 11.65 0.000 #> int2 0.161 0.010 16.29 0.000 #> int3 0.170 0.010 16.18 0.000 #> att1 0.167 0.009 17.75 0.000 #> att2 0.150 0.008 17.78 0.000 #> att3 0.160 0.009 17.67 0.000 #> att4 0.162 0.008 20.08 0.000 #> att5 0.159 0.008 18.70 0.000 #> sn1 0.178 0.020 8.73 0.000 #> sn2 0.157 0.017 9.04 0.000 #> pbc1 0.145 0.011 12.72 0.000 #> pbc2 0.160 0.010 15.74 0.000 #> pbc3 0.154 0.009 17.12 0.000 #> b1 0.185 0.033 5.64 0.000 #> b2 0.136 0.033 4.16 0.000 #> BEH 0.475 0.044 10.75 0.000 #> PBC 0.956 0.056 16.99 0.000 #> ATT 0.993 0.057 17.36 0.000 #> SN 0.983 0.065 15.07 0.000 #> INT 0.481 0.029 16.63 0.000 est_qml <- modsem(tpb_nonlinear, data = TPB, cov.syntax = tpb_linear, method = \"qml\") summary(est_qml) #> #> modsem (version 1.0.4): #> Estimator QML #> Optimization method NLMINB #> Number of observations 2000 #> Number of iterations 71 #> Loglikelihood -26360.52 #> Akaike (AIC) 52829.04 #> Bayesian (BIC) 53131.49 #> #> Fit Measures for H0: #> Loglikelihood -26393 #> Akaike (AIC) 52892.45 #> Bayesian (BIC) 53189.29 #> Chi-square 66.27 #> Degrees of Freedom (Chi-square) 82 #> P-value (Chi-square) 0.897 #> RMSEA 0.000 #> #> Comparative fit to H0 (no interaction effect) #> Loglikelihood change 32.70 #> Difference test (D) 65.41 #> Degrees of freedom (D) 1 #> P-value (D) 0.000 #> #> R-Squared: #> BEH 0.239 #> INT 0.370 #> R-Squared Null-Model (H0): #> BEH 0.210 #> INT 0.367 #> R-Squared Change: #> BEH 0.029 #> INT 0.003 #> #> Parameter Estimates: #> Coefficients unstandardized #> Information observed #> Standard errors standard #> #> Latent Variables: #> Estimate Std.Error z.value P(>|z|) #> INT =~ #> int1 1.000 #> int2 0.914 0.015 59.04 0.000 #> int3 0.807 0.015 55.65 0.000 #> ATT =~ #> att1 1.000 #> att2 0.878 0.012 71.56 0.000 #> att3 0.789 0.012 66.37 0.000 #> att4 0.695 0.011 61.00 0.000 #> att5 0.887 0.013 70.85 0.000 #> SN =~ #> sn1 1.000 #> sn2 0.888 0.017 52.62 0.000 #> PBC =~ #> pbc1 1.000 #> pbc2 0.913 0.013 69.38 0.000 #> pbc3 0.801 0.012 66.08 0.000 #> BEH =~ #> b1 1.000 #> b2 0.960 0.032 29.90 0.000 #> #> Regressions: #> Estimate Std.Error z.value P(>|z|) #> BEH ~ #> INT 0.197 0.025 7.76 0.000 #> PBC 0.239 0.023 10.59 0.000 #> INT:INT 0.128 0.016 7.88 0.000 #> INT ~ #> PBC 0.222 0.030 7.51 0.000 #> ATT 0.213 0.026 8.17 0.000 #> SN 0.175 0.028 6.33 0.000 #> #> Intercepts: #> Estimate Std.Error z.value P(>|z|) #> int1 1.014 0.022 46.96 0.000 #> int2 1.012 0.020 50.40 0.000 #> int3 1.005 0.018 54.80 0.000 #> att1 1.014 0.024 42.00 0.000 #> att2 1.007 0.021 46.96 0.000 #> att3 1.016 0.020 51.45 0.000 #> att4 0.999 0.018 55.65 0.000 #> att5 0.992 0.022 45.67 0.000 #> sn1 1.006 0.024 41.66 0.000 #> sn2 1.010 0.022 46.70 0.000 #> pbc1 0.998 0.024 42.41 0.000 #> pbc2 0.985 0.022 44.93 0.000 #> pbc3 0.991 0.020 50.45 0.000 #> b1 0.999 0.023 42.63 0.000 #> b2 1.017 0.022 46.24 0.000 #> BEH 0.000 #> INT 0.000 #> ATT 0.000 #> SN 0.000 #> PBC 0.000 #> #> Covariances: #> Estimate Std.Error z.value P(>|z|) #> PBC ~~ #> ATT 0.678 0.029 23.45 0.000 #> SN 0.678 0.029 23.08 0.000 #> ATT ~~ #> SN 0.629 0.029 21.70 0.000 #> #> Variances: #> Estimate Std.Error z.value P(>|z|) #> int1 0.158 0.009 18.22 0.000 #> int2 0.160 0.008 20.38 0.000 #> int3 0.168 0.007 23.63 0.000 #> att1 0.167 0.007 23.53 0.000 #> att2 0.150 0.006 24.71 0.000 #> att3 0.160 0.006 26.38 0.000 #> att4 0.162 0.006 27.65 0.000 #> att5 0.159 0.006 24.93 0.000 #> sn1 0.178 0.015 12.09 0.000 #> sn2 0.157 0.012 13.26 0.000 #> pbc1 0.145 0.008 18.44 0.000 #> pbc2 0.160 0.007 21.42 0.000 #> pbc3 0.154 0.006 23.80 0.000 #> b1 0.185 0.020 9.42 0.000 #> b2 0.135 0.018 7.60 0.000 #> BEH 0.475 0.024 19.74 0.000 #> PBC 0.962 0.036 27.04 0.000 #> ATT 0.998 0.037 26.93 0.000 #> SN 0.988 0.039 25.23 0.000 #> INT 0.488 0.020 24.59 0.000"},{"path":"/articles/lms_qml.html","id":"the-latent-moderated-structural-equations-lms-and-the-quasi-maximum-likelihood-qml-approach","dir":"Articles","previous_headings":"","what":"The Latent Moderated Structural Equations (LMS) and the Quasi Maximum Likelihood (QML) Approach","title":"LMS and QML approaches","text":"LMS QML approaches work models, interaction effects endogenous variables can tricky estimate (see vignette). approaches, particularly LMS approach, computationally intensive partially implemented C++ (using Rcpp RcppArmadillo). Additionally, starting parameters estimated using double-centering approach, means observed variables used generate good starting parameters faster convergence. want monitor progress estimation process, can use verbose = TRUE.","code":""},{"path":"/articles/lms_qml.html","id":"a-simple-example","dir":"Articles","previous_headings":"The Latent Moderated Structural Equations (LMS) and the Quasi Maximum Likelihood (QML) Approach","what":"A Simple Example","title":"LMS and QML approaches","text":"example LMS approach simple model. default, summary() function calculates fit measures compared null model (.e., model without interaction term). example using QML approach:","code":"library(modsem) m1 <- ' # Outer Model X =~ x1 X =~ x2 + x3 Z =~ z1 + z2 + z3 Y =~ y1 + y2 + y3 # Inner Model Y ~ X + Z Y ~ X:Z ' lms1 <- modsem(m1, oneInt, method = \"lms\") summary(lms1, standardized = TRUE) # Standardized estimates #> #> modsem (version 1.0.4): #> Estimator LMS #> Optimization method EM-NLMINB #> Number of observations 2000 #> Number of iterations 84 #> Loglikelihood -14687.86 #> Akaike (AIC) 29437.72 #> Bayesian (BIC) 29611.35 #> #> Numerical Integration: #> Points of integration (per dim) 24 #> Dimensions 1 #> Total points of integration 24 #> #> Fit Measures for H0: #> Loglikelihood -17832 #> Akaike (AIC) 35723.75 #> Bayesian (BIC) 35891.78 #> Chi-square 17.52 #> Degrees of Freedom (Chi-square) 24 #> P-value (Chi-square) 0.826 #> RMSEA 0.000 #> #> Comparative fit to H0 (no interaction effect) #> Loglikelihood change 3144.01 #> Difference test (D) 6288.02 #> Degrees of freedom (D) 1 #> P-value (D) 0.000 #> #> R-Squared: #> Y 0.596 #> R-Squared Null-Model (H0): #> Y 0.395 #> R-Squared Change: #> Y 0.201 #> #> Parameter Estimates: #> Coefficients standardized #> Information expected #> Standard errors standard #> #> Latent Variables: #> Estimate Std.Error z.value P(>|z|) #> X =~ #> x1 0.926 #> x2 0.891 0.020 45.23 0.000 #> x3 0.912 0.015 62.37 0.000 #> Z =~ #> z1 0.927 #> z2 0.898 0.016 55.97 0.000 #> z3 0.913 0.014 64.52 0.000 #> Y =~ #> y1 0.969 #> y2 0.954 0.011 85.43 0.000 #> y3 0.961 0.011 88.71 0.000 #> #> Regressions: #> Estimate Std.Error z.value P(>|z|) #> Y ~ #> X 0.427 0.025 17.21 0.000 #> Z 0.370 0.025 14.98 0.000 #> X:Z 0.453 0.020 22.46 0.000 #> #> Covariances: #> Estimate Std.Error z.value P(>|z|) #> X ~~ #> Z 0.199 0.032 6.27 0.000 #> #> Variances: #> Estimate Std.Error z.value P(>|z|) #> x1 0.142 0.009 15.38 0.000 #> x2 0.206 0.010 19.89 0.000 #> x3 0.169 0.009 19.18 0.000 #> z1 0.141 0.008 16.74 0.000 #> z2 0.193 0.011 17.18 0.000 #> z3 0.167 0.009 18.54 0.000 #> y1 0.061 0.004 16.78 0.000 #> y2 0.090 0.005 20.01 0.000 #> y3 0.077 0.004 18.39 0.000 #> X 1.000 0.039 25.86 0.000 #> Z 1.000 0.051 19.55 0.000 #> Y 0.404 0.018 21.94 0.000 qml1 <- modsem(m1, oneInt, method = \"qml\") summary(qml1) #> #> modsem (version 1.0.4): #> Estimator QML #> Optimization method NLMINB #> Number of observations 2000 #> Number of iterations 109 #> Loglikelihood -17496.22 #> Akaike (AIC) 35054.43 #> Bayesian (BIC) 35228.06 #> #> Fit Measures for H0: #> Loglikelihood -17832 #> Akaike (AIC) 35723.75 #> Bayesian (BIC) 35891.78 #> Chi-square 17.52 #> Degrees of Freedom (Chi-square) 24 #> P-value (Chi-square) 0.826 #> RMSEA 0.000 #> #> Comparative fit to H0 (no interaction effect) #> Loglikelihood change 335.66 #> Difference test (D) 671.32 #> Degrees of freedom (D) 1 #> P-value (D) 0.000 #> #> R-Squared: #> Y 0.607 #> R-Squared Null-Model (H0): #> Y 0.395 #> R-Squared Change: #> Y 0.211 #> #> Parameter Estimates: #> Coefficients unstandardized #> Information observed #> Standard errors standard #> #> Latent Variables: #> Estimate Std.Error z.value P(>|z|) #> X =~ #> x1 1.000 #> x2 0.803 0.013 63.96 0.000 #> x3 0.914 0.013 67.79 0.000 #> Z =~ #> z1 1.000 #> z2 0.810 0.012 65.12 0.000 #> z3 0.881 0.013 67.62 0.000 #> Y =~ #> y1 1.000 #> y2 0.798 0.007 107.58 0.000 #> y3 0.899 0.008 112.55 0.000 #> #> Regressions: #> Estimate Std.Error z.value P(>|z|) #> Y ~ #> X 0.674 0.032 20.94 0.000 #> Z 0.566 0.030 18.96 0.000 #> X:Z 0.712 0.028 25.45 0.000 #> #> Intercepts: #> Estimate Std.Error z.value P(>|z|) #> x1 1.023 0.024 42.89 0.000 #> x2 1.216 0.020 60.99 0.000 #> x3 0.919 0.022 41.48 0.000 #> z1 1.012 0.024 41.58 0.000 #> z2 1.206 0.020 59.27 0.000 #> z3 0.916 0.022 42.06 0.000 #> y1 1.038 0.033 31.46 0.000 #> y2 1.221 0.027 45.49 0.000 #> y3 0.955 0.030 31.86 0.000 #> Y 0.000 #> X 0.000 #> Z 0.000 #> #> Covariances: #> Estimate Std.Error z.value P(>|z|) #> X ~~ #> Z 0.200 0.024 8.24 0.000 #> #> Variances: #> Estimate Std.Error z.value P(>|z|) #> x1 0.158 0.009 18.14 0.000 #> x2 0.162 0.007 23.19 0.000 #> x3 0.165 0.008 20.82 0.000 #> z1 0.166 0.009 18.34 0.000 #> z2 0.159 0.007 22.62 0.000 #> z3 0.158 0.008 20.71 0.000 #> y1 0.159 0.009 17.98 0.000 #> y2 0.154 0.007 22.67 0.000 #> y3 0.164 0.008 20.71 0.000 #> X 0.983 0.036 27.00 0.000 #> Z 1.019 0.038 26.95 0.000 #> Y 0.943 0.038 24.87 0.000"},{"path":"/articles/lms_qml.html","id":"a-more-complicated-example","dir":"Articles","previous_headings":"The Latent Moderated Structural Equations (LMS) and the Quasi Maximum Likelihood (QML) Approach","what":"A More Complicated Example","title":"LMS and QML approaches","text":"example complex model based theory planned behavior (TPB), includes two endogenous variables interaction endogenous exogenous variable. estimating complex models LMS approach, recommended increase number nodes used numerical integration. default, number nodes set 16, can increased using nodes argument. nodes argument effect QML approach. interaction effect endogenous exogenous variable, recommended use least 32 nodes LMS approach. can also obtain robust standard errors setting robust.se = TRUE modsem() function. Note: want LMS approach produce results similar possible Mplus, increase number nodes (e.g., nodes = 100).","code":"# ATT = Attitude # PBC = Perceived Behavioral Control # INT = Intention # SN = Subjective Norms # BEH = Behavior tpb <- ' # Outer Model (Based on Hagger et al., 2007) ATT =~ att1 + att2 + att3 + att4 + att5 SN =~ sn1 + sn2 PBC =~ pbc1 + pbc2 + pbc3 INT =~ int1 + int2 + int3 BEH =~ b1 + b2 # Inner Model (Based on Steinmetz et al., 2011) INT ~ ATT + SN + PBC BEH ~ INT + PBC BEH ~ INT:PBC ' lms2 <- modsem(tpb, TPB, method = \"lms\", nodes = 32) summary(lms2) #> #> modsem (version 1.0.4): #> Estimator LMS #> Optimization method EM-NLMINB #> Number of observations 2000 #> Number of iterations 64 #> Loglikelihood -23439.2 #> Akaike (AIC) 46986.41 #> Bayesian (BIC) 47288.85 #> #> Numerical Integration: #> Points of integration (per dim) 32 #> Dimensions 1 #> Total points of integration 32 #> #> Fit Measures for H0: #> Loglikelihood -26393 #> Akaike (AIC) 52892.45 #> Bayesian (BIC) 53189.29 #> Chi-square 66.27 #> Degrees of Freedom (Chi-square) 82 #> P-value (Chi-square) 0.897 #> RMSEA 0.000 #> #> Comparative fit to H0 (no interaction effect) #> Loglikelihood change 2954.02 #> Difference test (D) 5908.04 #> Degrees of freedom (D) 1 #> P-value (D) 0.000 #> #> R-Squared: #> INT 0.364 #> BEH 0.259 #> R-Squared Null-Model (H0): #> INT 0.367 #> BEH 0.210 #> R-Squared Change: #> INT -0.003 #> BEH 0.049 #> #> Parameter Estimates: #> Coefficients unstandardized #> Information expected #> Standard errors standard #> #> Latent Variables: #> Estimate Std.Error z.value P(>|z|) #> PBC =~ #> pbc1 1.000 #> pbc2 0.914 0.016 56.88 0.000 #> pbc3 0.802 0.019 42.46 0.000 #> ATT =~ #> att1 1.000 #> att2 0.878 0.018 48.90 0.000 #> att3 0.789 0.020 38.88 0.000 #> att4 0.695 0.017 39.78 0.000 #> att5 0.887 0.025 35.40 0.000 #> SN =~ #> sn1 1.000 #> sn2 0.889 0.026 34.77 0.000 #> INT =~ #> int1 1.000 #> int2 0.913 0.024 38.27 0.000 #> int3 0.807 0.021 37.67 0.000 #> BEH =~ #> b1 1.000 #> b2 0.959 0.053 18.16 0.000 #> #> Regressions: #> Estimate Std.Error z.value P(>|z|) #> INT ~ #> PBC 0.217 0.044 4.99 0.000 #> ATT 0.214 0.045 4.70 0.000 #> SN 0.176 0.037 4.76 0.000 #> BEH ~ #> PBC 0.233 0.034 6.89 0.000 #> INT 0.188 0.034 5.54 0.000 #> PBC:INT 0.205 0.028 7.26 0.000 #> #> Intercepts: #> Estimate Std.Error z.value P(>|z|) #> pbc1 0.991 0.033 29.69 0.000 #> pbc2 0.978 0.031 31.84 0.000 #> pbc3 0.986 0.026 37.25 0.000 #> att1 1.009 0.035 28.79 0.000 #> att2 1.003 0.028 36.28 0.000 #> att3 1.013 0.026 39.12 0.000 #> att4 0.996 0.024 41.35 0.000 #> att5 0.988 0.029 34.35 0.000 #> sn1 1.001 0.035 28.26 0.000 #> sn2 1.006 0.032 31.06 0.000 #> int1 1.011 0.025 40.02 0.000 #> int2 1.009 0.028 35.44 0.000 #> int3 1.003 0.024 42.07 0.000 #> b1 0.999 0.022 44.65 0.000 #> b2 1.017 0.025 40.83 0.000 #> INT 0.000 #> BEH 0.000 #> PBC 0.000 #> ATT 0.000 #> SN 0.000 #> #> Covariances: #> Estimate Std.Error z.value P(>|z|) #> PBC ~~ #> ATT 0.668 0.048 13.93 0.000 #> SN 0.668 0.047 14.09 0.000 #> ATT ~~ #> SN 0.623 0.050 12.46 0.000 #> #> Variances: #> Estimate Std.Error z.value P(>|z|) #> pbc1 0.148 0.012 12.55 0.000 #> pbc2 0.159 0.010 15.80 0.000 #> pbc3 0.155 0.010 16.29 0.000 #> att1 0.167 0.010 16.68 0.000 #> att2 0.150 0.009 17.13 0.000 #> att3 0.159 0.009 18.03 0.000 #> att4 0.162 0.008 20.20 0.000 #> att5 0.159 0.010 16.69 0.000 #> sn1 0.178 0.022 8.20 0.000 #> sn2 0.156 0.016 9.89 0.000 #> int1 0.157 0.011 13.91 0.000 #> int2 0.160 0.011 14.28 0.000 #> int3 0.168 0.010 17.38 0.000 #> b1 0.185 0.036 5.11 0.000 #> b2 0.136 0.028 4.82 0.000 #> PBC 0.947 0.052 18.33 0.000 #> ATT 0.992 0.063 15.66 0.000 #> SN 0.981 0.060 16.35 0.000 #> INT 0.491 0.029 16.94 0.000 #> BEH 0.456 0.031 14.70 0.000 qml2 <- modsem(tpb, TPB, method = \"qml\") summary(qml2, standardized = TRUE) # Standardized estimates #> #> modsem (version 1.0.4): #> Estimator QML #> Optimization method NLMINB #> Number of observations 2000 #> Number of iterations 75 #> Loglikelihood -26326.25 #> Akaike (AIC) 52760.5 #> Bayesian (BIC) 53062.95 #> #> Fit Measures for H0: #> Loglikelihood -26393 #> Akaike (AIC) 52892.45 #> Bayesian (BIC) 53189.29 #> Chi-square 66.27 #> Degrees of Freedom (Chi-square) 82 #> P-value (Chi-square) 0.897 #> RMSEA 0.000 #> #> Comparative fit to H0 (no interaction effect) #> Loglikelihood change 66.97 #> Difference test (D) 133.95 #> Degrees of freedom (D) 1 #> P-value (D) 0.000 #> #> R-Squared: #> INT 0.366 #> BEH 0.263 #> R-Squared Null-Model (H0): #> INT 0.367 #> BEH 0.210 #> R-Squared Change: #> INT 0.000 #> BEH 0.053 #> #> Parameter Estimates: #> Coefficients standardized #> Information observed #> Standard errors standard #> #> Latent Variables: #> Estimate Std.Error z.value P(>|z|) #> PBC =~ #> pbc1 0.933 #> pbc2 0.913 0.013 69.47 0.000 #> pbc3 0.894 0.014 66.10 0.000 #> ATT =~ #> att1 0.925 #> att2 0.915 0.013 71.56 0.000 #> att3 0.892 0.013 66.37 0.000 #> att4 0.865 0.014 61.00 0.000 #> att5 0.912 0.013 70.85 0.000 #> SN =~ #> sn1 0.921 #> sn2 0.913 0.017 52.61 0.000 #> INT =~ #> int1 0.912 #> int2 0.895 0.015 59.05 0.000 #> int3 0.867 0.016 55.73 0.000 #> BEH =~ #> b1 0.877 #> b2 0.900 0.028 31.71 0.000 #> #> Regressions: #> Estimate Std.Error z.value P(>|z|) #> INT ~ #> PBC 0.243 0.033 7.35 0.000 #> ATT 0.242 0.030 8.16 0.000 #> SN 0.199 0.031 6.37 0.000 #> BEH ~ #> PBC 0.289 0.028 10.37 0.000 #> INT 0.212 0.028 7.69 0.000 #> PBC:INT 0.227 0.020 11.33 0.000 #> #> Covariances: #> Estimate Std.Error z.value P(>|z|) #> PBC ~~ #> ATT 0.692 0.030 23.45 0.000 #> SN 0.695 0.030 23.07 0.000 #> ATT ~~ #> SN 0.634 0.029 21.70 0.000 #> #> Variances: #> Estimate Std.Error z.value P(>|z|) #> pbc1 0.130 0.007 18.39 0.000 #> pbc2 0.166 0.008 21.43 0.000 #> pbc3 0.201 0.008 23.89 0.000 #> att1 0.144 0.006 23.53 0.000 #> att2 0.164 0.007 24.71 0.000 #> att3 0.204 0.008 26.38 0.000 #> att4 0.252 0.009 27.64 0.000 #> att5 0.168 0.007 24.93 0.000 #> sn1 0.153 0.013 12.09 0.000 #> sn2 0.167 0.013 13.26 0.000 #> int1 0.168 0.009 18.11 0.000 #> int2 0.199 0.010 20.41 0.000 #> int3 0.249 0.011 23.55 0.000 #> b1 0.231 0.023 10.12 0.000 #> b2 0.191 0.024 8.11 0.000 #> PBC 1.000 0.037 27.07 0.000 #> ATT 1.000 0.037 26.93 0.000 #> SN 1.000 0.040 25.22 0.000 #> INT 0.634 0.026 24.64 0.000 #> BEH 0.737 0.037 20.17 0.000"},{"path":"/articles/methods.html","id":"product-indicator-pi-approaches","dir":"Articles","previous_headings":"","what":"Product Indicator (PI) Approaches:","title":"methods","text":"Note constraints can become quite complicated complex models, particularly interaction including enodgenous variables. method can therefore quite slow. \"uca\" = unconstrained approach (Marsh, 2004) \"rca\" = residual centering approach (Little et al., 2006) default \"pind\" = basic product indicator approach (recommended)","code":""},{"path":"/articles/methods.html","id":"distribution-analytic-da-approaches","dir":"Articles","previous_headings":"","what":"Distribution Analytic (DA) Approaches","title":"methods","text":"\"lms\" = Latent Moderated Structural equations (LMS) approach, see vignette \"qml\" = Quasi Maximum Likelihood (QML) approach, see vignette estimates model Mplus, installed","code":"m1 <- ' # Outer Model X =~ x1 + x2 + x3 Y =~ y1 + y2 + y3 Z =~ z1 + z2 + z3 # Inner model Y ~ X + Z + X:Z ' # Product Indicator Approaches modsem(m1, data = oneInt, method = \"ca\") modsem(m1, data = oneInt, method = \"uca\") modsem(m1, data = oneInt, method = \"rca\") modsem(m1, data = oneInt, method = \"dblcent\") # Distribution Analytic Approaches modsem(m1, data = oneInt, method = \"mplus\") modsem(m1, data = oneInt, method = \"lms\") modsem(m1, data = oneInt, method = \"qml\")"},{"path":"/articles/modsem.html","id":"the-basic-syntax","dir":"Articles","previous_headings":"","what":"The Basic Syntax","title":"modsem","text":"modsem introduces new feature lavaan syntax—semicolon operator (:). semicolon operator works way lm() function. specify interaction effect two variables, join Var1:Var2. Models can estimated using one product indicator approaches (\"ca\", \"rca\", \"dblcent\", \"pind\") using latent moderated structural equations approach (\"lms\") quasi maximum likelihood approach (\"qml\"). product indicator approaches estimated via lavaan, lms qml approaches estimated via modsem .","code":""},{"path":"/articles/modsem.html","id":"a-simple-example","dir":"Articles","previous_headings":"The Basic Syntax","what":"A Simple Example","title":"modsem","text":"simple example specify interaction effect two latent variables lavaan. default, model estimated using \"dblcent\" method. want use another method, can change using method argument.","code":"m1 <- ' # Outer Model X =~ x1 + x2 + x3 Y =~ y1 + y2 + y3 Z =~ z1 + z2 + z3 # Inner Model Y ~ X + Z + X:Z ' est1 <- modsem(m1, oneInt) summary(est1) #> modsem (version 1.0.4, approach = dblcent): #> lavaan 0.6-19 ended normally after 161 iterations #> #> Estimator ML #> Optimization method NLMINB #> Number of model parameters 60 #> #> Number of observations 2000 #> #> Model Test User Model: #> #> Test statistic 122.924 #> Degrees of freedom 111 #> P-value (Chi-square) 0.207 #> #> Parameter Estimates: #> #> Standard errors Standard #> Information Expected #> Information saturated (h1) model Structured #> #> Latent Variables: #> Estimate Std.Err z-value P(>|z|) #> X =~ #> x1 1.000 #> x2 0.804 0.013 63.612 0.000 #> x3 0.916 0.014 67.144 0.000 #> Y =~ #> y1 1.000 #> y2 0.798 0.007 107.428 0.000 #> y3 0.899 0.008 112.453 0.000 #> Z =~ #> z1 1.000 #> z2 0.812 0.013 64.763 0.000 #> z3 0.882 0.013 67.014 0.000 #> XZ =~ #> x1z1 1.000 #> x2z1 0.805 0.013 60.636 0.000 #> x3z1 0.877 0.014 62.680 0.000 #> x1z2 0.793 0.013 59.343 0.000 #> x2z2 0.646 0.015 43.672 0.000 #> x3z2 0.706 0.016 44.292 0.000 #> x1z3 0.887 0.014 63.700 0.000 #> x2z3 0.716 0.016 45.645 0.000 #> x3z3 0.781 0.017 45.339 0.000 #> #> Regressions: #> Estimate Std.Err z-value P(>|z|) #> Y ~ #> X 0.675 0.027 25.379 0.000 #> Z 0.561 0.026 21.606 0.000 #> XZ 0.702 0.027 26.360 0.000 #> #> Covariances: #> Estimate Std.Err z-value P(>|z|) #> .x1z1 ~~ #> .x2z2 0.000 #> .x2z3 0.000 #> .x3z2 0.000 #> .x3z3 0.000 #> .x2z1 ~~ #> .x1z2 0.000 #> .x1z2 ~~ #> .x2z3 0.000 #> .x3z1 ~~ #> .x1z2 0.000 #> .x1z2 ~~ #> .x3z3 0.000 #> .x2z1 ~~ #> .x1z3 0.000 #> .x2z2 ~~ #> .x1z3 0.000 #> .x3z1 ~~ #> .x1z3 0.000 #> .x3z2 ~~ #> .x1z3 0.000 #> .x2z1 ~~ #> .x3z2 0.000 #> .x3z3 0.000 #> .x3z1 ~~ #> .x2z2 0.000 #> .x2z2 ~~ #> .x3z3 0.000 #> .x3z1 ~~ #> .x2z3 0.000 #> .x3z2 ~~ #> .x2z3 0.000 #> .x1z1 ~~ #> .x1z2 0.115 0.008 14.802 0.000 #> .x1z3 0.114 0.008 13.947 0.000 #> .x2z1 0.125 0.008 16.095 0.000 #> .x3z1 0.140 0.009 16.135 0.000 #> .x1z2 ~~ #> .x1z3 0.103 0.007 14.675 0.000 #> .x2z2 0.128 0.006 20.850 0.000 #> .x3z2 0.146 0.007 21.243 0.000 #> .x1z3 ~~ #> .x2z3 0.116 0.007 17.818 0.000 #> .x3z3 0.135 0.007 18.335 0.000 #> .x2z1 ~~ #> .x2z2 0.135 0.006 20.905 0.000 #> .x2z3 0.145 0.007 21.145 0.000 #> .x3z1 0.114 0.007 16.058 0.000 #> .x2z2 ~~ #> .x2z3 0.117 0.006 20.419 0.000 #> .x3z2 0.116 0.006 20.586 0.000 #> .x2z3 ~~ #> .x3z3 0.109 0.006 18.059 0.000 #> .x3z1 ~~ #> .x3z2 0.138 0.007 19.331 0.000 #> .x3z3 0.158 0.008 20.269 0.000 #> .x3z2 ~~ #> .x3z3 0.131 0.007 19.958 0.000 #> X ~~ #> Z 0.201 0.024 8.271 0.000 #> XZ 0.016 0.025 0.628 0.530 #> Z ~~ #> XZ 0.062 0.025 2.449 0.014 #> #> Variances: #> Estimate Std.Err z-value P(>|z|) #> .x1 0.160 0.009 17.871 0.000 #> .x2 0.162 0.007 22.969 0.000 #> .x3 0.163 0.008 20.161 0.000 #> .y1 0.159 0.009 17.896 0.000 #> .y2 0.154 0.007 22.640 0.000 #> .y3 0.164 0.008 20.698 0.000 #> .z1 0.168 0.009 18.143 0.000 #> .z2 0.158 0.007 22.264 0.000 #> .z3 0.158 0.008 20.389 0.000 #> .x1z1 0.311 0.014 22.227 0.000 #> .x2z1 0.292 0.011 27.287 0.000 #> .x3z1 0.327 0.012 26.275 0.000 #> .x1z2 0.290 0.011 26.910 0.000 #> .x2z2 0.239 0.008 29.770 0.000 #> .x3z2 0.270 0.009 29.117 0.000 #> .x1z3 0.272 0.012 23.586 0.000 #> .x2z3 0.245 0.009 27.979 0.000 #> .x3z3 0.297 0.011 28.154 0.000 #> X 0.981 0.036 26.895 0.000 #> .Y 0.990 0.038 25.926 0.000 #> Z 1.016 0.038 26.856 0.000 #> XZ 1.045 0.044 24.004 0.000 est1 <- modsem(m1, oneInt, method = \"lms\") summary(est1) #> #> modsem (version 1.0.4): #> Estimator LMS #> Optimization method EM-NLMINB #> Number of observations 2000 #> Number of iterations 84 #> Loglikelihood -14687.86 #> Akaike (AIC) 29437.73 #> Bayesian (BIC) 29611.35 #> #> Numerical Integration: #> Points of integration (per dim) 24 #> Dimensions 1 #> Total points of integration 24 #> #> Fit Measures for H0: #> Loglikelihood -17832 #> Akaike (AIC) 35723.75 #> Bayesian (BIC) 35891.78 #> Chi-square 17.52 #> Degrees of Freedom (Chi-square) 24 #> P-value (Chi-square) 0.826 #> RMSEA 0.000 #> #> Comparative fit to H0 (no interaction effect) #> Loglikelihood change 3144.01 #> Difference test (D) 6288.02 #> Degrees of freedom (D) 1 #> P-value (D) 0.000 #> #> R-Squared: #> Y 0.596 #> R-Squared Null-Model (H0): #> Y 0.395 #> R-Squared Change: #> Y 0.201 #> #> Parameter Estimates: #> Coefficients unstandardized #> Information expected #> Standard errors standard #> #> Latent Variables: #> Estimate Std.Error z.value P(>|z|) #> X =~ #> x1 1.000 #> x2 0.804 0.018 45.23 0.000 #> x3 0.915 0.015 62.37 0.000 #> Z =~ #> z1 1.000 #> z2 0.810 0.014 55.97 0.000 #> z3 0.881 0.014 64.52 0.000 #> Y =~ #> y1 1.000 #> y2 0.799 0.009 85.43 0.000 #> y3 0.899 0.010 88.71 0.000 #> #> Regressions: #> Estimate Std.Error z.value P(>|z|) #> Y ~ #> X 0.677 0.039 17.21 0.000 #> Z 0.572 0.038 14.98 0.000 #> X:Z 0.712 0.032 22.46 0.000 #> #> Intercepts: #> Estimate Std.Error z.value P(>|z|) #> x1 1.026 0.025 41.65 0.000 #> x2 1.218 0.020 61.14 0.000 #> x3 0.922 0.024 38.69 0.000 #> z1 1.016 0.031 32.90 0.000 #> z2 1.209 0.029 42.26 0.000 #> z3 0.920 0.027 34.22 0.000 #> y1 1.046 0.024 43.95 0.000 #> y2 1.228 0.022 54.98 0.000 #> y3 0.962 0.025 39.06 0.000 #> Y 0.000 #> X 0.000 #> Z 0.000 #> #> Covariances: #> Estimate Std.Error z.value P(>|z|) #> X ~~ #> Z 0.198 0.032 6.27 0.000 #> #> Variances: #> Estimate Std.Error z.value P(>|z|) #> x1 0.160 0.010 15.38 0.000 #> x2 0.163 0.008 19.89 0.000 #> x3 0.165 0.009 19.18 0.000 #> z1 0.166 0.010 16.74 0.000 #> z2 0.160 0.009 17.18 0.000 #> z3 0.158 0.009 18.54 0.000 #> y1 0.160 0.010 16.78 0.000 #> y2 0.154 0.008 20.01 0.000 #> y3 0.163 0.009 18.39 0.000 #> X 0.972 0.038 25.86 0.000 #> Z 1.017 0.052 19.55 0.000 #> Y 0.984 0.045 21.94 0.000"},{"path":"/articles/modsem.html","id":"interactions-between-two-observed-variables","dir":"Articles","previous_headings":"The Basic Syntax","what":"Interactions Between Two Observed Variables","title":"modsem","text":"modsem allows estimate interactions latent variables also observed variables. , first run regression observed variables, interaction x1 z2, run equivalent model using modsem().","code":""},{"path":"/articles/modsem.html","id":"using-a-regression","dir":"Articles","previous_headings":"The Basic Syntax > Interactions Between Two Observed Variables","what":"Using a Regression","title":"modsem","text":"","code":"reg1 <- lm(y1 ~ x1*z1, oneInt) summary(reg1) #> #> Call: #> lm(formula = y1 ~ x1 * z1, data = oneInt) #> #> Residuals: #> Min 1Q Median 3Q Max #> -3.7155 -0.8087 -0.0367 0.8078 4.6531 #> #> Coefficients: #> Estimate Std. Error t value Pr(>|t|) #> (Intercept) 0.51422 0.04618 11.135 <2e-16 *** #> x1 0.05477 0.03387 1.617 0.1060 #> z1 -0.06575 0.03461 -1.900 0.0576 . #> x1:z1 0.54361 0.02272 23.926 <2e-16 *** #> --- #> Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 #> #> Residual standard error: 1.184 on 1996 degrees of freedom #> Multiple R-squared: 0.4714, Adjusted R-squared: 0.4706 #> F-statistic: 593.3 on 3 and 1996 DF, p-value: < 2.2e-16"},{"path":"/articles/modsem.html","id":"using-modsem","dir":"Articles","previous_headings":"The Basic Syntax > Interactions Between Two Observed Variables","what":"Using modsem","title":"modsem","text":"interactions observed variables, generally recommended use method = \"pind\". Interaction effects observed variables supported LMS QML approaches. cases, can define latent variable single indicator estimate interaction effect two observed variables LMS QML approaches, generally recommended.","code":"# Using \"pind\" as the method (see Chapter 3) est2 <- modsem('y1 ~ x1 + z1 + x1:z1', data = oneInt, method = \"pind\") summary(est2) #> modsem (version 1.0.4, approach = pind): #> lavaan 0.6-19 ended normally after 1 iteration #> #> Estimator ML #> Optimization method NLMINB #> Number of model parameters 4 #> #> Number of observations 2000 #> #> Model Test User Model: #> #> Test statistic 0.000 #> Degrees of freedom 0 #> #> Parameter Estimates: #> #> Standard errors Standard #> Information Expected #> Information saturated (h1) model Structured #> #> Regressions: #> Estimate Std.Err z-value P(>|z|) #> y1 ~ #> x1 0.055 0.034 1.619 0.105 #> z1 -0.066 0.035 -1.902 0.057 #> x1z1 0.544 0.023 23.950 0.000 #> #> Variances: #> Estimate Std.Err z-value P(>|z|) #> .y1 1.399 0.044 31.623 0.000"},{"path":"/articles/modsem.html","id":"interactions-between-latent-and-observed-variables","dir":"Articles","previous_headings":"The Basic Syntax","what":"Interactions Between Latent and Observed Variables","title":"modsem","text":"modsem also allows estimate interaction effects latent observed variables. , simply join latent observed variable colon (e.g., 'latent:observer'). interactions observed variables, generally recommended use method = \"pind\" estimating effect latent observed variables.","code":"m3 <- ' # Outer Model X =~ x1 + x2 + x3 Y =~ y1 + y2 + y3 # Inner Model Y ~ X + z1 + X:z1 ' est3 <- modsem(m3, oneInt, method = \"pind\") summary(est3) #> modsem (version 1.0.4, approach = pind): #> lavaan 0.6-19 ended normally after 45 iterations #> #> Estimator ML #> Optimization method NLMINB #> Number of model parameters 22 #> #> Number of observations 2000 #> #> Model Test User Model: #> #> Test statistic 4468.171 #> Degrees of freedom 32 #> P-value (Chi-square) 0.000 #> #> Parameter Estimates: #> #> Standard errors Standard #> Information Expected #> Information saturated (h1) model Structured #> #> Latent Variables: #> Estimate Std.Err z-value P(>|z|) #> X =~ #> x1 1.000 #> x2 0.803 0.013 63.697 0.000 #> x3 0.915 0.014 67.548 0.000 #> Y =~ #> y1 1.000 #> y2 0.798 0.007 115.375 0.000 #> y3 0.899 0.007 120.783 0.000 #> Xz1 =~ #> x1z1 1.000 #> x2z1 0.947 0.010 96.034 0.000 #> x3z1 0.902 0.009 99.512 0.000 #> #> Regressions: #> Estimate Std.Err z-value P(>|z|) #> Y ~ #> X 0.021 0.034 0.614 0.540 #> z1 -0.185 0.023 -8.096 0.000 #> Xz1 0.646 0.017 37.126 0.000 #> #> Covariances: #> Estimate Std.Err z-value P(>|z|) #> X ~~ #> Xz1 1.243 0.055 22.523 0.000 #> #> Variances: #> Estimate Std.Err z-value P(>|z|) #> .x1 0.158 0.009 17.976 0.000 #> .x2 0.164 0.007 23.216 0.000 #> .x3 0.162 0.008 20.325 0.000 #> .y1 0.158 0.009 17.819 0.000 #> .y2 0.154 0.007 22.651 0.000 #> .y3 0.164 0.008 20.744 0.000 #> .x1z1 0.315 0.017 18.328 0.000 #> .x2z1 0.428 0.019 22.853 0.000 #> .x3z1 0.337 0.016 21.430 0.000 #> X 0.982 0.036 26.947 0.000 #> .Y 1.112 0.040 27.710 0.000 #> Xz1 3.965 0.136 29.217 0.000"},{"path":"/articles/modsem.html","id":"quadratic-effects","dir":"Articles","previous_headings":"The Basic Syntax","what":"Quadratic Effects","title":"modsem","text":"Quadratic effects essentially special case interaction effects. Thus, modsem can also used estimate quadratic effects.","code":"m4 <- ' # Outer Model X =~ x1 + x2 + x3 Y =~ y1 + y2 + y3 Z =~ z1 + z2 + z3 # Inner Model Y ~ X + Z + Z:X + X:X ' est4 <- modsem(m4, oneInt, method = \"qml\") summary(est4) #> #> modsem (version 1.0.4): #> Estimator QML #> Optimization method NLMINB #> Number of observations 2000 #> Number of iterations 104 #> Loglikelihood -17496.2 #> Akaike (AIC) 35056.4 #> Bayesian (BIC) 35235.62 #> #> Fit Measures for H0: #> Loglikelihood -17832 #> Akaike (AIC) 35723.75 #> Bayesian (BIC) 35891.78 #> Chi-square 17.52 #> Degrees of Freedom (Chi-square) 24 #> P-value (Chi-square) 0.826 #> RMSEA 0.000 #> #> Comparative fit to H0 (no interaction effect) #> Loglikelihood change 335.68 #> Difference test (D) 671.35 #> Degrees of freedom (D) 2 #> P-value (D) 0.000 #> #> R-Squared: #> Y 0.607 #> R-Squared Null-Model (H0): #> Y 0.395 #> R-Squared Change: #> Y 0.212 #> #> Parameter Estimates: #> Coefficients unstandardized #> Information observed #> Standard errors standard #> #> Latent Variables: #> Estimate Std.Error z.value P(>|z|) #> X =~ #> x1 1.000 #> x2 0.803 0.013 63.963 0.000 #> x3 0.914 0.013 67.795 0.000 #> Z =~ #> z1 1.000 #> z2 0.810 0.012 65.122 0.000 #> z3 0.881 0.013 67.621 0.000 #> Y =~ #> y1 1.000 #> y2 0.798 0.007 107.568 0.000 #> y3 0.899 0.008 112.543 0.000 #> #> Regressions: #> Estimate Std.Error z.value P(>|z|) #> Y ~ #> X 0.674 0.032 20.888 0.000 #> Z 0.566 0.030 18.947 0.000 #> X:X -0.005 0.023 -0.207 0.836 #> X:Z 0.713 0.029 24.554 0.000 #> #> Intercepts: #> Estimate Std.Error z.value P(>|z|) #> x1 1.023 0.024 42.894 0.000 #> x2 1.216 0.020 60.994 0.000 #> x3 0.919 0.022 41.484 0.000 #> z1 1.012 0.024 41.575 0.000 #> z2 1.206 0.020 59.269 0.000 #> z3 0.916 0.022 42.062 0.000 #> y1 1.042 0.038 27.683 0.000 #> y2 1.224 0.030 40.158 0.000 #> y3 0.958 0.034 28.101 0.000 #> Y 0.000 #> X 0.000 #> Z 0.000 #> #> Covariances: #> Estimate Std.Error z.value P(>|z|) #> X ~~ #> Z 0.200 0.024 8.238 0.000 #> #> Variances: #> Estimate Std.Error z.value P(>|z|) #> x1 0.158 0.009 18.145 0.000 #> x2 0.162 0.007 23.188 0.000 #> x3 0.165 0.008 20.821 0.000 #> z1 0.166 0.009 18.340 0.000 #> z2 0.159 0.007 22.621 0.000 #> z3 0.158 0.008 20.713 0.000 #> y1 0.159 0.009 17.975 0.000 #> y2 0.154 0.007 22.670 0.000 #> y3 0.164 0.008 20.711 0.000 #> X 0.983 0.036 26.994 0.000 #> Z 1.019 0.038 26.951 0.000 #> Y 0.943 0.038 24.819 0.000"},{"path":"/articles/modsem.html","id":"more-complicated-examples","dir":"Articles","previous_headings":"The Basic Syntax","what":"More Complicated Examples","title":"modsem","text":"complex example using theory planned behavior (TPB) model. example includes two quadratic effects one interaction effect, using jordan dataset. dataset subset PISA 2006 dataset. Note: approaches also work may quite slow depending number interaction effects, particularly LMS constrained approaches.","code":"tpb <- ' # Outer Model (Based on Hagger et al., 2007) ATT =~ att1 + att2 + att3 + att4 + att5 SN =~ sn1 + sn2 PBC =~ pbc1 + pbc2 + pbc3 INT =~ int1 + int2 + int3 BEH =~ b1 + b2 # Inner Model (Based on Steinmetz et al., 2011) INT ~ ATT + SN + PBC BEH ~ INT + PBC + INT:PBC ' # The double-centering approach est_tpb <- modsem(tpb, TPB) # Using the LMS approach est_tpb_lms <- modsem(tpb, TPB, method = \"lms\") #> Warning: It is recommended that you have at least 32 nodes for interaction #> effects between exogenous and endogenous variables in the lms approach 'nodes = #> 24' summary(est_tpb_lms) #> #> modsem (version 1.0.4): #> Estimator LMS #> Optimization method EM-NLMINB #> Number of observations 2000 #> Number of iterations 88 #> Loglikelihood -23463.87 #> Akaike (AIC) 47035.73 #> Bayesian (BIC) 47338.18 #> #> Numerical Integration: #> Points of integration (per dim) 24 #> Dimensions 1 #> Total points of integration 24 #> #> Fit Measures for H0: #> Loglikelihood -26393 #> Akaike (AIC) 52892.45 #> Bayesian (BIC) 53189.29 #> Chi-square 66.27 #> Degrees of Freedom (Chi-square) 82 #> P-value (Chi-square) 0.897 #> RMSEA 0.000 #> #> Comparative fit to H0 (no interaction effect) #> Loglikelihood change 2929.36 #> Difference test (D) 5858.71 #> Degrees of freedom (D) 1 #> P-value (D) 0.000 #> #> R-Squared: #> INT 0.361 #> BEH 0.248 #> R-Squared Null-Model (H0): #> INT 0.367 #> BEH 0.210 #> R-Squared Change: #> INT -0.006 #> BEH 0.038 #> #> Parameter Estimates: #> Coefficients unstandardized #> Information expected #> Standard errors standard #> #> Latent Variables: #> Estimate Std.Error z.value P(>|z|) #> PBC =~ #> pbc1 1.000 #> pbc2 0.911 0.023 39.06 0.000 #> pbc3 0.802 0.016 51.13 0.000 #> ATT =~ #> att1 1.000 #> att2 0.877 0.016 54.64 0.000 #> att3 0.789 0.017 47.31 0.000 #> att4 0.695 0.018 38.72 0.000 #> att5 0.887 0.018 49.78 0.000 #> SN =~ #> sn1 1.000 #> sn2 0.889 0.027 32.67 0.000 #> INT =~ #> int1 1.000 #> int2 0.913 0.026 34.76 0.000 #> int3 0.807 0.019 43.58 0.000 #> BEH =~ #> b1 1.000 #> b2 0.961 0.044 21.59 0.000 #> #> Regressions: #> Estimate Std.Error z.value P(>|z|) #> INT ~ #> PBC 0.217 0.045 4.78 0.000 #> ATT 0.213 0.033 6.38 0.000 #> SN 0.177 0.036 4.90 0.000 #> BEH ~ #> PBC 0.228 0.035 6.45 0.000 #> INT 0.182 0.034 5.29 0.000 #> PBC:INT 0.204 0.025 8.01 0.000 #> #> Intercepts: #> Estimate Std.Error z.value P(>|z|) #> pbc1 0.960 0.028 34.86 0.000 #> pbc2 0.951 0.024 39.44 0.000 #> pbc3 0.961 0.022 44.16 0.000 #> att1 0.988 0.036 27.66 0.000 #> att2 0.984 0.030 32.28 0.000 #> att3 0.996 0.026 37.69 0.000 #> att4 0.981 0.022 44.69 0.000 #> att5 0.969 0.028 34.07 0.000 #> sn1 0.980 0.031 31.89 0.000 #> sn2 0.987 0.034 28.80 0.000 #> int1 0.996 0.031 32.40 0.000 #> int2 0.996 0.027 37.26 0.000 #> int3 0.991 0.024 40.79 0.000 #> b1 0.990 0.024 40.94 0.000 #> b2 1.008 0.026 39.40 0.000 #> INT 0.000 #> BEH 0.000 #> PBC 0.000 #> ATT 0.000 #> SN 0.000 #> #> Covariances: #> Estimate Std.Error z.value P(>|z|) #> PBC ~~ #> ATT 0.658 0.037 17.84 0.000 #> SN 0.657 0.043 15.32 0.000 #> ATT ~~ #> SN 0.616 0.047 13.06 0.000 #> #> Variances: #> Estimate Std.Error z.value P(>|z|) #> pbc1 0.147 0.012 12.31 0.000 #> pbc2 0.164 0.010 16.73 0.000 #> pbc3 0.154 0.010 15.21 0.000 #> att1 0.167 0.011 15.71 0.000 #> att2 0.150 0.010 15.45 0.000 #> att3 0.159 0.009 17.26 0.000 #> att4 0.163 0.008 19.28 0.000 #> att5 0.159 0.009 16.97 0.000 #> sn1 0.178 0.023 7.72 0.000 #> sn2 0.156 0.017 9.32 0.000 #> int1 0.157 0.013 12.37 0.000 #> int2 0.160 0.011 14.88 0.000 #> int3 0.168 0.009 18.87 0.000 #> b1 0.186 0.026 7.28 0.000 #> b2 0.135 0.025 5.45 0.000 #> PBC 0.933 0.039 23.75 0.000 #> ATT 0.985 0.056 17.72 0.000 #> SN 0.974 0.058 16.66 0.000 #> INT 0.491 0.032 15.36 0.000 #> BEH 0.456 0.034 13.58 0.000 m2 <- ' ENJ =~ enjoy1 + enjoy2 + enjoy3 + enjoy4 + enjoy5 CAREER =~ career1 + career2 + career3 + career4 SC =~ academic1 + academic2 + academic3 + academic4 + academic5 + academic6 CAREER ~ ENJ + SC + ENJ:ENJ + SC:SC + ENJ:SC ' est_jordan <- modsem(m2, data = jordan) est_jordan_qml <- modsem(m2, data = jordan, method = \"qml\") #> Warning: SE's for some coefficients could not be computed. summary(est_jordan_qml) #> #> modsem (version 1.0.4): #> Estimator QML #> Optimization method NLMINB #> Number of observations 6038 #> Number of iterations 86 #> Loglikelihood -110520.22 #> Akaike (AIC) 221142.45 #> Bayesian (BIC) 221484.45 #> #> Fit Measures for H0: #> Loglikelihood -110521 #> Akaike (AIC) 221138.58 #> Bayesian (BIC) 221460.46 #> Chi-square 1016.34 #> Degrees of Freedom (Chi-square) 87 #> P-value (Chi-square) 0.000 #> RMSEA 0.005 #> #> Comparative fit to H0 (no interaction effect) #> Loglikelihood change 1.06 #> Difference test (D) 2.13 #> Degrees of freedom (D) 3 #> P-value (D) 0.546 #> #> R-Squared: #> CAREER 0.512 #> R-Squared Null-Model (H0): #> CAREER 0.510 #> R-Squared Change: #> CAREER 0.002 #> #> Parameter Estimates: #> Coefficients unstandardized #> Information observed #> Standard errors standard #> #> Latent Variables: #> Estimate Std.Error z.value P(>|z|) #> ENJ =~ #> enjoy1 1.000 #> enjoy2 1.002 0.020 50.584 0.000 #> enjoy3 0.894 0.020 43.669 0.000 #> enjoy4 0.999 0.021 48.225 0.000 #> enjoy5 1.047 0.021 50.399 0.000 #> SC =~ #> academic1 1.000 #> academic2 1.104 0.028 38.946 0.000 #> academic3 1.235 0.030 41.720 0.000 #> academic4 1.254 0.030 41.829 0.000 #> academic5 1.113 0.029 38.649 0.000 #> academic6 1.198 0.030 40.357 0.000 #> CAREER =~ #> career1 1.000 #> career2 1.040 0.016 65.181 0.000 #> career3 0.952 0.016 57.839 0.000 #> career4 0.818 0.017 48.358 0.000 #> #> Regressions: #> Estimate Std.Error z.value P(>|z|) #> CAREER ~ #> ENJ 0.523 0.020 26.293 0.000 #> SC 0.467 0.023 19.899 0.000 #> ENJ:ENJ 0.026 0.022 1.221 0.222 #> ENJ:SC -0.040 0.046 -0.874 0.382 #> SC:SC -0.002 0.034 -0.049 0.961 #> #> Intercepts: #> Estimate Std.Error z.value P(>|z|) #> enjoy1 0.000 #> enjoy2 0.000 0.005 0.032 0.975 #> enjoy3 0.000 0.009 -0.035 0.972 #> enjoy4 0.000 #> enjoy5 0.000 0.006 0.059 0.953 #> academic1 0.000 0.007 -0.016 0.988 #> academic2 0.000 0.011 -0.014 0.989 #> academic3 0.000 0.011 -0.039 0.969 #> academic4 0.000 0.010 -0.022 0.983 #> academic5 -0.001 0.011 -0.061 0.951 #> academic6 0.001 0.011 0.064 0.949 #> career1 -0.004 0.015 -0.246 0.806 #> career2 -0.005 0.015 -0.299 0.765 #> career3 -0.004 0.015 -0.255 0.798 #> career4 -0.004 0.014 -0.269 0.788 #> CAREER 0.000 #> ENJ 0.000 #> SC 0.000 #> #> Covariances: #> Estimate Std.Error z.value P(>|z|) #> ENJ ~~ #> SC 0.218 0.009 25.477 0.000 #> #> Variances: #> Estimate Std.Error z.value P(>|z|) #> enjoy1 0.487 0.011 44.332 0.000 #> enjoy2 0.488 0.011 44.407 0.000 #> enjoy3 0.596 0.012 48.234 0.000 #> enjoy4 0.488 0.011 44.561 0.000 #> enjoy5 0.442 0.010 42.472 0.000 #> academic1 0.644 0.013 49.816 0.000 #> academic2 0.566 0.012 47.862 0.000 #> academic3 0.474 0.011 44.316 0.000 #> academic4 0.455 0.010 43.580 0.000 #> academic5 0.565 0.012 47.696 0.000 #> academic6 0.502 0.011 45.434 0.000 #> career1 0.373 0.009 40.392 0.000 #> career2 0.328 0.009 37.018 0.000 #> career3 0.436 0.010 43.274 0.000 #> career4 0.576 0.012 48.373 0.000 #> ENJ 0.500 0.017 29.546 0.000 #> SC 0.338 0.015 23.196 0.000 #> CAREER 0.302 0.010 29.710 0.000"},{"path":"/articles/observed_lms_qml.html","id":"the-latent-moderated-structural-equations-lms-and-the-quasi-maximum-likelihood-qml-approach","dir":"Articles","previous_headings":"","what":"The Latent Moderated Structural Equations (LMS) and the Quasi Maximum Likelihood (QML) Approach","title":"observed variables in the LMS- and QML approach","text":"contrast approaches, LMS QML approaches designed handle latent variables . Thus, observed variables used easily approaches. One way get around specifying observed variable latent variable single indicator. modsem() , default, constrain factor loading 1 residual variance indicator 0. difference latent variable indicator, assuming exogenous variable, zero-mean. approach works LMS QML methods cases, two exceptions.","code":""},{"path":"/articles/observed_lms_qml.html","id":"the-lms-approach","dir":"Articles","previous_headings":"The Latent Moderated Structural Equations (LMS) and the Quasi Maximum Likelihood (QML) Approach","what":"The LMS Approach","title":"observed variables in the LMS- and QML approach","text":"LMS approach, can use -mentioned method almost cases, except using observed variable moderating variable. LMS approach, typically select one variable interaction term moderator. interaction effect estimated via numerical integration n quadrature nodes moderating variable. However, process requires moderating variable error term, distribution moderating variable modeled X∼N(Az,ε)X \\sim N(Az, \\varepsilon), AzAz expected value XX quadrature point k, ε\\varepsilon error term. error term zero, probability observing given value XX computable. instances, first variable interaction term chosen moderator. example, interaction term \"X:Z\", \"X\" usually chosen moderator. Therefore, one variables latent, place latent variable first interaction term. variables observed, must specify measurement error (e.g., \"x1 ~~ 0.1 * x1\") indicator first variable interaction term.","code":"library(modsem) # Interaction effect between a latent and an observed variable m1 <- ' # Outer Model X =~ x1 # X is observed Z =~ z1 + z2 # Z is latent Y =~ y1 # Y is observed # Inner model Y ~ X + Z Y ~ Z:X ' lms1 <- modsem(m1, oneInt, method = \"lms\") # Interaction effect between two observed variables m2 <- ' # Outer Model X =~ x1 # X is observed Z =~ z1 # Z is observed Y =~ y1 # Y is observed x1 ~~ 0.1 * x1 # Specify a variance for the measurement error # Inner model Y ~ X + Z Y ~ X:Z ' lms2 <- modsem(m2, oneInt, method = \"lms\") summary(lms2) #> #> modsem (version 1.0.4): #> Estimator LMS #> Optimization method EM-NLMINB #> Number of observations 2000 #> Number of iterations 38 #> Loglikelihood -6632.86 #> Akaike (AIC) 13285.71 #> Bayesian (BIC) 13341.72 #> #> Numerical Integration: #> Points of integration (per dim) 24 #> Dimensions 1 #> Total points of integration 24 #> #> Fit Measures for H0: #> Loglikelihood -9369 #> Akaike (AIC) 18756.46 #> Bayesian (BIC) 18806.87 #> Chi-square 0.00 #> Degrees of Freedom (Chi-square) 0 #> P-value (Chi-square) 0.000 #> RMSEA 0.000 #> #> Comparative fit to H0 (no interaction effect) #> Loglikelihood change 2736.38 #> Difference test (D) 5472.75 #> Degrees of freedom (D) 1 #> P-value (D) 0.000 #> #> R-Squared: #> Y 0.494 #> R-Squared Null-Model (H0): #> Y 0.335 #> R-Squared Change: #> Y 0.160 #> #> Parameter Estimates: #> Coefficients unstandardized #> Information expected #> Standard errors standard #> #> Latent Variables: #> Estimate Std.Error z.value P(>|z|) #> X =~ #> x1 1.000 #> Z =~ #> z1 1.000 #> Y =~ #> y1 1.000 #> #> Regressions: #> Estimate Std.Error z.value P(>|z|) #> Y ~ #> X 0.663 0.034 19.76 0.000 #> Z 0.482 0.032 14.85 0.000 #> X:Z 0.586 0.025 23.25 0.000 #> #> Intercepts: #> Estimate Std.Error z.value P(>|z|) #> x1 1.023 0.028 36.60 0.000 #> z1 1.011 0.028 36.56 0.000 #> y1 1.057 0.026 41.45 0.000 #> Y 0.000 #> X 0.000 #> Z 0.000 #> #> Covariances: #> Estimate Std.Error z.value P(>|z|) #> X ~~ #> Z 0.208 0.029 7.09 0.000 #> #> Variances: #> Estimate Std.Error z.value P(>|z|) #> x1 0.100 #> z1 0.000 #> y1 0.000 #> X 1.028 0.037 27.74 0.000 #> Z 1.184 0.047 25.23 0.000 #> Y 1.323 0.046 28.89 0.000"},{"path":"/articles/observed_lms_qml.html","id":"the-qml-approach","dir":"Articles","previous_headings":"The Latent Moderated Structural Equations (LMS) and the Quasi Maximum Likelihood (QML) Approach","what":"The QML Approach","title":"observed variables in the LMS- and QML approach","text":"estimation process QML approach differs LMS approach, encounter issue LMS approach. Therefore, don’t need specify measurement error moderating variables.","code":"m3 <- ' # Outer Model X =~ x1 # X is observed Z =~ z1 # Z is observed Y =~ y1 # Y is observed # Inner model Y ~ X + Z Y ~ X:Z ' qml3 <- modsem(m3, oneInt, method = \"qml\") summary(qml3) #> #> modsem (version 1.0.4): #> Estimator QML #> Optimization method NLMINB #> Number of observations 2000 #> Number of iterations 11 #> Loglikelihood -9117.07 #> Akaike (AIC) 18254.13 #> Bayesian (BIC) 18310.14 #> #> Fit Measures for H0: #> Loglikelihood -9369 #> Akaike (AIC) 18756.46 #> Bayesian (BIC) 18806.87 #> Chi-square 0.00 #> Degrees of Freedom (Chi-square) 0 #> P-value (Chi-square) 0.000 #> RMSEA 0.000 #> #> Comparative fit to H0 (no interaction effect) #> Loglikelihood change 252.17 #> Difference test (D) 504.33 #> Degrees of freedom (D) 1 #> P-value (D) 0.000 #> #> R-Squared: #> Y 0.470 #> R-Squared Null-Model (H0): #> Y 0.320 #> R-Squared Change: #> Y 0.150 #> #> Parameter Estimates: #> Coefficients unstandardized #> Information observed #> Standard errors standard #> #> Latent Variables: #> Estimate Std.Error z.value P(>|z|) #> X =~ #> x1 1.000 #> Z =~ #> z1 1.000 #> Y =~ #> y1 1.000 #> #> Regressions: #> Estimate Std.Error z.value P(>|z|) #> Y ~ #> X 0.605 0.028 21.26 0.000 #> Z 0.490 0.028 17.55 0.000 #> X:Z 0.544 0.023 23.95 0.000 #> #> Intercepts: #> Estimate Std.Error z.value P(>|z|) #> x1 1.023 0.024 42.83 0.000 #> z1 1.011 0.024 41.56 0.000 #> y1 1.066 0.034 31.64 0.000 #> Y 0.000 #> X 0.000 #> Z 0.000 #> #> Covariances: #> Estimate Std.Error z.value P(>|z|) #> X ~~ #> Z 0.210 0.026 7.95 0.000 #> #> Variances: #> Estimate Std.Error z.value P(>|z|) #> x1 0.000 #> z1 0.000 #> y1 0.000 #> X 1.141 0.036 31.62 0.000 #> Z 1.184 0.037 31.62 0.000 #> Y 1.399 0.044 31.62 0.000"},{"path":"/articles/plot_interactions.html","id":"plotting-interaction-effects","dir":"Articles","previous_headings":"","what":"Plotting Interaction Effects","title":"plotting interaction effects","text":"Interaction effects can plotted using included plot_interaction() function. function takes fitted model object names two variables interacting. function plot interaction effect two variables, : x-variable plotted x-axis. y-variable plotted y-axis. z-variable determines points effect x y plotted. function also plot 95% confidence interval interaction effect. simple example using double-centering approach: different example using lms approach theory planned behavior model:","code":"m1 <- \" # Outer Model X =~ x1 X =~ x2 + x3 Z =~ z1 + z2 + z3 Y =~ y1 + y2 + y3 # Inner Model Y ~ X + Z + X:Z \" est1 <- modsem(m1, data = oneInt) plot_interaction(\"X\", \"Z\", \"Y\", \"X:Z\", vals_z = -3:3, range_y = c(-0.2, 0), model = est1) tpb <- \" # Outer Model (Based on Hagger et al., 2007) ATT =~ att1 + att2 + att3 + att4 + att5 SN =~ sn1 + sn2 PBC =~ pbc1 + pbc2 + pbc3 INT =~ int1 + int2 + int3 BEH =~ b1 + b2 # Inner Model (Based on Steinmetz et al., 2011) INT ~ ATT + SN + PBC BEH ~ INT + PBC BEH ~ PBC:INT \" est2 <- modsem(tpb, TPB, method = \"lms\") #> Warning: It is recommended that you have at least 32 nodes for interaction #> effects between exogenous and endogenous variables in the lms approach 'nodes = #> 24' plot_interaction(x = \"INT\", z = \"PBC\", y = \"BEH\", xz = \"PBC:INT\", vals_z = c(-0.5, 0.5), model = est2)"},{"path":"/articles/plot_interactions.html","id":"plotting-johnson-neyman-regions","dir":"Articles","previous_headings":"","what":"Plotting Johnson-Neyman Regions","title":"plotting interaction effects","text":"plot_jn() function can used plot Johnson-Neyman regions given interaction effect. function takes fitted model object, names two variables interacting, name interaction effect. function plot Johnson-Neyman regions interaction effect. plot_jn() function also plot 95% confidence interval interaction effect. x name x-variable, z name z-variable, y name y-variable. model fitted model object. argument min_z max_z used specify range values moderating variable. example using ca approach Holzinger-Swineford (1939) dataset: another example using qml approach theory planned behavior model:","code":"m1 <- ' visual =~ x1 + x2 + x3 textual =~ x4 + x5 + x6 speed =~ x7 + x8 + x9 visual ~ speed + textual + speed:textual ' est <- modsem(m1, data = lavaan::HolzingerSwineford1939, method = \"ca\") plot_jn(x = \"speed\", z = \"textual\", y = \"visual\", model = est, max_z = 6) tpb <- \" # Outer Model (Based on Hagger et al., 2007) ATT =~ att1 + att2 + att3 + att4 + att5 SN =~ sn1 + sn2 PBC =~ pbc1 + pbc2 + pbc3 INT =~ int1 + int2 + int3 BEH =~ b1 + b2 # Inner Model (Based on Steinmetz et al., 2011) INT ~ ATT + SN + PBC BEH ~ INT + PBC BEH ~ PBC:INT \" est2 <- modsem(tpb, TPB, method = \"qml\") plot_jn(x = \"INT\", z = \"PBC\", y = \"BEH\", model = est2, min_z = -1.5, max_z = -0.5)"},{"path":"/articles/quadratic.html","id":"quadratic-effects-and-interaction-effects","dir":"Articles","previous_headings":"","what":"Quadratic Effects and Interaction Effects","title":"quadratic effects","text":"Quadratic effects essentially special case interaction effects—variable interacts . , methods modsem can also used estimate quadratic effects. simple example using LMS approach. example, simple model two quadratic effects one interaction effect. estimate model using QML double-centering approaches, data subset PISA 2006 dataset. Note: approaches (e.g., LMS constrained methods) can also used may slower depending number interaction effects, especially LMS constrained approaches.","code":"library(modsem) m1 <- ' # Outer Model X =~ x1 + x2 + x3 Y =~ y1 + y2 + y3 Z =~ z1 + z2 + z3 # Inner model Y ~ X + Z + Z:X + X:X ' est1Lms <- modsem(m1, data = oneInt, method = \"lms\") summary(est1Lms) #> #> modsem (version 1.0.4): #> Estimator LMS #> Optimization method EM-NLMINB #> Number of observations 2000 #> Number of iterations 115 #> Loglikelihood -14687.59 #> Akaike (AIC) 29439.17 #> Bayesian (BIC) 29618.4 #> #> Numerical Integration: #> Points of integration (per dim) 24 #> Dimensions 1 #> Total points of integration 24 #> #> Fit Measures for H0: #> Loglikelihood -17832 #> Akaike (AIC) 35723.75 #> Bayesian (BIC) 35891.78 #> Chi-square 17.52 #> Degrees of Freedom (Chi-square) 24 #> P-value (Chi-square) 0.826 #> RMSEA 0.000 #> #> Comparative fit to H0 (no interaction effect) #> Loglikelihood change 3144.29 #> Difference test (D) 6288.58 #> Degrees of freedom (D) 2 #> P-value (D) 0.000 #> #> R-Squared: #> Y 0.595 #> R-Squared Null-Model (H0): #> Y 0.395 #> R-Squared Change: #> Y 0.200 #> #> Parameter Estimates: #> Coefficients unstandardized #> Information expected #> Standard errors standard #> #> Latent Variables: #> Estimate Std.Error z.value P(>|z|) #> X =~ #> x1 1.000 #> x2 0.804 0.015 52.327 0.000 #> x3 0.915 0.014 63.559 0.000 #> Z =~ #> z1 1.000 #> z2 0.810 0.014 59.634 0.000 #> z3 0.881 0.014 61.614 0.000 #> Y =~ #> y1 1.000 #> y2 0.798 0.012 66.606 0.000 #> y3 0.899 0.008 108.526 0.000 #> #> Regressions: #> Estimate Std.Error z.value P(>|z|) #> Y ~ #> X 0.672 0.040 16.768 0.000 #> Z 0.569 0.030 19.134 0.000 #> X:X -0.007 0.026 -0.249 0.803 #> X:Z 0.715 0.034 21.210 0.000 #> #> Intercepts: #> Estimate Std.Error z.value P(>|z|) #> x1 1.022 0.023 44.828 0.000 #> x2 1.215 0.021 57.737 0.000 #> x3 0.919 0.020 45.714 0.000 #> z1 1.012 0.033 30.780 0.000 #> z2 1.206 0.027 44.861 0.000 #> z3 0.916 0.030 30.400 0.000 #> y1 1.044 0.041 25.480 0.000 #> y2 1.225 0.030 41.401 0.000 #> y3 0.960 0.037 25.942 0.000 #> Y 0.000 #> X 0.000 #> Z 0.000 #> #> Covariances: #> Estimate Std.Error z.value P(>|z|) #> X ~~ #> Z 0.199 0.029 6.931 0.000 #> #> Variances: #> Estimate Std.Error z.value P(>|z|) #> x1 0.160 0.008 18.897 0.000 #> x2 0.163 0.008 21.142 0.000 #> x3 0.165 0.008 20.508 0.000 #> z1 0.167 0.012 14.015 0.000 #> z2 0.160 0.009 16.948 0.000 #> z3 0.158 0.009 18.302 0.000 #> y1 0.160 0.010 15.274 0.000 #> y2 0.154 0.007 20.884 0.000 #> y3 0.163 0.008 19.504 0.000 #> X 0.972 0.042 23.289 0.000 #> Z 1.017 0.049 20.703 0.000 #> Y 0.983 0.047 20.796 0.000 m2 <- ' ENJ =~ enjoy1 + enjoy2 + enjoy3 + enjoy4 + enjoy5 CAREER =~ career1 + career2 + career3 + career4 SC =~ academic1 + academic2 + academic3 + academic4 + academic5 + academic6 CAREER ~ ENJ + SC + ENJ:ENJ + SC:SC + ENJ:SC ' est2Dblcent <- modsem(m2, data = jordan) est2Qml <- modsem(m2, data = jordan, method = \"qml\") #> Warning: SE's for some coefficients could not be computed. summary(est2Qml) #> #> modsem (version 1.0.4): #> Estimator QML #> Optimization method NLMINB #> Number of observations 6038 #> Number of iterations 86 #> Loglikelihood -110520.22 #> Akaike (AIC) 221142.45 #> Bayesian (BIC) 221484.45 #> #> Fit Measures for H0: #> Loglikelihood -110521 #> Akaike (AIC) 221138.58 #> Bayesian (BIC) 221460.46 #> Chi-square 1016.34 #> Degrees of Freedom (Chi-square) 87 #> P-value (Chi-square) 0.000 #> RMSEA 0.005 #> #> Comparative fit to H0 (no interaction effect) #> Loglikelihood change 1.06 #> Difference test (D) 2.13 #> Degrees of freedom (D) 3 #> P-value (D) 0.546 #> #> R-Squared: #> CAREER 0.512 #> R-Squared Null-Model (H0): #> CAREER 0.510 #> R-Squared Change: #> CAREER 0.002 #> #> Parameter Estimates: #> Coefficients unstandardized #> Information observed #> Standard errors standard #> #> Latent Variables: #> Estimate Std.Error z.value P(>|z|) #> ENJ =~ #> enjoy1 1.000 #> enjoy2 1.002 0.020 50.584 0.000 #> enjoy3 0.894 0.020 43.669 0.000 #> enjoy4 0.999 0.021 48.225 0.000 #> enjoy5 1.047 0.021 50.399 0.000 #> SC =~ #> academic1 1.000 #> academic2 1.104 0.028 38.946 0.000 #> academic3 1.235 0.030 41.720 0.000 #> academic4 1.254 0.030 41.829 0.000 #> academic5 1.113 0.029 38.649 0.000 #> academic6 1.198 0.030 40.357 0.000 #> CAREER =~ #> career1 1.000 #> career2 1.040 0.016 65.181 0.000 #> career3 0.952 0.016 57.839 0.000 #> career4 0.818 0.017 48.358 0.000 #> #> Regressions: #> Estimate Std.Error z.value P(>|z|) #> CAREER ~ #> ENJ 0.523 0.020 26.293 0.000 #> SC 0.467 0.023 19.899 0.000 #> ENJ:ENJ 0.026 0.022 1.221 0.222 #> ENJ:SC -0.040 0.046 -0.874 0.382 #> SC:SC -0.002 0.034 -0.049 0.961 #> #> Intercepts: #> Estimate Std.Error z.value P(>|z|) #> enjoy1 0.000 #> enjoy2 0.000 0.005 0.032 0.975 #> enjoy3 0.000 0.009 -0.035 0.972 #> enjoy4 0.000 #> enjoy5 0.000 0.006 0.059 0.953 #> academic1 0.000 0.007 -0.016 0.988 #> academic2 0.000 0.011 -0.014 0.989 #> academic3 0.000 0.011 -0.039 0.969 #> academic4 0.000 0.010 -0.022 0.983 #> academic5 -0.001 0.011 -0.061 0.951 #> academic6 0.001 0.011 0.064 0.949 #> career1 -0.004 0.015 -0.246 0.806 #> career2 -0.005 0.015 -0.299 0.765 #> career3 -0.004 0.015 -0.255 0.798 #> career4 -0.004 0.014 -0.269 0.788 #> CAREER 0.000 #> ENJ 0.000 #> SC 0.000 #> #> Covariances: #> Estimate Std.Error z.value P(>|z|) #> ENJ ~~ #> SC 0.218 0.009 25.477 0.000 #> #> Variances: #> Estimate Std.Error z.value P(>|z|) #> enjoy1 0.487 0.011 44.332 0.000 #> enjoy2 0.488 0.011 44.407 0.000 #> enjoy3 0.596 0.012 48.234 0.000 #> enjoy4 0.488 0.011 44.561 0.000 #> enjoy5 0.442 0.010 42.472 0.000 #> academic1 0.644 0.013 49.816 0.000 #> academic2 0.566 0.012 47.862 0.000 #> academic3 0.474 0.011 44.316 0.000 #> academic4 0.455 0.010 43.580 0.000 #> academic5 0.565 0.012 47.696 0.000 #> academic6 0.502 0.011 45.434 0.000 #> career1 0.373 0.009 40.392 0.000 #> career2 0.328 0.009 37.018 0.000 #> career3 0.436 0.010 43.274 0.000 #> career4 0.576 0.012 48.373 0.000 #> ENJ 0.500 0.017 29.546 0.000 #> SC 0.338 0.015 23.196 0.000 #> CAREER 0.302 0.010 29.710 0.000"},{"path":"/authors.html","id":null,"dir":"","previous_headings":"","what":"Authors","title":"Authors and Citation","text":"Kjell Solem Slupphaug. Author, maintainer. Mehmet Mehmetoglu. Contributor. Matthias Mittner. Contributor.","code":""},{"path":"/authors.html","id":"citation","dir":"","previous_headings":"","what":"Citation","title":"Authors and Citation","text":"Slupphaug, K. S., Mehmetoglu, M., & Mittner, M. (2024). modsem: R package estimating latent interactions quadratic effects. Structural Equation Modeling: Multidisciplinary Journal https://doi.org/10.1080/10705511.2024.2417409","code":"@Article{, title = {modsem: An R package for estimating latent interactions and quadratic effects}, author = {Kjell Solem Slupphaug and Mehmet Mehmetoglu and Matthias Mittner}, journal = {Structural Equation Modeling: A Multidisciplinary Journal}, year = {2024}, doi = {10.1080/10705511.2024.2417409}, }"},{"path":[]},{"path":"/index.html","id":"to-install","dir":"","previous_headings":"","what":"To Install","title":"Latent Interaction (and Moderation) Analysis in Structural Equation Models (SEM)","text":"","code":"# From CRAN install.packages(\"modsem\") # Latest version from GitHub install.packages(\"devtools\") devtools::install_github(\"kss2k/modsem\", build_vignettes = TRUE)"},{"path":"/index.html","id":"methodsapproaches","dir":"","previous_headings":"","what":"Methods/Approaches","title":"Latent Interaction (and Moderation) Analysis in Structural Equation Models (SEM)","text":"number approaches estimating interaction effects SEM. modsem(), method = \"method\" argument allows choose use. Different approaches can categorized two groups: Product Indicator (PI) Distribution Analytic (DA) approaches.","code":""},{"path":"/index.html","id":"product-indicator-pi-approaches","dir":"","previous_headings":"","what":"Product Indicator (PI) Approaches:","title":"Latent Interaction (and Moderation) Analysis in Structural Equation Models (SEM)","text":"Note constraints can become quite complicated complex models, particularly interaction including enodgenous variables. method can therefore quite slow. \"uca\" = unconstrained approach (Marsh, 2004) \"rca\" = residual centering approach (Little et al., 2006) default \"pind\" = basic product indicator approach (recommended)","code":""},{"path":"/index.html","id":"distribution-analytic-da-approaches","dir":"","previous_headings":"","what":"Distribution Analytic (DA) Approaches","title":"Latent Interaction (and Moderation) Analysis in Structural Equation Models (SEM)","text":"\"lms\" = Latent Moderated Structural equations (LMS) approach, see vignette \"qml\" = Quasi Maximum Likelihood (QML) approach, see vignette estimates model Mplus, installed","code":""},{"path":[]},{"path":"/index.html","id":"elementary-interaction-model-kenny--judd-1984-jaccard--wan-1995","dir":"","previous_headings":"","what":"Elementary Interaction Model (Kenny & Judd, 1984; Jaccard & Wan, 1995)","title":"Latent Interaction (and Moderation) Analysis in Structural Equation Models (SEM)","text":"","code":"library(modsem) m1 <- ' # Outer Model X =~ x1 + x2 +x3 Y =~ y1 + y2 + y3 Z =~ z1 + z2 + z3 # Inner model Y ~ X + Z + X:Z ' # Double centering approach est1_dca <- modsem(m1, oneInt) summary(est1_dca) # Constrained approach est1_ca <- modsem(m1, oneInt, method = \"ca\") summary(est1_ca) # QML approach est1_qml <- modsem(m1, oneInt, method = \"qml\") summary(est1_qml, standardized = TRUE) # LMS approach est1_lms <- modsem(m1, oneInt, method = \"lms\") summary(est1_lms)"},{"path":"/index.html","id":"theory-of-planned-behavior","dir":"","previous_headings":"","what":"Theory Of Planned Behavior","title":"Latent Interaction (and Moderation) Analysis in Structural Equation Models (SEM)","text":"","code":"tpb <- \" # Outer Model (Based on Hagger et al., 2007) ATT =~ att1 + att2 + att3 + att4 + att5 SN =~ sn1 + sn2 PBC =~ pbc1 + pbc2 + pbc3 INT =~ int1 + int2 + int3 BEH =~ b1 + b2 # Inner Model (Based on Steinmetz et al., 2011) INT ~ ATT + SN + PBC BEH ~ INT + PBC BEH ~ PBC:INT \" # double centering approach est_tpb_dca <- modsem(tpb, data = TPB, method = \"dblcent\") summary(est_tpb_dca) # Constrained approach using Wrigths path tracing rules for generating # the appropriate constraints est_tpb_ca <- modsem(tpb, data = TPB, method = \"ca\") summary(est_tpb_ca) # LMS approach est_tpb_lms <- modsem(tpb, data = TPB, method = \"lms\") summary(est_tpb_lms, standardized = TRUE) # QML approach est_tpb_qml <- modsem(tpb, data = TPB, method = \"qml\") summary(est_tpb_qml, standardized = TRUE)"},{"path":"/index.html","id":"interactions-between-two-observed-variables","dir":"","previous_headings":"","what":"Interactions between two observed variables","title":"Latent Interaction (and Moderation) Analysis in Structural Equation Models (SEM)","text":"","code":"est2 <- modsem('y1 ~ x1 + z1 + x1:z1', data = oneInt, method = \"pind\") summary(est2)"},{"path":"/index.html","id":"interaction-between-an-obsereved-and-a-latent-variable","dir":"","previous_headings":"","what":"Interaction between an obsereved and a latent variable","title":"Latent Interaction (and Moderation) Analysis in Structural Equation Models (SEM)","text":"","code":"m3 <- ' # Outer Model X =~ x1 + x2 +x3 Y =~ y1 + y2 + y3 # Inner model Y ~ X + z1 + X:z1 ' est3 <- modsem(m3, oneInt, method = \"pind\") summary(est3)"},{"path":"/reference/TPB.html","id":null,"dir":"Reference","previous_headings":"","what":"TPB — TPB","title":"TPB — TPB","text":"simulated dataset based Theory Planned Behaviour","code":""},{"path":"/reference/TPB.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"TPB — TPB","text":"","code":"tpb <- \" # Outer Model (Based on Hagger et al., 2007) ATT =~ att1 + att2 + att3 + att4 + att5 SN =~ sn1 + sn2 PBC =~ pbc1 + pbc2 + pbc3 INT =~ int1 + int2 + int3 BEH =~ b1 + b2 # Inner Model (Based on Steinmetz et al., 2011) INT ~ ATT + SN + PBC BEH ~ INT + PBC + INT:PBC \" est <- modsem(tpb, data = TPB)"},{"path":"/reference/TPB_1SO.html","id":null,"dir":"Reference","previous_headings":"","what":"TPB_1SO — TPB_1SO","title":"TPB_1SO — TPB_1SO","text":"simulated dataset based Theory Planned Behaviour, INT higher order construct ATT, SN, PBC.","code":""},{"path":"/reference/TPB_1SO.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"TPB_1SO — TPB_1SO","text":"","code":"tpb <- ' # First order constructs ATT =~ att1 + att2 + att3 SN =~ sn1 + sn2 + sn3 PBC =~ pbc1 + pbc2 + pbc3 BEH =~ b1 + b2 # Higher order constructs INT =~ ATT + PBC + SN # Higher order interaction INTxPBC =~ ATT:PBC + SN:PBC + PBC:PBC # Structural model BEH ~ PBC + INT + INTxPBC ' if (FALSE) { # \\dontrun{ est <- modsem(tpb, data = TPB_2SO, method = \"ca\") summary(est) } # }"},{"path":"/reference/TPB_2SO.html","id":null,"dir":"Reference","previous_headings":"","what":"TPB_2SO — TPB_2SO","title":"TPB_2SO — TPB_2SO","text":"simulated dataset based Theory Planned Behaviour, INT higher order construct ATT SN, PBC higher order construct PC PB.","code":""},{"path":"/reference/TPB_2SO.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"TPB_2SO — TPB_2SO","text":"","code":"tpb <- \" # First order constructs ATT =~ att1 + att2 + att3 SN =~ sn1 + sn2 + sn3 PB =~ pb1 + pb2 + pb3 PC =~ pc1 + pc2 + pc3 BEH =~ b1 + b2 # Higher order constructs INT =~ ATT + SN PBC =~ PC + PB # Higher order interaction INTxPBC =~ ATT:PC + ATT:PB + SN:PC + SN:PB # Structural model BEH ~ PBC + INT + INTxPBC \" if (FALSE) { # \\dontrun{ est <- modsem(tpb, data = TPB_2SO, method = \"ca\") summary(est) } # }"},{"path":"/reference/TPB_UK.html","id":null,"dir":"Reference","previous_headings":"","what":"TPB_UK — TPB_UK","title":"TPB_UK — TPB_UK","text":"dataset based Theory Planned Behaviour UK sample. 4 variables high communality selected latent variable (ATT, SN, PBC, INT, BEH), two time points (t1 t2).","code":""},{"path":"/reference/TPB_UK.html","id":"source","dir":"Reference","previous_headings":"","what":"Source","title":"TPB_UK — TPB_UK","text":"Gathered replciation study original Hagger et al. (2023). Obtained https://doi.org/10.23668/psycharchives.12187","code":""},{"path":"/reference/TPB_UK.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"TPB_UK — TPB_UK","text":"","code":"tpb_uk <- \" # Outer Model (Based on Hagger et al., 2007) ATT =~ att3 + att2 + att1 + att4 SN =~ sn4 + sn2 + sn3 + sn1 PBC =~ pbc2 + pbc1 + pbc3 + pbc4 INT =~ int2 + int1 + int3 + int4 BEH =~ beh3 + beh2 + beh1 + beh4 # Inner Model (Based on Steinmetz et al., 2011) # Causal Relationsships INT ~ ATT + SN + PBC BEH ~ INT + PBC BEH ~ INT:PBC \" est <- modsem(tpb_uk, data = TPB_UK)"},{"path":"/reference/coef_modsem_da.html","id":null,"dir":"Reference","previous_headings":"","what":"Wrapper for coef — coef_modsem_da","title":"Wrapper for coef — coef_modsem_da","text":"wrapper coef, used modsem::coef_modsem_da, since coef namespace modsem, stats","code":""},{"path":"/reference/coef_modsem_da.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Wrapper for coef — coef_modsem_da","text":"","code":"coef_modsem_da(object, ...)"},{"path":"/reference/coef_modsem_da.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Wrapper for coef — coef_modsem_da","text":"object fittet model inspect ... additional arguments","code":""},{"path":"/reference/compare_fit.html","id":null,"dir":"Reference","previous_headings":"","what":"compare model fit for qml and lms models — compare_fit","title":"compare model fit for qml and lms models — compare_fit","text":"Compare fit two models using likelihood ratio test. `estH0` representing null hypothesis model, `estH1` alternative hypothesis model. Importantly, function assumes `estH0` free parameters (.e., degrees freedom) `estH1`. alternative hypothesis model","code":""},{"path":"/reference/compare_fit.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"compare model fit for qml and lms models — compare_fit","text":"","code":"compare_fit(estH0, estH1)"},{"path":"/reference/compare_fit.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"compare model fit for qml and lms models — compare_fit","text":"estH0 object class `modsem_da` representing null hypothesis model estH1 object class `modsem_da` representing ","code":""},{"path":"/reference/compare_fit.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"compare model fit for qml and lms models — compare_fit","text":"","code":"if (FALSE) { # \\dontrun{ H0 <- \" # Outer Model X =~ x1 + x2 + x3 Y =~ y1 + y2 + y3 Z =~ z1 + z2 + z3 # Inner model Y ~ X + Z \" estH0 <- modsem(m1, oneInt, \"lms\") H1 <- \" # Outer Model X =~ x1 + x2 + x3 Y =~ y1 + y2 + y3 Z =~ z1 + z2 + z3 # Inner model Y ~ X + Z + X:Z \" estH1 <- modsem(m1, oneInt, \"lms\") compare_fit(estH0, estH1) } # }"},{"path":"/reference/default_settings_da.html","id":null,"dir":"Reference","previous_headings":"","what":"default arguments fro LMS and QML approach — default_settings_da","title":"default arguments fro LMS and QML approach — default_settings_da","text":"function returns default settings LMS QML approach.","code":""},{"path":"/reference/default_settings_da.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"default arguments fro LMS and QML approach — default_settings_da","text":"","code":"default_settings_da(method = c(\"lms\", \"qml\"))"},{"path":"/reference/default_settings_da.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"default arguments fro LMS and QML approach — default_settings_da","text":"method method get settings ","code":""},{"path":"/reference/default_settings_da.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"default arguments fro LMS and QML approach — default_settings_da","text":"list","code":""},{"path":"/reference/default_settings_da.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"default arguments fro LMS and QML approach — default_settings_da","text":"","code":"library(modsem) default_settings_da() #> $lms #> $lms$verbose #> [1] FALSE #> #> $lms$optimize #> [1] TRUE #> #> $lms$nodes #> [1] 24 #> #> $lms$convergence #> [1] 1e-04 #> #> $lms$optimizer #> [1] \"nlminb\" #> #> $lms$center.data #> [1] FALSE #> #> $lms$standardize.data #> [1] FALSE #> #> $lms$standardize.out #> [1] FALSE #> #> $lms$standardize #> [1] FALSE #> #> $lms$mean.observed #> [1] TRUE #> #> $lms$double #> [1] FALSE #> #> $lms$calc.se #> [1] TRUE #> #> $lms$FIM #> [1] \"expected\" #> #> $lms$OFIM.hessian #> [1] TRUE #> #> $lms$EFIM.S #> [1] 100 #> #> $lms$EFIM.parametric #> [1] TRUE #> #> $lms$robust.se #> [1] FALSE #> #> $lms$max.iter #> [1] 500 #> #> $lms$max.step #> [1] 1 #> #> $lms$fix.estep #> [1] TRUE #> #> $lms$epsilon #> [1] 1e-04 #> #> $lms$quad.range #> [1] Inf #> #> $lms$n.threads #> NULL #> #> #> $qml #> $qml$verbose #> [1] FALSE #> #> $qml$optimize #> [1] TRUE #> #> $qml$nodes #> [1] 0 #> #> $qml$convergence #> [1] 1e-06 #> #> $qml$optimizer #> [1] \"nlminb\" #> #> $qml$center.data #> [1] FALSE #> #> $qml$standardize #> [1] FALSE #> #> $qml$standardize.data #> [1] FALSE #> #> $qml$standardize.out #> [1] FALSE #> #> $qml$mean.observed #> [1] TRUE #> #> $qml$double #> [1] FALSE #> #> $qml$calc.se #> [1] TRUE #> #> $qml$FIM #> [1] \"observed\" #> #> $qml$OFIM.hessian #> [1] TRUE #> #> $qml$EFIM.S #> [1] 100 #> #> $qml$EFIM.parametric #> [1] TRUE #> #> $qml$robust.se #> [1] FALSE #> #> $qml$max.iter #> [1] 500 #> #> $qml$max.step #> NULL #> #> $qml$fix.estep #> NULL #> #> $qml$epsilon #> [1] 1e-08 #> #> $qml$quad.range #> [1] Inf #> #> $qml$n.threads #> NULL #> #>"},{"path":"/reference/default_settings_pi.html","id":null,"dir":"Reference","previous_headings":"","what":"default arguments for product indicator approaches — default_settings_pi","title":"default arguments for product indicator approaches — default_settings_pi","text":"function returns default settings product indicator approaches","code":""},{"path":"/reference/default_settings_pi.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"default arguments for product indicator approaches — default_settings_pi","text":"","code":"default_settings_pi(method = c(\"rca\", \"uca\", \"pind\", \"dblcent\", \"ca\"))"},{"path":"/reference/default_settings_pi.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"default arguments for product indicator approaches — default_settings_pi","text":"method method get settings ","code":""},{"path":"/reference/default_settings_pi.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"default arguments for product indicator approaches — default_settings_pi","text":"list","code":""},{"path":"/reference/default_settings_pi.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"default arguments for product indicator approaches — default_settings_pi","text":"","code":"library(modsem) default_settings_pi() #> $rca #> $rca$center.before #> [1] FALSE #> #> $rca$center.after #> [1] FALSE #> #> $rca$residuals.prods #> [1] TRUE #> #> $rca$residual.cov.syntax #> [1] TRUE #> #> $rca$constrained.prod.mean #> [1] FALSE #> #> $rca$constrained.loadings #> [1] FALSE #> #> $rca$constrained.var #> [1] FALSE #> #> $rca$constrained.res.cov.method #> [1] \"simple\" #> #> $rca$match #> [1] FALSE #> #> #> $uca #> $uca$center.before #> [1] TRUE #> #> $uca$center.after #> [1] FALSE #> #> $uca$residuals.prods #> [1] FALSE #> #> $uca$residual.cov.syntax #> [1] TRUE #> #> $uca$constrained.prod.mean #> [1] TRUE #> #> $uca$constrained.loadings #> [1] FALSE #> #> $uca$constrained.var #> [1] FALSE #> #> $uca$constrained.res.cov.method #> [1] \"simple\" #> #> $uca$match #> [1] FALSE #> #> #> $pind #> $pind$center.before #> [1] FALSE #> #> $pind$center.after #> [1] FALSE #> #> $pind$residuals.prods #> [1] FALSE #> #> $pind$residual.cov.syntax #> [1] FALSE #> #> $pind$constrained.prod.mean #> [1] FALSE #> #> $pind$constrained.loadings #> [1] FALSE #> #> $pind$constrained.var #> [1] FALSE #> #> $pind$constrained.res.cov.method #> [1] \"simple\" #> #> $pind$match #> [1] FALSE #> #> #> $dblcent #> $dblcent$center.before #> [1] TRUE #> #> $dblcent$center.after #> [1] TRUE #> #> $dblcent$residuals.prods #> [1] FALSE #> #> $dblcent$residual.cov.syntax #> [1] TRUE #> #> $dblcent$constrained.prod.mean #> [1] FALSE #> #> $dblcent$constrained.loadings #> [1] FALSE #> #> $dblcent$constrained.var #> [1] FALSE #> #> $dblcent$constrained.res.cov.method #> [1] \"simple\" #> #> $dblcent$match #> [1] FALSE #> #> #> $ca #> $ca$center.before #> [1] TRUE #> #> $ca$center.after #> [1] FALSE #> #> $ca$residuals.prods #> [1] FALSE #> #> $ca$residual.cov.syntax #> [1] TRUE #> #> $ca$constrained.prod.mean #> [1] TRUE #> #> $ca$constrained.loadings #> [1] TRUE #> #> $ca$constrained.var #> [1] TRUE #> #> $ca$constrained.res.cov.method #> [1] \"ca\" #> #> $ca$match #> [1] TRUE #> #>"},{"path":"/reference/extract_lavaan.html","id":null,"dir":"Reference","previous_headings":"","what":"extract lavaan object from modsem object estimated using product indicators — extract_lavaan","title":"extract lavaan object from modsem object estimated using product indicators — extract_lavaan","text":"extract lavaan object modsem object estimated using product indicators","code":""},{"path":"/reference/extract_lavaan.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"extract lavaan object from modsem object estimated using product indicators — extract_lavaan","text":"","code":"extract_lavaan(object)"},{"path":"/reference/extract_lavaan.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"extract lavaan object from modsem object estimated using product indicators — extract_lavaan","text":"object modsem object","code":""},{"path":"/reference/extract_lavaan.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"extract lavaan object from modsem object estimated using product indicators — extract_lavaan","text":"lavaan object","code":""},{"path":"/reference/extract_lavaan.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"extract lavaan object from modsem object estimated using product indicators — extract_lavaan","text":"","code":"library(modsem) m1 <- ' # Outer Model X =~ x1 + x2 + x3 Y =~ y1 + y2 + y3 Z =~ z1 + z2 + z3 # Inner model Y ~ X + Z + X:Z ' est <- modsem_pi(m1, oneInt) lav_est <- extract_lavaan(est)"},{"path":"/reference/fit_modsem_da.html","id":null,"dir":"Reference","previous_headings":"","what":"Fit measures for QML and LMS models — fit_modsem_da","title":"Fit measures for QML and LMS models — fit_modsem_da","text":"Calculates chi-sq test p-value, well RMSEA LMS QML models. Note Chi-Square based fit measures calculated baseline model, .e., model without interaction effect","code":""},{"path":"/reference/fit_modsem_da.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Fit measures for QML and LMS models — fit_modsem_da","text":"","code":"fit_modsem_da(model, chisq = TRUE)"},{"path":"/reference/fit_modsem_da.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Fit measures for QML and LMS models — fit_modsem_da","text":"model fitted model. Thereafter, can use 'compare_fit()' assess comparative fit models. interaction effect makes model better, e.g., RMSEA good baseline model, interaction model likely good RMSEA well. chisq Chi-Square based fit-measures calculated?","code":""},{"path":"/reference/get_pi_data.html","id":null,"dir":"Reference","previous_headings":"","what":"Get data with product indicators for different approaches — get_pi_data","title":"Get data with product indicators for different approaches — get_pi_data","text":"get_pi_syntax() function creating lavaan syntax used estimating latent interaction models using one product indicators lavaan.","code":""},{"path":"/reference/get_pi_data.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get data with product indicators for different approaches — get_pi_data","text":"","code":"get_pi_data(model.syntax, data, method = \"dblcent\", match = FALSE, ...)"},{"path":"/reference/get_pi_data.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get data with product indicators for different approaches — get_pi_data","text":"model.syntax lavaan syntax data data create product indicators method method use: \"rca\" = residual centering approach, \"uca\" = unconstrained approach, \"dblcent\" = double centering approach, \"pind\" = prod ind approach, constraints centering, \"custom\" = use parameters specified function call match product indicators created using match-strategy ... arguments passed functions (e.g., modsem_pi)","code":""},{"path":"/reference/get_pi_data.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get data with product indicators for different approaches — get_pi_data","text":"data.frame","code":""},{"path":"/reference/get_pi_data.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Get data with product indicators for different approaches — get_pi_data","text":"","code":"library(modsem) library(lavaan) #> This is lavaan 0.6-19 #> lavaan is FREE software! Please report any bugs. m1 <- ' # Outer Model X =~ x1 + x2 +x3 Y =~ y1 + y2 + y3 Z =~ z1 + z2 + z3 # Inner model Y ~ X + Z + X:Z ' syntax <- get_pi_syntax(m1) data <- get_pi_data(m1, oneInt) est <- sem(syntax, data)"},{"path":"/reference/get_pi_syntax.html","id":null,"dir":"Reference","previous_headings":"","what":"Get lavaan syntax for product indicator approaches — get_pi_syntax","title":"Get lavaan syntax for product indicator approaches — get_pi_syntax","text":"get_pi_syntax() function creating lavaan syntax used estimating latent interaction models using one product indicators lavaan.","code":""},{"path":"/reference/get_pi_syntax.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get lavaan syntax for product indicator approaches — get_pi_syntax","text":"","code":"get_pi_syntax(model.syntax, method = \"dblcent\", match = FALSE, ...)"},{"path":"/reference/get_pi_syntax.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get lavaan syntax for product indicator approaches — get_pi_syntax","text":"model.syntax lavaan syntax method method use: \"rca\" = residual centering approach, \"uca\" = unconstrained approach, \"dblcent\" = double centering approach, \"pind\" = prod ind approach, constraints centering, \"custom\" = use parameters specified function call match product indicators created using match-strategy ... arguments passed functions (e.g., modsem_pi)","code":""},{"path":"/reference/get_pi_syntax.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get lavaan syntax for product indicator approaches — get_pi_syntax","text":"character vector","code":""},{"path":"/reference/get_pi_syntax.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Get lavaan syntax for product indicator approaches — get_pi_syntax","text":"","code":"library(modsem) library(lavaan) m1 <- ' # Outer Model X =~ x1 + x2 + x3 Y =~ y1 + y2 + y3 Z =~ z1 + z2 + z3 # Inner model Y ~ X + Z + X:Z ' syntax <- get_pi_syntax(m1) data <- get_pi_data(m1, oneInt) est <- sem(syntax, data)"},{"path":"/reference/jordan.html","id":null,"dir":"Reference","previous_headings":"","what":"Jordan subset of PISA 2006 data — jordan","title":"Jordan subset of PISA 2006 data — jordan","text":"data stem large-scale assessment study PISA 2006 (Organisation Economic Co-Operation Development, 2009) competencies 15-year-old students reading, mathematics, science assessed using nationally representative samples 3-year cycles. eacademicample, data student background questionnaire Jordan sample PISA 2006 used. data students complete responses 15 items (N = 6,038) considered.","code":""},{"path":"/reference/jordan.html","id":"format","dir":"Reference","previous_headings":"","what":"Format","title":"Jordan subset of PISA 2006 data — jordan","text":"data frame fifteen variables 6,038 observations: enjoy1 indicator enjoyment science, item ST16Q01: generally fun learning topics. enjoy2 indicator enjoyment science, item ST16Q02: like reading . enjoy3 indicator enjoyment science, item ST16Q03: happy problems. enjoy4 indicator enjoyment science, item ST16Q04: enjoy acquiring new knowledge . enjoy5 indicator enjoyment science, item ST16Q05: interested learning . academic1 indicator academic self-concept science, item ST37Q01: can easily understand new ideas . academic2 indicator academic self-concept science, item ST37Q02: Learning advanced topics easy . academic3 indicator academic self-concept science, item ST37Q03: can usually give good answers topics. academic4 indicator academic self-concept science, item ST37Q04: learn topics quickly. academic5 indicator academic self-concept science, item ST37Q05: topics easy . academic6 indicator academic self-concept science, item ST37Q06: taught , can understand concepts well. career1 indicator career aspirations science, item ST29Q01: like work career involving . career2 indicator career aspirations science, item ST29Q02: like study . career3 indicator career aspirations science, item ST29Q03: like spend life advanced . career4 indicator career aspirations science, item ST29Q04: like work projects adult.","code":""},{"path":"/reference/jordan.html","id":"source","dir":"Reference","previous_headings":"","what":"Source","title":"Jordan subset of PISA 2006 data — jordan","text":"version dataset, well description gathered documentation 'nlsem' package (https://cran.r-project.org/package=nlsem), difference names variables changed Originally dataset gathered Organisation Economic Co-Operation Development (2009). Pisa 2006: Science competencies tomorrow's world (Tech. Rep.). Paris, France. Obtained : https://www.oecd.org/pisa/pisaproducts/database-pisa2006.htm","code":""},{"path":"/reference/jordan.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Jordan subset of PISA 2006 data — jordan","text":"","code":"if (FALSE) { # \\dontrun{ m1 <- \" ENJ =~ enjoy1 + enjoy2 + enjoy3 + enjoy4 + enjoy5 CAREER =~ career1 + career2 + career3 + career4 SC =~ academic1 + academic2 + academic3 + academic4 + academic5 + academic6 CAREER ~ ENJ + SC + ENJ:ENJ + SC:SC + ENJ:SC \" est <- modsem(m1, data = jordan) } # }"},{"path":"/reference/modsem-package.html","id":null,"dir":"Reference","previous_headings":"","what":"modsem: Latent Interaction (and Moderation) Analysis in Structural Equation Models (SEM) — modsem-package","title":"modsem: Latent Interaction (and Moderation) Analysis in Structural Equation Models (SEM) — modsem-package","text":"Estimation interaction (.e., moderation) effects latent variables structural equation models (SEM). supported methods : constrained approach (Algina & Moulder, 2001). unconstrained approach (Marsh et al., 2004). residual centering approach (Little et al., 2006). double centering approach (Lin et al., 2010). latent moderated structural equations (LMS) approach (Klein & Moosbrugger, 2000). quasi-maximum likelihood (QML) approach (Klein & Muthén, 2007) (temporarily unavailable) constrained- unconstrained, residual- double centering- approaches estimated via 'lavaan' (Rosseel, 2012), whilst LMS- QML- approaches estimated via modsem self. Alternatively model can estimated via 'Mplus' (Muthén & Muthén, 1998-2017). References: Algina, J., & Moulder, B. C. (2001). doi:10.1207/S15328007SEM0801_3 . \"note estimating Jöreskog-Yang model latent variable interaction using 'LISREL' 8.3.\" Klein, ., & Moosbrugger, H. (2000). doi:10.1007/BF02296338 . \"Maximum likelihood estimation latent interaction effects LMS method.\" Klein, . G., & Muthén, B. O. (2007). doi:10.1080/00273170701710205 . \"Quasi-maximum likelihood estimation structural equation models multiple interaction quadratic effects.\" Lin, G. C., Wen, Z., Marsh, H. W., & Lin, H. S. (2010). doi:10.1080/10705511.2010.488999 . \"Structural equation models latent interactions: Clarification orthogonalizing double-mean-centering strategies.\" Little, T. D., Bovaird, J. ., & Widaman, K. F. (2006). doi:10.1207/s15328007sem1304_1 . \"merits orthogonalizing powered product terms: Implications modeling interactions among latent variables.\" Marsh, H. W., Wen, Z., & Hau, K. T. (2004). doi:10.1037/1082-989X.9.3.275 . \"Structural equation models latent interactions: evaluation alternative estimation strategies indicator construction.\" Muthén, L.K. Muthén, B.O. (1998-2017). \"'Mplus' User’s Guide. Eighth Edition.\" https://www.statmodel.com/. Rosseel Y (2012). doi:10.18637/jss.v048.i02 . \"'lavaan': R Package Structural Equation Modeling.\"","code":""},{"path":[]},{"path":"/reference/modsem-package.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"modsem: Latent Interaction (and Moderation) Analysis in Structural Equation Models (SEM) — modsem-package","text":"Maintainer: Kjell Solem Slupphaug slupphaugkjell@gmail.com (ORCID) contributors: Mehmet Mehmetoglu mehmetm@ntnu.(ORCID) [contributor] Matthias Mittner matthias.mittner@uit.(ORCID) [contributor]","code":""},{"path":"/reference/modsem.html","id":null,"dir":"Reference","previous_headings":"","what":"Estimate interaction effects in structural equation models (SEMs) — modsem","title":"Estimate interaction effects in structural equation models (SEMs) — modsem","text":"modsem() function estimating interaction effects latent variables structural equation models (SEMs). Methods estimating interaction effects SEMs can basically split two frameworks: 1. Product Indicator-based approaches (\"dblcent\", \"rca\", \"uca\", \"ca\", \"pind\") 2. Distributionally based approaches (\"lms\", \"qml\"). product indicator-based approaches, modsem() essentially fancy wrapper lavaan::sem() generates necessary syntax variables estimation models latent product indicators. distributionally based approaches implemented separately estimated using lavaan::sem(), rather using custom functions (largely written C++ performance reasons). greater control, advised use one sub-functions (modsem_pi, modsem_da, modsem_mplus) directly, passing additional arguments via modsem() can lead unexpected behavior.","code":""},{"path":"/reference/modsem.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Estimate interaction effects in structural equation models (SEMs) — modsem","text":"","code":"modsem(model.syntax = NULL, data = NULL, method = \"dblcent\", ...)"},{"path":"/reference/modsem.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Estimate interaction effects in structural equation models (SEMs) — modsem","text":"model.syntax lavaan syntax data dataframe method method use: \"rca\" = residual centering approach (passed lavaan), \"uca\" = unconstrained approach (passed lavaan), \"dblcent\" = double centering approach (passed lavaan), \"pind\" = prod ind approach, constraints centering (passed lavaan), \"lms\" = latent model structural equations (passed lavaan), \"qml\" = quasi maximum likelihood estimation latent model structural equations (passed lavaan), \"custom\" = use parameters specified function call (passed lavaan). ... arguments passed functions depending method (see modsem_pi, modsem_da, modsem_mplus)","code":""},{"path":"/reference/modsem.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Estimate interaction effects in structural equation models (SEMs) — modsem","text":"modsem object class modsem_pi, modsem_da, modsem_mplus","code":""},{"path":"/reference/modsem.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Estimate interaction effects in structural equation models (SEMs) — modsem","text":"","code":"library(modsem) # For more examples, check README and/or GitHub. # One interaction m1 <- ' # Outer Model X =~ x1 + x2 +x3 Y =~ y1 + y2 + y3 Z =~ z1 + z2 + z3 # Inner model Y ~ X + Z + X:Z ' # Double centering approach est1 <- modsem(m1, oneInt) summary(est1) #> modsem (version 1.0.4, approach = dblcent): #> lavaan 0.6-19 ended normally after 161 iterations #> #> Estimator ML #> Optimization method NLMINB #> Number of model parameters 60 #> #> Number of observations 2000 #> #> Model Test User Model: #> #> Test statistic 122.924 #> Degrees of freedom 111 #> P-value (Chi-square) 0.207 #> #> Parameter Estimates: #> #> Standard errors Standard #> Information Expected #> Information saturated (h1) model Structured #> #> Latent Variables: #> Estimate Std.Err z-value P(>|z|) #> X =~ #> x1 1.000 #> x2 0.804 0.013 63.612 0.000 #> x3 0.916 0.014 67.144 0.000 #> Y =~ #> y1 1.000 #> y2 0.798 0.007 107.428 0.000 #> y3 0.899 0.008 112.453 0.000 #> Z =~ #> z1 1.000 #> z2 0.812 0.013 64.763 0.000 #> z3 0.882 0.013 67.014 0.000 #> XZ =~ #> x1z1 1.000 #> x2z1 0.805 0.013 60.636 0.000 #> x3z1 0.877 0.014 62.680 0.000 #> x1z2 0.793 0.013 59.343 0.000 #> x2z2 0.646 0.015 43.672 0.000 #> x3z2 0.706 0.016 44.292 0.000 #> x1z3 0.887 0.014 63.700 0.000 #> x2z3 0.716 0.016 45.645 0.000 #> x3z3 0.781 0.017 45.339 0.000 #> #> Regressions: #> Estimate Std.Err z-value P(>|z|) #> Y ~ #> X 0.675 0.027 25.379 0.000 #> Z 0.561 0.026 21.606 0.000 #> XZ 0.702 0.027 26.360 0.000 #> #> Covariances: #> Estimate Std.Err z-value P(>|z|) #> .x1z1 ~~ #> .x2z2 0.000 #> .x2z3 0.000 #> .x3z2 0.000 #> .x3z3 0.000 #> .x2z1 ~~ #> .x1z2 0.000 #> .x1z2 ~~ #> .x2z3 0.000 #> .x3z1 ~~ #> .x1z2 0.000 #> .x1z2 ~~ #> .x3z3 0.000 #> .x2z1 ~~ #> .x1z3 0.000 #> .x2z2 ~~ #> .x1z3 0.000 #> .x3z1 ~~ #> .x1z3 0.000 #> .x3z2 ~~ #> .x1z3 0.000 #> .x2z1 ~~ #> .x3z2 0.000 #> .x3z3 0.000 #> .x3z1 ~~ #> .x2z2 0.000 #> .x2z2 ~~ #> .x3z3 0.000 #> .x3z1 ~~ #> .x2z3 0.000 #> .x3z2 ~~ #> .x2z3 0.000 #> .x1z1 ~~ #> .x1z2 0.115 0.008 14.802 0.000 #> .x1z3 0.114 0.008 13.947 0.000 #> .x2z1 0.125 0.008 16.095 0.000 #> .x3z1 0.140 0.009 16.135 0.000 #> .x1z2 ~~ #> .x1z3 0.103 0.007 14.675 0.000 #> .x2z2 0.128 0.006 20.850 0.000 #> .x3z2 0.146 0.007 21.243 0.000 #> .x1z3 ~~ #> .x2z3 0.116 0.007 17.818 0.000 #> .x3z3 0.135 0.007 18.335 0.000 #> .x2z1 ~~ #> .x2z2 0.135 0.006 20.905 0.000 #> .x2z3 0.145 0.007 21.145 0.000 #> .x3z1 0.114 0.007 16.058 0.000 #> .x2z2 ~~ #> .x2z3 0.117 0.006 20.419 0.000 #> .x3z2 0.116 0.006 20.586 0.000 #> .x2z3 ~~ #> .x3z3 0.109 0.006 18.059 0.000 #> .x3z1 ~~ #> .x3z2 0.138 0.007 19.331 0.000 #> .x3z3 0.158 0.008 20.269 0.000 #> .x3z2 ~~ #> .x3z3 0.131 0.007 19.958 0.000 #> X ~~ #> Z 0.201 0.024 8.271 0.000 #> XZ 0.016 0.025 0.628 0.530 #> Z ~~ #> XZ 0.062 0.025 2.449 0.014 #> #> Variances: #> Estimate Std.Err z-value P(>|z|) #> .x1 0.160 0.009 17.871 0.000 #> .x2 0.162 0.007 22.969 0.000 #> .x3 0.163 0.008 20.161 0.000 #> .y1 0.159 0.009 17.896 0.000 #> .y2 0.154 0.007 22.640 0.000 #> .y3 0.164 0.008 20.698 0.000 #> .z1 0.168 0.009 18.143 0.000 #> .z2 0.158 0.007 22.264 0.000 #> .z3 0.158 0.008 20.389 0.000 #> .x1z1 0.311 0.014 22.227 0.000 #> .x2z1 0.292 0.011 27.287 0.000 #> .x3z1 0.327 0.012 26.275 0.000 #> .x1z2 0.290 0.011 26.910 0.000 #> .x2z2 0.239 0.008 29.770 0.000 #> .x3z2 0.270 0.009 29.117 0.000 #> .x1z3 0.272 0.012 23.586 0.000 #> .x2z3 0.245 0.009 27.979 0.000 #> .x3z3 0.297 0.011 28.154 0.000 #> X 0.981 0.036 26.895 0.000 #> .Y 0.990 0.038 25.926 0.000 #> Z 1.016 0.038 26.856 0.000 #> XZ 1.045 0.044 24.004 0.000 #> if (FALSE) { # \\dontrun{ # The Constrained Approach est1_ca <- modsem(m1, oneInt, method = \"ca\") summary(est1_ca) # LMS approach est1_lms <- modsem(m1, oneInt, method = \"lms\", EFIM.S=1000) summary(est1_lms) # QML approach est1_qml <- modsem(m1, oneInt, method = \"qml\") summary(est1_qml) } # } # Theory Of Planned Behavior tpb <- ' # Outer Model (Based on Hagger et al., 2007) ATT =~ att1 + att2 + att3 + att4 + att5 SN =~ sn1 + sn2 PBC =~ pbc1 + pbc2 + pbc3 INT =~ int1 + int2 + int3 BEH =~ b1 + b2 # Inner Model (Based on Steinmetz et al., 2011) INT ~ ATT + SN + PBC BEH ~ INT + PBC BEH ~ INT:PBC ' # Double centering approach est_tpb <- modsem(tpb, data = TPB) summary(est_tpb) #> modsem (version 1.0.4, approach = dblcent): #> lavaan 0.6-19 ended normally after 173 iterations #> #> Estimator ML #> Optimization method NLMINB #> Number of model parameters 78 #> #> Number of observations 2000 #> #> Model Test User Model: #> #> Test statistic 207.615 #> Degrees of freedom 222 #> P-value (Chi-square) 0.747 #> #> Parameter Estimates: #> #> Standard errors Standard #> Information Expected #> Information saturated (h1) model Structured #> #> Latent Variables: #> Estimate Std.Err z-value P(>|z|) #> ATT =~ #> att1 1.000 #> att2 0.878 0.012 71.509 0.000 #> att3 0.789 0.012 66.368 0.000 #> att4 0.695 0.011 61.017 0.000 #> att5 0.887 0.013 70.884 0.000 #> SN =~ #> sn1 1.000 #> sn2 0.889 0.017 52.553 0.000 #> PBC =~ #> pbc1 1.000 #> pbc2 0.912 0.013 69.500 0.000 #> pbc3 0.801 0.012 65.830 0.000 #> INT =~ #> int1 1.000 #> int2 0.914 0.016 58.982 0.000 #> int3 0.808 0.015 55.547 0.000 #> BEH =~ #> b1 1.000 #> b2 0.960 0.030 31.561 0.000 #> INTPBC =~ #> int1pbc1 1.000 #> int2pbc1 0.931 0.015 63.809 0.000 #> int3pbc1 0.774 0.013 60.107 0.000 #> int1pbc2 0.893 0.013 68.173 0.000 #> int2pbc2 0.826 0.017 48.845 0.000 #> int3pbc2 0.690 0.015 45.300 0.000 #> int1pbc3 0.799 0.012 67.008 0.000 #> int2pbc3 0.738 0.015 47.809 0.000 #> int3pbc3 0.622 0.014 45.465 0.000 #> #> Regressions: #> Estimate Std.Err z-value P(>|z|) #> INT ~ #> ATT 0.213 0.026 8.170 0.000 #> SN 0.177 0.028 6.416 0.000 #> PBC 0.217 0.030 7.340 0.000 #> BEH ~ #> INT 0.191 0.024 7.817 0.000 #> PBC 0.230 0.022 10.507 0.000 #> INTPBC 0.204 0.018 11.425 0.000 #> #> Covariances: #> Estimate Std.Err z-value P(>|z|) #> .int1pbc1 ~~ #> .int2pbc2 0.000 #> .int2pbc3 0.000 #> .int3pbc2 0.000 #> .int3pbc3 0.000 #> .int2pbc1 ~~ #> .int1pbc2 0.000 #> .int1pbc2 ~~ #> .int2pbc3 0.000 #> .int3pbc1 ~~ #> .int1pbc2 0.000 #> .int1pbc2 ~~ #> .int3pbc3 0.000 #> .int2pbc1 ~~ #> .int1pbc3 0.000 #> .int2pbc2 ~~ #> .int1pbc3 0.000 #> .int3pbc1 ~~ #> .int1pbc3 0.000 #> .int3pbc2 ~~ #> .int1pbc3 0.000 #> .int2pbc1 ~~ #> .int3pbc2 0.000 #> .int3pbc3 0.000 #> .int3pbc1 ~~ #> .int2pbc2 0.000 #> .int2pbc2 ~~ #> .int3pbc3 0.000 #> .int3pbc1 ~~ #> .int2pbc3 0.000 #> .int3pbc2 ~~ #> .int2pbc3 0.000 #> .int1pbc1 ~~ #> .int1pbc2 0.126 0.009 14.768 0.000 #> .int1pbc3 0.102 0.007 13.794 0.000 #> .int2pbc1 0.104 0.007 14.608 0.000 #> .int3pbc1 0.091 0.006 14.109 0.000 #> .int1pbc2 ~~ #> .int1pbc3 0.095 0.007 13.852 0.000 #> .int2pbc2 0.128 0.007 19.320 0.000 #> .int3pbc2 0.119 0.006 19.402 0.000 #> .int1pbc3 ~~ #> .int2pbc3 0.110 0.006 19.911 0.000 #> .int3pbc3 0.097 0.005 19.415 0.000 #> .int2pbc1 ~~ #> .int2pbc2 0.152 0.008 18.665 0.000 #> .int2pbc3 0.138 0.007 18.779 0.000 #> .int3pbc1 0.082 0.006 13.951 0.000 #> .int2pbc2 ~~ #> .int2pbc3 0.121 0.007 18.361 0.000 #> .int3pbc2 0.104 0.005 19.047 0.000 #> .int2pbc3 ~~ #> .int3pbc3 0.087 0.005 19.180 0.000 #> .int3pbc1 ~~ #> .int3pbc2 0.139 0.007 21.210 0.000 #> .int3pbc3 0.123 0.006 21.059 0.000 #> .int3pbc2 ~~ #> .int3pbc3 0.114 0.005 21.021 0.000 #> ATT ~~ #> SN 0.629 0.029 21.977 0.000 #> PBC 0.678 0.029 23.721 0.000 #> INTPBC 0.086 0.024 3.519 0.000 #> SN ~~ #> PBC 0.678 0.029 23.338 0.000 #> INTPBC 0.055 0.025 2.230 0.026 #> PBC ~~ #> INTPBC 0.087 0.024 3.609 0.000 #> #> Variances: #> Estimate Std.Err z-value P(>|z|) #> .att1 0.167 0.007 23.528 0.000 #> .att2 0.150 0.006 24.693 0.000 #> .att3 0.160 0.006 26.378 0.000 #> .att4 0.163 0.006 27.649 0.000 #> .att5 0.159 0.006 24.930 0.000 #> .sn1 0.178 0.015 12.110 0.000 #> .sn2 0.156 0.012 13.221 0.000 #> .pbc1 0.145 0.008 18.440 0.000 #> .pbc2 0.160 0.007 21.547 0.000 #> .pbc3 0.154 0.007 23.716 0.000 #> .int1 0.158 0.009 18.152 0.000 #> .int2 0.160 0.008 20.345 0.000 #> .int3 0.167 0.007 23.414 0.000 #> .b1 0.186 0.018 10.058 0.000 #> .b2 0.135 0.017 8.080 0.000 #> .int1pbc1 0.266 0.013 20.971 0.000 #> .int2pbc1 0.292 0.012 24.421 0.000 #> .int3pbc1 0.251 0.010 26.305 0.000 #> .int1pbc2 0.290 0.012 24.929 0.000 #> .int2pbc2 0.269 0.010 26.701 0.000 #> .int3pbc2 0.253 0.009 29.445 0.000 #> .int1pbc3 0.223 0.009 24.431 0.000 #> .int2pbc3 0.234 0.008 27.633 0.000 #> .int3pbc3 0.203 0.007 29.288 0.000 #> ATT 0.998 0.037 27.138 0.000 #> SN 0.987 0.039 25.394 0.000 #> PBC 0.962 0.035 27.260 0.000 #> .INT 0.490 0.020 24.638 0.000 #> .BEH 0.455 0.023 20.068 0.000 #> INTPBC 1.020 0.041 24.612 0.000 #> if (FALSE) { # \\dontrun{ # The Constrained Approach est_tpb_ca <- modsem(tpb, data = TPB, method = \"ca\") summary(est_tpb_ca) # LMS approach est_tpb_lms <- modsem(tpb, data = TPB, method = \"lms\") summary(est_tpb_lms) # QML approach est_tpb_qml <- modsem(tpb, data = TPB, method = \"qml\") summary(est_tpb_qml) } # }"},{"path":"/reference/modsem_da.html","id":null,"dir":"Reference","previous_headings":"","what":"Interaction between latent variables using lms and qml approaches — modsem_da","title":"Interaction between latent variables using lms and qml approaches — modsem_da","text":"modsem_da() function estimating interaction effects latent variables structural equation models (SEMs) using distributional analytic (DA) approaches. Methods estimating interaction effects SEMs can basically split two frameworks: 1. Product Indicator-based approaches (\"dblcent\", \"rca\", \"uca\", \"ca\", \"pind\") 2. Distributionally based approaches (\"lms\", \"qml\"). modsem_da() handles latter can estimate models using QML LMS, necessary syntax, variables estimation models latent product indicators. NOTE: Run default_settings_da see default arguments.","code":""},{"path":"/reference/modsem_da.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Interaction between latent variables using lms and qml approaches — modsem_da","text":"","code":"modsem_da( model.syntax = NULL, data = NULL, method = \"lms\", verbose = NULL, optimize = NULL, nodes = NULL, convergence = NULL, optimizer = NULL, center.data = NULL, standardize.data = NULL, standardize.out = NULL, standardize = NULL, mean.observed = NULL, cov.syntax = NULL, double = NULL, calc.se = NULL, FIM = NULL, EFIM.S = NULL, OFIM.hessian = NULL, EFIM.parametric = NULL, robust.se = NULL, max.iter = NULL, max.step = NULL, fix.estep = NULL, start = NULL, epsilon = NULL, quad.range = NULL, n.threads = NULL, ... )"},{"path":"/reference/modsem_da.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Interaction between latent variables using lms and qml approaches — modsem_da","text":"model.syntax lavaan syntax data dataframe method method use: \"lms\" = latent model structural equations (passed lavaan). \"qml\" = quasi maximum likelihood estimation latent model structural equations (passed lavaan). verbose estimation progress shown optimize starting parameters optimized nodes number quadrature nodes (points integration) used lms, increased number gives better estimates slower computation. many needed depends complexity model. simple models, somewhere 16-24 nodes enough; complex models, higher numbers may needed. models interaction effect endogenous exogenous variable, number nodes least 32, practically (e.g., ordinal/skewed data), 32 recommended. cases data non-normal, might better use qml approach instead. large numbers nodes, might want change 'quad.range' argument. convergence convergence criterion. Lower values give better estimates slower computation. optimizer optimizer use, can either \"nlminb\" \"L-BFGS-B\". LMS, \"nlminb\" recommended. QML, \"L-BFGS-B\" may faster large number iterations, slower iterations. center.data data centered fitting model standardize.data data scaled fitting model, overridden standardize standardize set TRUE. NOTE: recommended estimate model normally standardize output using standardized_estimates. standardize.output standardized (note alter relationships parameter constraints since parameters scaled unevenly, even label). alter estimation model, output. NOTE: recommended estimate model normally standardize output using standardized_estimates. standardize standardize data fitting model, remove mean structure observed variables, standardize output. Note standardize.data, mean.observed, standardize.overridden standardize standardize set TRUE. NOTE: recommended estimate model normally standardize output using standardized_estimates. mean.observed mean structure observed variables estimated? overridden standardize standardize set TRUE. NOTE: recommended unless know . cov.syntax model syntax implied covariance matrix (see vignette(\"interaction_two_etas\", \"modsem\")) double try double number dimensions integration used LMS, extremely slow similar mplus. calc.se standard errors computed? NOTE: FALSE, information matrix computed either. FIM Fisher information matrix calculated using observed expected values? Must either \"observed\" \"expected\". EFIM.S expected Fisher information matrix computed, EFIM.S selects number Monte Carlo samples. Defaults 100. NOTE: number likely increased better estimates (e.g., 1000-10000), might drasticly increase computation time. OFIM.hessian observed Fisher information computed using Hessian? FALSE, computed using gradient. EFIM.parametric data calculating expected Fisher information matrix simulated parametrically (simulated based assumptions implied parameters model), non-parametrically (stochastically sampled)? believe normality assumptions violated, EFIM.parametric = FALSE might better option. robust.se robust standard errors computed? Meant used QML, can unreliable LMS approach. max.iter maximum number iterations. max.step maximum steps M-step EM algorithm (LMS). fix.estep TRUE, E-step fixed, prior probabilities set best prior probabilities, log-likelihood decreases 30 iterations. start starting parameters. epsilon finite difference numerical derivatives. quad.range range z-scores perform numerical integration LMS using Gaussian-Hermite Quadratures. default Inf, f(t) integrated -Inf Inf, likely inefficient pointless large number nodes. Nodes outside +/- quad.range ignored. n.threads number cores use parallel processing. NULL, use <= 2 threads. integer specified, use number threads (e.g., n.threads = 4 use 4 threads). \"default\", use default number threads (2). \"max\", use available threads, \"min\" use 1 thread. ... additional arguments passed estimation function.","code":""},{"path":"/reference/modsem_da.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Interaction between latent variables using lms and qml approaches — modsem_da","text":"modsem_da object","code":""},{"path":"/reference/modsem_da.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Interaction between latent variables using lms and qml approaches — modsem_da","text":"","code":"library(modsem) # For more examples, check README and/or GitHub. # One interaction m1 <- \" # Outer Model X =~ x1 + x2 +x3 Y =~ y1 + y2 + y3 Z =~ z1 + z2 + z3 # Inner model Y ~ X + Z + X:Z \" if (FALSE) { # \\dontrun{ # QML Approach est1 <- modsem_da(m1, oneInt, method = \"qml\") summary(est1) # Theory Of Planned Behavior tpb <- \" # Outer Model (Based on Hagger et al., 2007) ATT =~ att1 + att2 + att3 + att4 + att5 SN =~ sn1 + sn2 PBC =~ pbc1 + pbc2 + pbc3 INT =~ int1 + int2 + int3 BEH =~ b1 + b2 # Inner Model (Based on Steinmetz et al., 2011) # Covariances ATT ~~ SN + PBC PBC ~~ SN # Causal Relationships INT ~ ATT + SN + PBC BEH ~ INT + PBC BEH ~ INT:PBC \" # LMS Approach estTpb <- modsem_da(tpb, data = TPB, method = lms, EFIM.S = 1000) summary(estTpb) } # }"},{"path":"/reference/modsem_inspect.html","id":null,"dir":"Reference","previous_headings":"","what":"Inspect model information — modsem_inspect","title":"Inspect model information — modsem_inspect","text":"function used inspect fittet object. similar `lavInspect()` argument '' decides inspect","code":""},{"path":"/reference/modsem_inspect.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Inspect model information — modsem_inspect","text":"","code":"modsem_inspect(object, what = NULL, ...)"},{"path":"/reference/modsem_inspect.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Inspect model information — modsem_inspect","text":"object fittet model inspect inspect ... Additional arguments passed functions","code":""},{"path":"/reference/modsem_inspect.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Inspect model information — modsem_inspect","text":"`modsem_da`, `modsem_lavaan` `modsem_lavaan`, just wrapper `lavInspect()` `modsem_da` “ can either \"\", \"matrices\", \"optim\", just name extract.","code":""},{"path":"/reference/modsem_mplus.html","id":null,"dir":"Reference","previous_headings":"","what":"Estimation latent interactions through mplus — modsem_mplus","title":"Estimation latent interactions through mplus — modsem_mplus","text":"Estimation latent interactions mplus","code":""},{"path":"/reference/modsem_mplus.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Estimation latent interactions through mplus — modsem_mplus","text":"","code":"modsem_mplus( model.syntax, data, estimator = \"ml\", type = \"random\", algorithm = \"integration\", process = \"8\", ... )"},{"path":"/reference/modsem_mplus.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Estimation latent interactions through mplus — modsem_mplus","text":"model.syntax lavaan/modsem syntax data dataset estimator estimator argument passed mplus type type argument passed mplus algorithm algorithm argument passed mplus process process argument passed mplus ... arguments passed functions","code":""},{"path":"/reference/modsem_mplus.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Estimation latent interactions through mplus — modsem_mplus","text":"modsem_mplus object","code":""},{"path":"/reference/modsem_mplus.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Estimation latent interactions through mplus — modsem_mplus","text":"","code":"# Theory Of Planned Behavior tpb <- ' # Outer Model (Based on Hagger et al., 2007) ATT =~ att1 + att2 + att3 + att4 + att5 SN =~ sn1 + sn2 PBC =~ pbc1 + pbc2 + pbc3 INT =~ int1 + int2 + int3 BEH =~ b1 + b2 # Inner Model (Based on Steinmetz et al., 2011) # Covariances ATT ~~ SN + PBC PBC ~~ SN # Causal Relationsships INT ~ ATT + SN + PBC BEH ~ INT + PBC BEH ~ INT:PBC ' if (FALSE) { # \\dontrun{ estTpbMplus <- modsem_mplus(tpb, data = TPB) summary(estTpbLMS) } # }"},{"path":"/reference/modsem_pi.html","id":null,"dir":"Reference","previous_headings":"","what":"Interaction between latent variables using product indicators — modsem_pi","title":"Interaction between latent variables using product indicators — modsem_pi","text":"modsem_pi() function estimating interaction effects latent variables, structural equation models (SEMs), using product indicators. Methods estimating interaction effects SEMs can basically split two frameworks: 1. Product Indicator based approaches (\"dblcent\", \"rca\", \"uca\", \"ca\", \"pind\"), 2. Distributionally based approaches (\"lms\", \"qml\"). modsem_pi() essentially fancy wrapper lavaan::sem() generates necessary syntax variables estimation models latent product indicators. Use default_settings_pi() get default settings different methods.","code":""},{"path":"/reference/modsem_pi.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Interaction between latent variables using product indicators — modsem_pi","text":"","code":"modsem_pi( model.syntax = NULL, data = NULL, method = \"dblcent\", match = NULL, standardize.data = FALSE, center.data = FALSE, first.loading.fixed = TRUE, center.before = NULL, center.after = NULL, residuals.prods = NULL, residual.cov.syntax = NULL, constrained.prod.mean = NULL, constrained.loadings = NULL, constrained.var = NULL, constrained.res.cov.method = NULL, auto.scale = \"none\", auto.center = \"none\", estimator = \"ML\", group = NULL, run = TRUE, na.rm = FALSE, suppress.warnings.lavaan = FALSE, suppress.warnings.match = FALSE, ... )"},{"path":"/reference/modsem_pi.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Interaction between latent variables using product indicators — modsem_pi","text":"model.syntax lavaan syntax data dataframe method method use: \"rca\" = residual centering approach (passed lavaan), \"uca\" = unconstrained approach (passed lavaan), \"dblcent\" = double centering approach (passed lavaan), \"pind\" = prod ind approach, constraints centering (passed lavaan), \"custom\" = use parameters specified function call (passed lavaan) match product indicators created using match-strategy standardize.data data scaled fitting model center.data data centered fitting model first.loading.fixed first factor loading latent product fixed one? center.indicators products centered computing products (overwritten method, method != NULL) center.indicator products centered computed? residuals.prods indicator products centered using residuals (overwritten method, method != NULL) residual.cov.syntax syntax residual covariances produced (overwritten method, method != NULL) constrained.prod.mean syntax product mean produced (overwritten method, method != NULL) constrained.loadings syntax constrained loadings produced (overwritten method, method != NULL) constrained.var syntax constrained variances produced (overwritten method, method != NULL) constrained.res.cov.method method constraining residual covariances auto.scale methods scaled automatically (usually useful) auto.center methods centered automatically (usually useful) estimator estimator use lavaan group group variable multigroup analysis run model run via lavaan, FALSE modified syntax data returned na.rm missing values removed (case-wise)? Defaults FALSE. TRUE, missing values removed case-wise. FALSE removed. suppress.warnings.lavaan warnings lavaan suppressed? suppress.warnings.match warnings match suppressed? ... arguments passed functions, e.g., lavaan","code":""},{"path":"/reference/modsem_pi.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Interaction between latent variables using product indicators — modsem_pi","text":"modsem object","code":""},{"path":"/reference/modsem_pi.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Interaction between latent variables using product indicators — modsem_pi","text":"","code":"library(modsem) # For more examples, check README and/or GitHub. # One interaction m1 <- ' # Outer Model X =~ x1 + x2 +x3 Y =~ y1 + y2 + y3 Z =~ z1 + z2 + z3 # Inner model Y ~ X + Z + X:Z ' # Double centering approach est1 <- modsem_pi(m1, oneInt) summary(est1) #> modsem (version 1.0.4, approach = dblcent): #> lavaan 0.6-19 ended normally after 161 iterations #> #> Estimator ML #> Optimization method NLMINB #> Number of model parameters 60 #> #> Number of observations 2000 #> #> Model Test User Model: #> #> Test statistic 122.924 #> Degrees of freedom 111 #> P-value (Chi-square) 0.207 #> #> Parameter Estimates: #> #> Standard errors Standard #> Information Expected #> Information saturated (h1) model Structured #> #> Latent Variables: #> Estimate Std.Err z-value P(>|z|) #> X =~ #> x1 1.000 #> x2 0.804 0.013 63.612 0.000 #> x3 0.916 0.014 67.144 0.000 #> Y =~ #> y1 1.000 #> y2 0.798 0.007 107.428 0.000 #> y3 0.899 0.008 112.453 0.000 #> Z =~ #> z1 1.000 #> z2 0.812 0.013 64.763 0.000 #> z3 0.882 0.013 67.014 0.000 #> XZ =~ #> x1z1 1.000 #> x2z1 0.805 0.013 60.636 0.000 #> x3z1 0.877 0.014 62.680 0.000 #> x1z2 0.793 0.013 59.343 0.000 #> x2z2 0.646 0.015 43.672 0.000 #> x3z2 0.706 0.016 44.292 0.000 #> x1z3 0.887 0.014 63.700 0.000 #> x2z3 0.716 0.016 45.645 0.000 #> x3z3 0.781 0.017 45.339 0.000 #> #> Regressions: #> Estimate Std.Err z-value P(>|z|) #> Y ~ #> X 0.675 0.027 25.379 0.000 #> Z 0.561 0.026 21.606 0.000 #> XZ 0.702 0.027 26.360 0.000 #> #> Covariances: #> Estimate Std.Err z-value P(>|z|) #> .x1z1 ~~ #> .x2z2 0.000 #> .x2z3 0.000 #> .x3z2 0.000 #> .x3z3 0.000 #> .x2z1 ~~ #> .x1z2 0.000 #> .x1z2 ~~ #> .x2z3 0.000 #> .x3z1 ~~ #> .x1z2 0.000 #> .x1z2 ~~ #> .x3z3 0.000 #> .x2z1 ~~ #> .x1z3 0.000 #> .x2z2 ~~ #> .x1z3 0.000 #> .x3z1 ~~ #> .x1z3 0.000 #> .x3z2 ~~ #> .x1z3 0.000 #> .x2z1 ~~ #> .x3z2 0.000 #> .x3z3 0.000 #> .x3z1 ~~ #> .x2z2 0.000 #> .x2z2 ~~ #> .x3z3 0.000 #> .x3z1 ~~ #> .x2z3 0.000 #> .x3z2 ~~ #> .x2z3 0.000 #> .x1z1 ~~ #> .x1z2 0.115 0.008 14.802 0.000 #> .x1z3 0.114 0.008 13.947 0.000 #> .x2z1 0.125 0.008 16.095 0.000 #> .x3z1 0.140 0.009 16.135 0.000 #> .x1z2 ~~ #> .x1z3 0.103 0.007 14.675 0.000 #> .x2z2 0.128 0.006 20.850 0.000 #> .x3z2 0.146 0.007 21.243 0.000 #> .x1z3 ~~ #> .x2z3 0.116 0.007 17.818 0.000 #> .x3z3 0.135 0.007 18.335 0.000 #> .x2z1 ~~ #> .x2z2 0.135 0.006 20.905 0.000 #> .x2z3 0.145 0.007 21.145 0.000 #> .x3z1 0.114 0.007 16.058 0.000 #> .x2z2 ~~ #> .x2z3 0.117 0.006 20.419 0.000 #> .x3z2 0.116 0.006 20.586 0.000 #> .x2z3 ~~ #> .x3z3 0.109 0.006 18.059 0.000 #> .x3z1 ~~ #> .x3z2 0.138 0.007 19.331 0.000 #> .x3z3 0.158 0.008 20.269 0.000 #> .x3z2 ~~ #> .x3z3 0.131 0.007 19.958 0.000 #> X ~~ #> Z 0.201 0.024 8.271 0.000 #> XZ 0.016 0.025 0.628 0.530 #> Z ~~ #> XZ 0.062 0.025 2.449 0.014 #> #> Variances: #> Estimate Std.Err z-value P(>|z|) #> .x1 0.160 0.009 17.871 0.000 #> .x2 0.162 0.007 22.969 0.000 #> .x3 0.163 0.008 20.161 0.000 #> .y1 0.159 0.009 17.896 0.000 #> .y2 0.154 0.007 22.640 0.000 #> .y3 0.164 0.008 20.698 0.000 #> .z1 0.168 0.009 18.143 0.000 #> .z2 0.158 0.007 22.264 0.000 #> .z3 0.158 0.008 20.389 0.000 #> .x1z1 0.311 0.014 22.227 0.000 #> .x2z1 0.292 0.011 27.287 0.000 #> .x3z1 0.327 0.012 26.275 0.000 #> .x1z2 0.290 0.011 26.910 0.000 #> .x2z2 0.239 0.008 29.770 0.000 #> .x3z2 0.270 0.009 29.117 0.000 #> .x1z3 0.272 0.012 23.586 0.000 #> .x2z3 0.245 0.009 27.979 0.000 #> .x3z3 0.297 0.011 28.154 0.000 #> X 0.981 0.036 26.895 0.000 #> .Y 0.990 0.038 25.926 0.000 #> Z 1.016 0.038 26.856 0.000 #> XZ 1.045 0.044 24.004 0.000 #> if (FALSE) { # \\dontrun{ # The Constrained Approach est1Constrained <- modsem_pi(m1, oneInt, method = \"ca\") summary(est1Constrained) } # } # Theory Of Planned Behavior tpb <- ' # Outer Model (Based on Hagger et al., 2007) ATT =~ att1 + att2 + att3 + att4 + att5 SN =~ sn1 + sn2 PBC =~ pbc1 + pbc2 + pbc3 INT =~ int1 + int2 + int3 BEH =~ b1 + b2 # Inner Model (Based on Steinmetz et al., 2011) # Covariances ATT ~~ SN + PBC PBC ~~ SN # Causal Relationships INT ~ ATT + SN + PBC BEH ~ INT + PBC BEH ~ INT:PBC ' # Double centering approach estTpb <- modsem_pi(tpb, data = TPB) summary(estTpb) #> modsem (version 1.0.4, approach = dblcent): #> lavaan 0.6-19 ended normally after 171 iterations #> #> Estimator ML #> Optimization method NLMINB #> Number of model parameters 78 #> #> Number of observations 2000 #> #> Model Test User Model: #> #> Test statistic 207.615 #> Degrees of freedom 222 #> P-value (Chi-square) 0.747 #> #> Parameter Estimates: #> #> Standard errors Standard #> Information Expected #> Information saturated (h1) model Structured #> #> Latent Variables: #> Estimate Std.Err z-value P(>|z|) #> ATT =~ #> att1 1.000 #> att2 0.878 0.012 71.509 0.000 #> att3 0.789 0.012 66.368 0.000 #> att4 0.695 0.011 61.017 0.000 #> att5 0.887 0.013 70.884 0.000 #> SN =~ #> sn1 1.000 #> sn2 0.889 0.017 52.553 0.000 #> PBC =~ #> pbc1 1.000 #> pbc2 0.912 0.013 69.500 0.000 #> pbc3 0.801 0.012 65.830 0.000 #> INT =~ #> int1 1.000 #> int2 0.914 0.016 58.982 0.000 #> int3 0.808 0.015 55.547 0.000 #> BEH =~ #> b1 1.000 #> b2 0.960 0.030 31.561 0.000 #> INTPBC =~ #> int1pbc1 1.000 #> int2pbc1 0.931 0.015 63.809 0.000 #> int3pbc1 0.774 0.013 60.107 0.000 #> int1pbc2 0.893 0.013 68.173 0.000 #> int2pbc2 0.826 0.017 48.845 0.000 #> int3pbc2 0.690 0.015 45.300 0.000 #> int1pbc3 0.799 0.012 67.008 0.000 #> int2pbc3 0.738 0.015 47.809 0.000 #> int3pbc3 0.622 0.014 45.465 0.000 #> #> Regressions: #> Estimate Std.Err z-value P(>|z|) #> INT ~ #> ATT 0.213 0.026 8.170 0.000 #> SN 0.177 0.028 6.416 0.000 #> PBC 0.217 0.030 7.340 0.000 #> BEH ~ #> INT 0.191 0.024 7.817 0.000 #> PBC 0.230 0.022 10.507 0.000 #> INTPBC 0.204 0.018 11.425 0.000 #> #> Covariances: #> Estimate Std.Err z-value P(>|z|) #> ATT ~~ #> SN 0.629 0.029 21.977 0.000 #> PBC 0.678 0.029 23.721 0.000 #> SN ~~ #> PBC 0.678 0.029 23.338 0.000 #> .int1pbc1 ~~ #> .int2pbc2 0.000 #> .int2pbc3 0.000 #> .int3pbc2 0.000 #> .int3pbc3 0.000 #> .int2pbc1 ~~ #> .int1pbc2 0.000 #> .int1pbc2 ~~ #> .int2pbc3 0.000 #> .int3pbc1 ~~ #> .int1pbc2 0.000 #> .int1pbc2 ~~ #> .int3pbc3 0.000 #> .int2pbc1 ~~ #> .int1pbc3 0.000 #> .int2pbc2 ~~ #> .int1pbc3 0.000 #> .int3pbc1 ~~ #> .int1pbc3 0.000 #> .int3pbc2 ~~ #> .int1pbc3 0.000 #> .int2pbc1 ~~ #> .int3pbc2 0.000 #> .int3pbc3 0.000 #> .int3pbc1 ~~ #> .int2pbc2 0.000 #> .int2pbc2 ~~ #> .int3pbc3 0.000 #> .int3pbc1 ~~ #> .int2pbc3 0.000 #> .int3pbc2 ~~ #> .int2pbc3 0.000 #> .int1pbc1 ~~ #> .int1pbc2 0.126 0.009 14.768 0.000 #> .int1pbc3 0.102 0.007 13.794 0.000 #> .int2pbc1 0.104 0.007 14.608 0.000 #> .int3pbc1 0.091 0.006 14.109 0.000 #> .int1pbc2 ~~ #> .int1pbc3 0.095 0.007 13.852 0.000 #> .int2pbc2 0.128 0.007 19.320 0.000 #> .int3pbc2 0.119 0.006 19.402 0.000 #> .int1pbc3 ~~ #> .int2pbc3 0.110 0.006 19.911 0.000 #> .int3pbc3 0.097 0.005 19.415 0.000 #> .int2pbc1 ~~ #> .int2pbc2 0.152 0.008 18.665 0.000 #> .int2pbc3 0.138 0.007 18.779 0.000 #> .int3pbc1 0.082 0.006 13.951 0.000 #> .int2pbc2 ~~ #> .int2pbc3 0.121 0.007 18.361 0.000 #> .int3pbc2 0.104 0.005 19.047 0.000 #> .int2pbc3 ~~ #> .int3pbc3 0.087 0.005 19.180 0.000 #> .int3pbc1 ~~ #> .int3pbc2 0.139 0.007 21.210 0.000 #> .int3pbc3 0.123 0.006 21.059 0.000 #> .int3pbc2 ~~ #> .int3pbc3 0.114 0.005 21.021 0.000 #> ATT ~~ #> INTPBC 0.086 0.024 3.519 0.000 #> SN ~~ #> INTPBC 0.055 0.025 2.230 0.026 #> PBC ~~ #> INTPBC 0.087 0.024 3.609 0.000 #> #> Variances: #> Estimate Std.Err z-value P(>|z|) #> .att1 0.167 0.007 23.528 0.000 #> .att2 0.150 0.006 24.693 0.000 #> .att3 0.160 0.006 26.378 0.000 #> .att4 0.163 0.006 27.649 0.000 #> .att5 0.159 0.006 24.930 0.000 #> .sn1 0.178 0.015 12.110 0.000 #> .sn2 0.156 0.012 13.221 0.000 #> .pbc1 0.145 0.008 18.440 0.000 #> .pbc2 0.160 0.007 21.547 0.000 #> .pbc3 0.154 0.007 23.716 0.000 #> .int1 0.158 0.009 18.152 0.000 #> .int2 0.160 0.008 20.345 0.000 #> .int3 0.167 0.007 23.414 0.000 #> .b1 0.186 0.018 10.058 0.000 #> .b2 0.135 0.017 8.080 0.000 #> .int1pbc1 0.266 0.013 20.971 0.000 #> .int2pbc1 0.292 0.012 24.421 0.000 #> .int3pbc1 0.251 0.010 26.305 0.000 #> .int1pbc2 0.290 0.012 24.929 0.000 #> .int2pbc2 0.269 0.010 26.701 0.000 #> .int3pbc2 0.253 0.009 29.445 0.000 #> .int1pbc3 0.223 0.009 24.431 0.000 #> .int2pbc3 0.234 0.008 27.633 0.000 #> .int3pbc3 0.203 0.007 29.288 0.000 #> ATT 0.998 0.037 27.138 0.000 #> SN 0.987 0.039 25.394 0.000 #> PBC 0.962 0.035 27.260 0.000 #> .INT 0.490 0.020 24.638 0.000 #> .BEH 0.455 0.023 20.068 0.000 #> INTPBC 1.020 0.041 24.612 0.000 #> if (FALSE) { # \\dontrun{ # The Constrained Approach estTpbConstrained <- modsem_pi(tpb, data = TPB, method = \"ca\") summary(estTpbConstrained) } # }"},{"path":"/reference/modsemify.html","id":null,"dir":"Reference","previous_headings":"","what":"Generate parameter table for lavaan syntax — modsemify","title":"Generate parameter table for lavaan syntax — modsemify","text":"Generate parameter table lavaan syntax","code":""},{"path":"/reference/modsemify.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Generate parameter table for lavaan syntax — modsemify","text":"","code":"modsemify(syntax)"},{"path":"/reference/modsemify.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Generate parameter table for lavaan syntax — modsemify","text":"syntax model syntax","code":""},{"path":"/reference/modsemify.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Generate parameter table for lavaan syntax — modsemify","text":"data.frame columns lhs, op, rhs, mod","code":""},{"path":"/reference/modsemify.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Generate parameter table for lavaan syntax — modsemify","text":"","code":"library(modsem) m1 <- ' # Outer Model X =~ x1 + x2 +x3 Y =~ y1 + y2 + y3 Z =~ z1 + z2 + z3 # Inner model Y ~ X + Z + X:Z ' modsemify(m1) #> lhs op rhs mod #> 1 X =~ x1 #> 2 X =~ x2 #> 3 X =~ x3 #> 4 Y =~ y1 #> 5 Y =~ y2 #> 6 Y =~ y3 #> 7 Z =~ z1 #> 8 Z =~ z2 #> 9 Z =~ z3 #> 10 Y ~ X #> 11 Y ~ Z #> 12 Y ~ X:Z"},{"path":"/reference/multiplyIndicatorsCpp.html","id":null,"dir":"Reference","previous_headings":"","what":"Multiply indicators — multiplyIndicatorsCpp","title":"Multiply indicators — multiplyIndicatorsCpp","text":"Multiply indicators","code":""},{"path":"/reference/multiplyIndicatorsCpp.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Multiply indicators — multiplyIndicatorsCpp","text":"","code":"multiplyIndicatorsCpp(df)"},{"path":"/reference/multiplyIndicatorsCpp.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Multiply indicators — multiplyIndicatorsCpp","text":"df data DataFrame","code":""},{"path":"/reference/multiplyIndicatorsCpp.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Multiply indicators — multiplyIndicatorsCpp","text":"NumericVector","code":""},{"path":"/reference/oneInt.html","id":null,"dir":"Reference","previous_headings":"","what":"oneInt — oneInt","title":"oneInt — oneInt","text":"simulated dataset one interaction effect","code":""},{"path":"/reference/parameter_estimates.html","id":null,"dir":"Reference","previous_headings":"","what":"Extract parameterEstimates from an estimated model — parameter_estimates","title":"Extract parameterEstimates from an estimated model — parameter_estimates","text":"Extract parameterEstimates estimated model","code":""},{"path":"/reference/parameter_estimates.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Extract parameterEstimates from an estimated model — parameter_estimates","text":"","code":"parameter_estimates(object, ...)"},{"path":"/reference/parameter_estimates.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Extract parameterEstimates from an estimated model — parameter_estimates","text":"object object class modsem_pi, modsem_da, modsem_mplus ... Additional arguments passed functions","code":""},{"path":"/reference/plot_interaction.html","id":null,"dir":"Reference","previous_headings":"","what":"Plot Interaction Effects — plot_interaction","title":"Plot Interaction Effects — plot_interaction","text":"Plot Interaction Effects","code":""},{"path":"/reference/plot_interaction.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Plot Interaction Effects — plot_interaction","text":"","code":"plot_interaction( x, z, y, xz = NULL, vals_x = seq(-3, 3, 0.001), vals_z, model, alpha_se = 0.15, ... )"},{"path":"/reference/plot_interaction.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Plot Interaction Effects — plot_interaction","text":"x name variable x-axis z name moderator variable y name outcome variable xz name interaction term. interaction term specified, created using x z. vals_x values x variable plot, values smoother std.error-area vals_z values moderator variable plot. separate regression line (y ~ x | z) plotted value moderator variable model object class modsem_pi, modsem_da, modsem_mplus alpha_se alpha level std.error area ... Additional arguments passed functions","code":""},{"path":"/reference/plot_interaction.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Plot Interaction Effects — plot_interaction","text":"ggplot object","code":""},{"path":"/reference/plot_interaction.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Plot Interaction Effects — plot_interaction","text":"","code":"library(modsem) if (FALSE) { # \\dontrun{ m1 <- \" # Outer Model X =~ x1 X =~ x2 + x3 Z =~ z1 + z2 + z3 Y =~ y1 + y2 + y3 # Inner model Y ~ X + Z + X:Z \" est1 <- modsem(m1, data = oneInt) plot_interaction(\"X\", \"Z\", \"Y\", \"X:Z\", -3:3, c(-0.2, 0), est1) tpb <- \" # Outer Model (Based on Hagger et al., 2007) ATT =~ att1 + att2 + att3 + att4 + att5 SN =~ sn1 + sn2 PBC =~ pbc1 + pbc2 + pbc3 INT =~ int1 + int2 + int3 BEH =~ b1 + b2 # Inner Model (Based on Steinmetz et al., 2011) # Causal Relationsships INT ~ ATT + SN + PBC BEH ~ INT + PBC # BEH ~ ATT:PBC BEH ~ PBC:INT # BEH ~ PBC:PBC \" est2 <- modsem(tpb, TPB, method = \"lms\") plot_interaction(x = \"INT\", z = \"PBC\", y = \"BEH\", xz = \"PBC:INT\", vals_z = c(-0.5, 0.5), model = est2) } # }"},{"path":"/reference/plot_jn.html","id":null,"dir":"Reference","previous_headings":"","what":"Plot Interaction Effect Using the Johnson-Neyman Technique — plot_jn","title":"Plot Interaction Effect Using the Johnson-Neyman Technique — plot_jn","text":"function plots simple slopes interaction effect across different values moderator variable using Johnson-Neyman technique. identifies regions effect predictor outcome statistically significant.","code":""},{"path":"/reference/plot_jn.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Plot Interaction Effect Using the Johnson-Neyman Technique — plot_jn","text":"","code":"plot_jn( x, z, y, xz = NULL, model, min_z = -3, max_z = 3, alpha = 0.05, detail = 1000, ... )"},{"path":"/reference/plot_jn.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Plot Interaction Effect Using the Johnson-Neyman Technique — plot_jn","text":"x name predictor variable (character string). z name moderator variable (character string). y name outcome variable (character string). xz name interaction term. specified, created using x z. model fitted model object class modsem_da, modsem_mplus, modsem_pi, lavaan. min_z minimum value moderator variable z used plot (default -3). max_z maximum value moderator variable z used plot (default 3). alpha significance level confidence intervals (default 0.05). detail number generated data points use plot (default 1000). can increase value smoother plots. ... Additional arguments (currently used).","code":""},{"path":"/reference/plot_jn.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Plot Interaction Effect Using the Johnson-Neyman Technique — plot_jn","text":"ggplot object showing interaction plot regions significance.","code":""},{"path":"/reference/plot_jn.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Plot Interaction Effect Using the Johnson-Neyman Technique — plot_jn","text":"function calculates simple slopes predictor variable x outcome variable y different levels moderator variable z. uses Johnson-Neyman technique identify regions z effect x y statistically significant. extracts necessary coefficients variance-covariance information fitted model object. function computes critical t-value solves quadratic equation derived t-statistic equation find Johnson-Neyman points. plot displays: estimated simple slopes across range z. Confidence intervals around slopes. Regions effect significant (shaded areas). Vertical dashed lines indicating Johnson-Neyman points. Text annotations providing exact values Johnson-Neyman points.","code":""},{"path":"/reference/plot_jn.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Plot Interaction Effect Using the Johnson-Neyman Technique — plot_jn","text":"","code":"if (FALSE) { # \\dontrun{ library(modsem) m1 <- ' visual =~ x1 + x2 + x3 textual =~ x4 + x5 + x6 speed =~ x7 + x8 + x9 visual ~ speed + textual + speed:textual ' est <- modsem(m1, data = lavaan::HolzingerSwineford1939, method = \"ca\") plot_jn(x = \"speed\", z = \"textual\", y = \"visual\", model = est, max_z = 6) } # }"},{"path":"/reference/standardized_estimates.html","id":null,"dir":"Reference","previous_headings":"","what":"Get standardized estimates — standardized_estimates","title":"Get standardized estimates — standardized_estimates","text":"Get standardized estimates","code":""},{"path":"/reference/standardized_estimates.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get standardized estimates — standardized_estimates","text":"","code":"standardized_estimates(object, ...)"},{"path":"/reference/standardized_estimates.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get standardized estimates — standardized_estimates","text":"object object class modsem_da, modsem_mplus, parTable class data.frame ... Additional arguments passed functions","code":""},{"path":"/reference/standardized_estimates.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Get standardized estimates — standardized_estimates","text":"modsem_da, modsem_mplus objects, interaction term standardized var(xz) = 1. interaction term actual variable model, meaning variance. must therefore calculated parameters model. Assuming normality zero-means, variance calculated var(xz) = var(x) * var(z) + cov(x, z)^2. Thus setting variance interaction term 1 'correct' correlation x z zero. means standardized estimates interaction term different using lavaan, since interaction term actual latent variable model, standardized variance 1.","code":""},{"path":"/reference/summary.html","id":null,"dir":"Reference","previous_headings":"","what":"summary for modsem objects — summary.modsem_da","title":"summary for modsem objects — summary.modsem_da","text":"summary modsem objects summary modsem objects summary modsem objects","code":""},{"path":"/reference/summary.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"summary for modsem objects — summary.modsem_da","text":"","code":"# S3 method for class 'modsem_da' summary( object, H0 = TRUE, verbose = interactive(), r.squared = TRUE, adjusted.stat = FALSE, digits = 3, scientific = FALSE, ci = FALSE, standardized = FALSE, loadings = TRUE, regressions = TRUE, covariances = TRUE, intercepts = !standardized, variances = TRUE, var.interaction = FALSE, ... ) # S3 method for class 'modsem_mplus' summary( object, scientific = FALSE, standardize = FALSE, ci = FALSE, digits = 3, loadings = TRUE, regressions = TRUE, covariances = TRUE, intercepts = TRUE, variances = TRUE, ... ) # S3 method for class 'modsem_pi' summary(object, ...)"},{"path":"/reference/summary.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"summary for modsem objects — summary.modsem_da","text":"object modsem object summarized H0 null model estimated (used comparison) verbose print progress estimation null model r.squared calculate R-squared adjusted.stat sample size corrected/adjustes AIC BIC reported? digits number digits print scientific print p-values scientific notation ci print confidence intervals standardized print standardized estimates loadings print loadings regressions print regressions covariances print covariances intercepts print intercepts variances print variances var.interaction FALSE (default) variances interaction terms removed (present) ... arguments passed lavaan::summary() standardize standardize estimates","code":""},{"path":"/reference/summary.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"summary for modsem objects — summary.modsem_da","text":"","code":"if (FALSE) { # \\dontrun{ m1 <- \" # Outer Model X =~ x1 + x2 + x3 Y =~ y1 + y2 + y3 Z =~ z1 + z2 + z3 # Inner model Y ~ X + Z + X:Z \" est1 <- modsem(m1, oneInt, \"qml\") summary(est1, ci = TRUE, scientific = TRUE) } # }"},{"path":"/reference/trace_path.html","id":null,"dir":"Reference","previous_headings":"","what":"Estimate formulas for (co-)variance paths using Wright's path tracing rules — trace_path","title":"Estimate formulas for (co-)variance paths using Wright's path tracing rules — trace_path","text":"function estimates path x y using path tracing rules. Note works structural parameters, \"=~\" ignored, unless measurement.model = TRUE. want use measurement model, \"~\" mod column pt.","code":""},{"path":"/reference/trace_path.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Estimate formulas for (co-)variance paths using Wright's path tracing rules — trace_path","text":"","code":"trace_path( pt, x, y, parenthesis = TRUE, missing.cov = FALSE, measurement.model = FALSE, maxlen = 100, ... )"},{"path":"/reference/trace_path.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Estimate formulas for (co-)variance paths using Wright's path tracing rules — trace_path","text":"pt data frame columns lhs, op, rhs, mod, modsemify x Source variable y Destination variable parenthesis TRUE, output enclosed parenthesis missing.cov TRUE, covariances missing model syntax added measurement.model TRUE, function use measurement model maxlen Maximum length path aborting ... Additional arguments passed trace_path","code":""},{"path":"/reference/trace_path.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Estimate formulas for (co-)variance paths using Wright's path tracing rules — trace_path","text":"string estimated path (simplified possible)","code":""},{"path":"/reference/trace_path.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Estimate formulas for (co-)variance paths using Wright's path tracing rules — trace_path","text":"","code":"library(modsem) m1 <- ' # Outer Model X =~ x1 + x2 +x3 Y =~ y1 + y2 + y3 Z =~ z1 + z2 + z3 # Inner model Y ~ X + Z + X:Z ' pt <- modsemify(m1) trace_path(pt, x = \"Y\", y = \"Y\", missing.cov = TRUE) # variance of Y #> [1] \"(X~~X * Y~X ^ 2 + 2 * X~~Z * Y~X * Y~Z + Y~Z ^ 2 * Z~~Z + Y~~Y)\""},{"path":"/reference/var_interactions.html","id":null,"dir":"Reference","previous_headings":"","what":"Extract or modify parTable from an estimated model with estimated variances of interaction terms — var_interactions","title":"Extract or modify parTable from an estimated model with estimated variances of interaction terms — var_interactions","text":"Extract modify parTable estimated model estimated variances interaction terms","code":""},{"path":"/reference/var_interactions.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Extract or modify parTable from an estimated model with estimated variances of interaction terms — var_interactions","text":"","code":"var_interactions(object, ...)"},{"path":"/reference/var_interactions.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Extract or modify parTable from an estimated model with estimated variances of interaction terms — var_interactions","text":"object object class modsem_da, modsem_mplus, parTable class data.frame ... Additional arguments passed functions","code":""},{"path":"/reference/vcov_modsem_da.html","id":null,"dir":"Reference","previous_headings":"","what":"Wrapper for vcov — vcov_modsem_da","title":"Wrapper for vcov — vcov_modsem_da","text":"wrapper vcov, used modsem::vcov_modsem_da, since vcov namespace modsem, stats","code":""},{"path":"/reference/vcov_modsem_da.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Wrapper for vcov — vcov_modsem_da","text":"","code":"vcov_modsem_da(object, ...)"},{"path":"/reference/vcov_modsem_da.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Wrapper for vcov — vcov_modsem_da","text":"object fittet model inspect ... additional arguments","code":""}] +[{"path":"/CONTRIBUTING.html","id":null,"dir":"","previous_headings":"","what":"Contributing to modsem","title":"Contributing to modsem","text":"Thank considering contributing modsem! welcome contributions help improve package estimating interaction effects structural equation modeling (SEM). ensure smooth collaboration, please follow guidelines .","code":""},{"path":[]},{"path":"/CONTRIBUTING.html","id":"fork-and-clone-the-repository","dir":"","previous_headings":"Getting Started","what":"Fork and Clone the Repository","title":"Contributing to modsem","text":"Fork repository GitHub. Clone fork local machine.","code":"git clone https://github.com/your-username/modsem.git cd modsem"},{"path":"/CONTRIBUTING.html","id":"setting-up-your-development-environment","dir":"","previous_headings":"Getting Started","what":"Setting up your Development Environment","title":"Contributing to modsem","text":"Ensure R installed machine. Install package dependencies. Install modsem package local repository.","code":"install.packages(\"devtools\") devtools::install_deps() devtools::install()"},{"path":[]},{"path":"/CONTRIBUTING.html","id":"creating-a-branch","dir":"","previous_headings":"Making Changes","what":"Creating a Branch","title":"Contributing to modsem","text":"Always create new branch work.","code":"git checkout -b your-branch-name"},{"path":"/CONTRIBUTING.html","id":"making-your-changes","dir":"","previous_headings":"Making Changes","what":"Making Your Changes","title":"Contributing to modsem","text":"Make changes codebase. Ensure changes well-documented. Write tests changes applicable.","code":""},{"path":"/CONTRIBUTING.html","id":"contributing-to-vignettes","dir":"","previous_headings":"Making Changes","what":"Contributing to Vignettes","title":"Contributing to modsem","text":"also encourage contributions vignettes. new use case example, feel free add alter vignettes help demonstrate functionality modsem.","code":""},{"path":"/CONTRIBUTING.html","id":"running-tests","dir":"","previous_headings":"Making Changes","what":"Running Tests","title":"Contributing to modsem","text":"Run tests ensure changes break existing functionality.","code":"devtools::test()"},{"path":"/CONTRIBUTING.html","id":"submitting-your-changes","dir":"","previous_headings":"","what":"Submitting Your Changes","title":"Contributing to modsem","text":"Push changes fork. Open pull request GitHub main branch original repository.","code":"git push origin your-branch-name"},{"path":"/CONTRIBUTING.html","id":"pull-request-guidelines","dir":"","previous_headings":"Submitting Your Changes","what":"Pull Request Guidelines","title":"Contributing to modsem","text":"Provide clear descriptive title pull request. Describe changes made necessary. Reference related issues pull requests. Ensure tests pass merge conflicts.","code":""},{"path":"/CONTRIBUTING.html","id":"reporting-issues","dir":"","previous_headings":"","what":"Reporting Issues","title":"Contributing to modsem","text":"encounter issues suggestions improvements, please open issue GitHub. Provide much detail possible help us understand address issue.","code":""},{"path":"/LICENSE.html","id":null,"dir":"","previous_headings":"","what":"MIT License","title":"MIT License","text":"Copyright (c) 2024 modsem authors Permission hereby granted, free charge, person obtaining copy software associated documentation files (“Software”), deal Software without restriction, including without limitation rights use, copy, modify, merge, publish, distribute, sublicense, /sell copies Software, permit persons Software furnished , subject following conditions: copyright notice permission notice shall included copies substantial portions Software. SOFTWARE PROVIDED “”, WITHOUT WARRANTY KIND, EXPRESS IMPLIED, INCLUDING LIMITED WARRANTIES MERCHANTABILITY, FITNESS PARTICULAR PURPOSE NONINFRINGEMENT. EVENT SHALL AUTHORS COPYRIGHT HOLDERS LIABLE CLAIM, DAMAGES LIABILITY, WHETHER ACTION CONTRACT, TORT OTHERWISE, ARISING , CONNECTION SOFTWARE USE DEALINGS SOFTWARE.","code":""},{"path":"/articles/customizing.html","id":"specifying-the-measurement-model","dir":"Articles","previous_headings":"","what":"Specifying the Measurement Model","title":"customizing interaction terms","text":"default, modsem() creates possible combinations product indicators. However, another common approach match indicators order. example, let’s say interaction latent variables X Z: X =~ x1 + x2 Z =~ z1 + z2. default, get XZ =~ x1z1 + x1z2 + x2z1 + x2z2. prefer use matching approach, expect XZ =~ x1z1 + x2z2 instead. achieve , can use match = TRUE argument.","code":"m2 <- ' # Outer Model X =~ x1 + x2 Y =~ y1 + y2 Z =~ z1 + z2 # Inner model Y ~ X + Z + X:Z ' est2 <- modsem(m2, oneInt, match = TRUE) summary(est2) #> modsem (version 1.0.4, approach = dblcent): #> lavaan 0.6-19 ended normally after 41 iterations #> #> Estimator ML #> Optimization method NLMINB #> Number of model parameters 22 #> #> Number of observations 2000 #> #> Model Test User Model: #> #> Test statistic 11.355 #> Degrees of freedom 14 #> P-value (Chi-square) 0.658 #> #> Parameter Estimates: #> #> Standard errors Standard #> Information Expected #> Information saturated (h1) model Structured #> #> Latent Variables: #> Estimate Std.Err z-value P(>|z|) #> X =~ #> x1 1.000 #> x2 0.819 0.021 38.127 0.000 #> Y =~ #> y1 1.000 #> y2 0.807 0.010 82.495 0.000 #> Z =~ #> z1 1.000 #> z2 0.836 0.024 35.392 0.000 #> XZ =~ #> x1z1 1.000 #> x2z2 0.645 0.024 26.904 0.000 #> #> Regressions: #> Estimate Std.Err z-value P(>|z|) #> Y ~ #> X 0.688 0.029 23.366 0.000 #> Z 0.576 0.029 20.173 0.000 #> XZ 0.706 0.032 22.405 0.000 #> #> Covariances: #> Estimate Std.Err z-value P(>|z|) #> .x1z1 ~~ #> .x2z2 0.000 #> X ~~ #> Z 0.202 0.025 8.182 0.000 #> XZ 0.003 0.026 0.119 0.905 #> Z ~~ #> XZ 0.042 0.026 1.621 0.105 #> #> Variances: #> Estimate Std.Err z-value P(>|z|) #> .x1 0.179 0.022 8.029 0.000 #> .x2 0.151 0.015 9.956 0.000 #> .y1 0.184 0.021 8.577 0.000 #> .y2 0.136 0.014 9.663 0.000 #> .z1 0.197 0.025 7.802 0.000 #> .z2 0.138 0.018 7.831 0.000 #> .x1z1 0.319 0.035 9.141 0.000 #> .x2z2 0.244 0.016 15.369 0.000 #> X 0.962 0.042 23.120 0.000 #> .Y 0.964 0.042 23.110 0.000 #> Z 0.987 0.044 22.260 0.000 #> XZ 1.041 0.054 19.441 0.000"},{"path":"/articles/customizing.html","id":"more-complicated-models","dir":"Articles","previous_headings":"","what":"More Complicated Models","title":"customizing interaction terms","text":"want even control, can use get_pi_syntax() get_pi_data() functions extract modified syntax data modsem(), allowing modify needed. can particularly useful cases want estimate model using feature lavaan isn’t available modsem(). example, syntax ordered multigroup models (now) isn’t flexible modsem() lavaan. can modify auto-generated syntax (along altered dataset) modsem() suit needs.","code":"m3 <- ' # Outer Model X =~ x1 + x2 Y =~ y1 + y2 Z =~ z1 + z2 # Inner model Y ~ X + Z + X:Z ' syntax <- get_pi_syntax(m3) cat(syntax) #> X =~ x1 #> X =~ x2 #> Y =~ y1 #> Y =~ y2 #> Z =~ z1 #> Z =~ z2 #> Y ~ X #> Y ~ Z #> Y ~ XZ #> XZ =~ 1*x1z1 #> XZ =~ x2z1 #> XZ =~ x1z2 #> XZ =~ x2z2 #> x1z1 ~~ 0*x2z2 #> x1z2 ~~ 0*x2z1 #> x1z1 ~~ x1z2 #> x1z1 ~~ x2z1 #> x1z2 ~~ x2z2 #> x2z1 ~~ x2z2 data <- get_pi_data(m3, oneInt) head(data) #> x1 x2 y1 y2 z1 z2 x1z1 #> 1 2.4345722 1.3578655 1.4526897 0.9560888 0.8184825 1.60708140 -0.4823019 #> 2 0.2472734 0.2723201 0.5496756 0.7115311 3.6649148 2.60983102 -2.2680403 #> 3 -1.3647759 -0.5628205 -0.9835467 -0.6697747 1.7249386 2.10981827 -1.9137416 #> 4 3.0432836 2.2153763 6.4641465 4.7805981 2.5697116 3.26335379 2.9385205 #> 5 2.8148841 2.7029616 2.2860280 2.1457643 0.3467850 0.07164577 -1.4009548 #> 6 -0.5453450 -0.7530642 1.1294876 1.1998472 -0.2362958 0.60252657 1.7465860 #> x2z1 x1z2 x2z2 #> 1 -0.1884837 0.3929380 -0.0730934 #> 2 -2.6637694 -1.2630544 -1.4547433 #> 3 -1.4299711 -2.3329864 -1.7383407 #> 4 1.3971422 3.9837389 1.9273102 #> 5 -1.1495704 -2.2058995 -1.8169042 #> 6 2.2950753 0.7717365 1.0568143"},{"path":"/articles/higher_order_interactions.html","id":"interaction-between-two-higher-order-constructs","dir":"Articles","previous_headings":"","what":"Interaction between two higher order constructs","title":"higher order interactions","text":"WARNING: Please note literature higher order interactions product indicator approaches virtually non-existant, likely need experiment different approaches find one works. well experiment adding constraints model. modsem two datasets variants Theory Planned Behaviour (TPB) dataset. TPB_2SO contains two second order constructs, INT (intention) second order construct ATT (attitude) SN (subjective norm), PBC (perceived behavioural control) second order construct PC (perceived control) PB (perceived behaviour).","code":"tpb <- ' # First order constructs ATT =~ att1 + att2 + att3 SN =~ sn1 + sn2 + sn3 PB =~ pb1 + pb2 + pb3 PC =~ pc1 + pc2 + pc3 BEH =~ b1 + b2 # Higher order constructs INT =~ ATT + SN PBC =~ PC + PB # Higher order interaction INTxPBC =~ ATT:PC + ATT:PB + SN:PC + SN:PB # Structural model BEH ~ PBC + INT + INTxPBC ' est_ca <- modsem(tpb, data = TPB_2SO, method = \"ca\") summary(est_ca) #> modsem (version 1.0.4, approach = ca): #> lavaan 0.6-19 ended normally after 628 iterations #> #> Estimator ML #> Optimization method NLMINB #> Number of model parameters 96 #> Row rank of the constraints matrix 28 #> #> Number of observations 2000 #> #> Model Test User Model: #> #> Test statistic 3479.483 #> Degrees of freedom 309 #> P-value (Chi-square) 0.000 #> #> Parameter Estimates: #> #> Standard errors Standard #> Information Expected #> Information saturated (h1) model Structured #> #> Latent Variables: #> Estimate Std.Err z-value P(>|z|) #> ATT =~ #> a (l_1_A) 1.000 #> a (l_2_A) 0.903 0.010 94.899 0.000 #> a (l_3_A) 0.787 0.009 89.747 0.000 #> SN =~ #> s (l_1_S) 1.000 #> s (l_2_S) 0.917 0.013 71.403 0.000 #> s (l_3_S) 0.804 0.012 67.969 0.000 #> PB =~ #> p (l_1_PB) 1.000 #> p (l_2_PB) 0.923 0.010 89.364 0.000 #> p (l_3_PB) 0.790 0.009 84.731 0.000 #> PC =~ #> p (l_1_PC) 1.000 #> p (l_2_PC) 0.889 0.009 101.651 0.000 #> p (l_3_PC) 0.787 0.008 97.811 0.000 #> BEH =~ #> b (l_1_B) 1.000 #> b (l_2_B) 0.848 0.043 19.772 0.000 #> INT =~ #> A (l_ATT_) 1.000 #> S (l_SN_) 0.646 0.076 8.547 0.000 #> PBC =~ #> P (l_PC) 1.000 #> P (l_PB) 0.650 0.081 7.985 0.000 #> INTxPBC =~ #> A (l_ATTPC) 1.000 #> A (l_ATTPB) 0.817 0.036 22.725 0.000 #> S (l_SNPC) 0.729 0.031 23.234 0.000 #> S (l_SNPB) 0.606 0.027 22.365 0.000 #> ATTPC =~ #> a (l_11_ATTPC) 1.000 #> a (l_22_ATTPC) 0.803 0.009 90.729 0.000 #> a (l_33_ATTPC) 0.620 0.007 86.179 0.000 #> ATTPB =~ #> a (l_11_ATTPB) 1.000 #> a (l_22_ATTPB) 0.834 0.010 83.614 0.000 #> a (l_33_ATTPB) 0.622 0.008 78.869 0.000 #> SNPC =~ #> s (l_11_SNPC) 1.000 #> s (l_22_SNPC) 0.815 0.011 71.600 0.000 #> s (l_33_SNPC) 0.633 0.009 68.160 0.000 #> SNPB =~ #> s (l_11_SNPB) 1.000 #> s (l_22_SNPB) 0.846 0.012 68.808 0.000 #> s (l_33_SNPB) 0.635 0.010 65.238 0.000 #> #> Regressions: #> Estimate Std.Err z-value P(>|z|) #> BEH ~ #> PBC (G_PB) 0.221 0.031 7.155 0.000 #> INT (G_INT_) 0.209 0.029 7.224 0.000 #> INTPB (G_INTP) 0.158 0.019 8.137 0.000 #> #> Covariances: #> Estimate Std.Err z-value P(>|z|) #> INT ~~ #> PBC (C_INT_P) 0.017 0.026 0.669 0.504 #> INTP (C_INT_I) -0.002 0.029 -0.083 0.934 #> PBC ~~ #> INTP (C_PB) -0.094 0.035 -2.712 0.007 #> .att1pc1 ~~ #> .at22 0.000 #> .at33 0.000 #> .att2pc2 ~~ #> .at33 0.000 #> .att1pb1 ~~ #> .at22 0.000 #> .at33 0.000 #> .att2pb2 ~~ #> .at33 0.000 #> .sn1pc1 ~~ #> .sn22 0.000 #> .sn33 0.000 #> .sn2pc2 ~~ #> .sn33 0.000 #> .sn1pb1 ~~ #> .sn22 0.000 #> .sn33 0.000 #> .sn2pb2 ~~ #> .sn33 0.000 #> #> Intercepts: #> Estimate Std.Err z-value P(>|z|) #> .ATTP (M_ATTPC) 0.017 0.026 0.669 0.504 #> .ATTP (M_ATTPB) 0.011 0.017 0.668 0.504 #> .SNPC (M_SNPC) 0.011 0.017 0.668 0.504 #> .SNPB (M_SNPB) 0.007 0.011 0.667 0.505 #> .att1 1.008 0.025 40.614 0.000 #> .att2 1.002 0.023 43.736 0.000 #> .att3 1.012 0.021 49.282 0.000 #> .sn1 0.980 0.018 53.085 0.000 #> .sn2 0.986 0.018 56.087 0.000 #> .sn3 0.993 0.016 61.749 0.000 #> .pb1 1.010 0.024 41.515 0.000 #> .pb2 1.014 0.023 43.981 0.000 #> .pb3 1.015 0.020 50.248 0.000 #> .pc1 1.032 0.028 36.550 0.000 #> .pc2 1.023 0.026 39.909 0.000 #> .pc3 1.027 0.023 44.819 0.000 #> .b1 1.000 0.020 50.566 0.000 #> .b2 0.997 0.018 54.925 0.000 #> .at11 0.012 0.048 0.242 0.809 #> .at22 -0.016 0.039 -0.401 0.689 #> .at33 0.005 0.031 0.170 0.865 #> .at11 0.031 0.038 0.812 0.417 #> .at22 0.009 0.033 0.292 0.770 #> .at33 0.025 0.025 1.013 0.311 #> .sn11 0.021 0.034 0.605 0.545 #> .sn22 0.000 0.029 0.008 0.994 #> .sn33 0.006 0.023 0.282 0.778 #> .sn11 0.028 0.028 1.031 0.303 #> .sn22 0.008 0.024 0.344 0.731 #> .sn33 0.009 0.019 0.467 0.640 #> #> Variances: #> Estimate Std.Err z-value P(>|z|) #> .AT (Vr_ATT) 0.306 0.088 3.482 0.000 #> .SN (Vr_SN) 0.190 0.037 5.088 0.000 #> .PB (Vr_PB) 0.619 0.054 11.411 0.000 #> .PC (V_PC) 0.469 0.120 3.907 0.000 #> .BE (Z_BE) 0.544 0.036 15.260 0.000 #> IN (Vr_INT) 0.752 0.091 8.252 0.000 #> PB (V_PBC) 0.958 0.123 7.760 0.000 #> IN (V_INTP) 1.297 0.089 14.646 0.000 #> .AT (V_ATTPC) 1.511 0.041 36.482 0.000 #> .AT (V_ATTPB) 1.084 0.031 35.464 0.000 #> .SN (V_SNPC) 0.719 0.022 32.194 0.000 #> .SN (V_SNPB) 0.516 0.016 31.825 0.000 #> .a1 (Vr_t1) 0.174 0.008 21.062 0.000 #> .a2 (Vr_t2) 0.186 0.007 24.851 0.000 #> .a3 (Vr_t3) 0.187 0.007 28.710 0.000 #> .s1 (Vr_s1) 0.177 0.007 24.784 0.000 #> .s2 (Vr_s2) 0.195 0.007 28.844 0.000 #> .s3 (Vr_s3) 0.192 0.006 32.240 0.000 #> .p1 (Vr_pb1) 0.161 0.009 18.864 0.000 #> .p2 (Vr_pb2) 0.191 0.008 23.432 0.000 #> .p3 (Vr_pb3) 0.178 0.007 26.465 0.000 #> .p1 (Vr_pc1) 0.167 0.009 18.483 0.000 #> .p2 (Vr_pc2) 0.185 0.008 22.968 0.000 #> .p3 (Vr_pc3) 0.165 0.007 24.405 0.000 #> .b1 (Vr_b1) 0.131 0.031 4.180 0.000 #> .b2 (Vr_b2) 0.191 0.023 8.211 0.000 #> .a1 (Vr_tt1pc1) 0.454 0.015 30.377 0.000 #> .a2 (Vr_tt2pc2) 0.404 0.011 36.058 0.000 #> .a3 (Vr_tt3pc3) 0.305 0.008 39.382 0.000 #> .a1 (Vr_tt1pb1) 0.377 0.012 30.603 0.000 #> .a2 (Vr_tt2pb2) 0.363 0.010 36.293 0.000 #> .a3 (Vr_tt3pb3) 0.270 0.007 40.454 0.000 #> .s1 (Vr_sn1pc1) 0.367 0.012 31.101 0.000 #> .s2 (Vr_sn2pc2) 0.334 0.009 36.194 0.000 #> .s3 (Vr_sn3pc3) 0.255 0.007 38.970 0.000 #> .s1 (Vr_sn1pb1) 0.291 0.009 32.171 0.000 #> .s2 (Vr_sn2pb2) 0.288 0.008 37.329 0.000 #> .s3 (Vr_sn3pb3) 0.214 0.005 40.765 0.000 #> #> Constraints: #> |Slack| #> V_ATTPC-((_ATT_INT^2*V_INT+V_ATT)*(_PC_PB 0.000 #> V_11-(_1_ATT^2*(_ATT_INT^2*V_INT+V_ATT)*V 0.000 #> V_22-(_2_ATT^2*(_ATT_INT^2*V_INT+V_ATT)*V 0.000 #> V_33-(_3_ATT^2*(_ATT_INT^2*V_INT+V_ATT)*V 0.000 #> V_ATTPB-((_ATT_INT^2*V_INT+V_ATT)*(_PB_PB 0.000 #> V_11-(_1_ATT^2*(_ATT_INT^2*V_INT+V_ATT)*V 0.000 #> V_22-(_2_ATT^2*(_ATT_INT^2*V_INT+V_ATT)*V 0.000 #> V_33-(_3_ATT^2*(_ATT_INT^2*V_INT+V_ATT)*V 0.000 #> V_SNPC-((_SN_INT^2*V_INT+V_SN)*(_PC_PBC^2 0.000 #> V_11-(_1_SN^2*(_SN_INT^2*V_INT+V_SN)*V_1+ 0.000 #> V_22-(_2_SN^2*(_SN_INT^2*V_INT+V_SN)*V_2+ 0.000 #> V_33-(_3_SN^2*(_SN_INT^2*V_INT+V_SN)*V_3+ 0.000 #> V_SNPB-((_SN_INT^2*V_INT+V_SN)*(_PB_PBC^2 0.000 #> V_11-(_1_SN^2*(_SN_INT^2*V_INT+V_SN)*V_1+ 0.000 #> V_22-(_2_SN^2*(_SN_INT^2*V_INT+V_SN)*V_2+ 0.000 #> V_33-(_3_SN^2*(_SN_INT^2*V_INT+V_SN)*V_3+ 0.000 #> lmbd_tt1pc1_ATTPC-(lmbd_tt1_ATT*lmb_1_PC) 0.000 #> lmbd_tt2pc2_ATTPC-(lmbd_tt2_ATT*lmb_2_PC) 0.000 #> lmbd_tt3pc3_ATTPC-(lmbd_tt3_ATT*lmb_3_PC) 0.000 #> lmbd_tt1pb1_ATTPB-(lmbd_tt1_ATT*lmb_1_PB) 0.000 #> lmbd_tt2pb2_ATTPB-(lmbd_tt2_ATT*lmb_2_PB) 0.000 #> lmbd_tt3pb3_ATTPB-(lmbd_tt3_ATT*lmb_3_PB) 0.000 #> lmbd_sn1pc1_SNPC-(lmbd_sn1_SN*lmbd_p1_PC) 0.000 #> lmbd_sn2pc2_SNPC-(lmbd_sn2_SN*lmbd_p2_PC) 0.000 #> lmbd_sn3pc3_SNPC-(lmbd_sn3_SN*lmbd_p3_PC) 0.000 #> lmbd_sn1pb1_SNPB-(lmbd_sn1_SN*lmbd_p1_PB) 0.000 #> lmbd_sn2pb2_SNPB-(lmbd_sn2_SN*lmbd_p2_PB) 0.000 #> lmbd_sn3pb3_SNPB-(lmbd_sn3_SN*lmbd_p3_PB) 0.000 #> Mn_ATTPC-((Cv_INT_PBC*l_ATT_INT*_PC_PBC)) 0.000 #> Mn_ATTPB-((Cv_INT_PBC*l_ATT_INT*_PB_PBC)) 0.000 #> Mn_SNPC-((Cv_INT_PBC*lmb_PC_PBC*_SN_INT)) 0.000 #> Mn_SNPB-((Cv_INT_PBC*lmb_PB_PBC*_SN_INT)) 0.000 est_dblcent <- modsem(tpb, data = TPB_2SO, method = \"dblcent\") summary(est_dblcent) #> modsem (version 1.0.4, approach = dblcent): #> lavaan 0.6-19 ended normally after 465 iterations #> #> Estimator ML #> Optimization method NLMINB #> Number of model parameters 186 #> #> Number of observations 2000 #> #> Model Test User Model: #> #> Test statistic 10052.300 #> Degrees of freedom 1089 #> P-value (Chi-square) 0.000 #> #> Parameter Estimates: #> #> Standard errors Standard #> Information Expected #> Information saturated (h1) model Structured #> #> Latent Variables: #> Estimate Std.Err z-value P(>|z|) #> ATT =~ #> att1 1.000 #> att2 0.908 0.011 83.766 0.000 #> att3 0.798 0.010 77.657 0.000 #> SN =~ #> sn1 1.000 #> sn2 0.909 0.016 55.251 0.000 #> sn3 0.813 0.015 53.511 0.000 #> PB =~ #> pb1 1.000 #> pb2 0.918 0.012 77.166 0.000 #> pb3 0.789 0.011 72.867 0.000 #> PC =~ #> pc1 1.000 #> pc2 0.891 0.010 89.774 0.000 #> pc3 0.792 0.009 86.846 0.000 #> BEH =~ #> b1 1.000 #> b2 0.850 0.039 21.738 0.000 #> INT =~ #> ATT 1.000 #> SN 0.670 0.061 11.032 0.000 #> PBC =~ #> PC 1.000 #> PB 0.668 0.072 9.292 0.000 #> INTxPBC =~ #> ATTPC 1.000 #> ATTPB 0.786 0.029 26.650 0.000 #> SNPC 0.715 0.026 27.124 0.000 #> SNPB 0.562 0.022 25.714 0.000 #> ATTPC =~ #> att1pc1 1.000 #> att2pc1 0.896 0.012 76.955 0.000 #> att3pc1 0.784 0.011 71.763 0.000 #> att1pc2 0.889 0.010 86.420 0.000 #> att2pc2 0.796 0.014 58.748 0.000 #> att3pc2 0.688 0.012 55.935 0.000 #> att1pc3 0.786 0.009 82.801 0.000 #> att2pc3 0.703 0.012 57.546 0.000 #> att3pc3 0.610 0.011 54.822 0.000 #> ATTPB =~ #> att1pb1 1.000 #> att2pb1 0.902 0.012 73.281 0.000 #> att3pb1 0.790 0.011 69.090 0.000 #> att1pb2 0.911 0.013 69.779 0.000 #> att2pb2 0.821 0.016 50.353 0.000 #> att3pb2 0.719 0.015 49.305 0.000 #> att1pb3 0.769 0.012 63.518 0.000 #> att2pb3 0.699 0.014 49.233 0.000 #> att3pb3 0.609 0.013 47.566 0.000 #> SNPC =~ #> sn1pc1 1.000 #> sn2pc1 0.916 0.017 52.984 0.000 #> sn3pc1 0.773 0.016 48.814 0.000 #> sn1pc2 0.890 0.011 80.299 0.000 #> sn2pc2 0.815 0.018 44.884 0.000 #> sn3pc2 0.684 0.016 42.622 0.000 #> sn1pc3 0.804 0.010 76.966 0.000 #> sn2pc3 0.734 0.016 44.770 0.000 #> sn3pc3 0.624 0.015 42.476 0.000 #> SNPB =~ #> sn1pb1 1.000 #> sn2pb1 0.932 0.018 52.861 0.000 #> sn3pb1 0.807 0.016 50.349 0.000 #> sn1pb2 0.921 0.014 67.113 0.000 #> sn2pb2 0.862 0.020 43.061 0.000 #> sn3pb2 0.746 0.018 41.358 0.000 #> sn1pb3 0.782 0.013 61.764 0.000 #> sn2pb3 0.726 0.018 41.471 0.000 #> sn3pb3 0.636 0.016 39.286 0.000 #> #> Regressions: #> Estimate Std.Err z-value P(>|z|) #> BEH ~ #> PBC 0.211 0.026 8.120 0.000 #> INT 0.199 0.023 8.696 0.000 #> INTxPBC 0.139 0.017 8.230 0.000 #> #> Covariances: #> Estimate Std.Err z-value P(>|z|) #> .att1pc1 ~~ #> .att2pc2 0.000 #> .att2pc3 0.000 #> .att3pc2 0.000 #> .att3pc3 0.000 #> .att2pc1 ~~ #> .att1pc2 0.000 #> .att1pc2 ~~ #> .att2pc3 0.000 #> .att3pc1 ~~ #> .att1pc2 0.000 #> .att1pc2 ~~ #> .att3pc3 0.000 #> .att2pc1 ~~ #> .att1pc3 0.000 #> .att2pc2 ~~ #> .att1pc3 0.000 #> .att3pc1 ~~ #> .att1pc3 0.000 #> .att3pc2 ~~ #> .att1pc3 0.000 #> .att2pc1 ~~ #> .att3pc2 0.000 #> .att3pc3 0.000 #> .att3pc1 ~~ #> .att2pc2 0.000 #> .att2pc2 ~~ #> .att3pc3 0.000 #> .att3pc1 ~~ #> .att2pc3 0.000 #> .att3pc2 ~~ #> .att2pc3 0.000 #> .att1pc1 ~~ #> .att1pc2 0.228 0.015 15.643 0.000 #> .att1pc3 0.202 0.013 15.648 0.000 #> .att2pc1 0.192 0.012 16.158 0.000 #> .att3pc1 0.171 0.011 16.161 0.000 #> .att1pc2 ~~ #> .att1pc3 0.182 0.012 15.689 0.000 #> .att2pc2 0.206 0.011 19.546 0.000 #> .att3pc2 0.180 0.009 19.366 0.000 #> .att1pc3 ~~ #> .att2pc3 0.194 0.009 21.544 0.000 #> .att3pc3 0.165 0.008 20.892 0.000 #> .att2pc1 ~~ #> .att2pc2 0.265 0.013 19.849 0.000 #> .att2pc3 0.231 0.012 19.601 0.000 #> .att3pc1 0.157 0.010 16.172 0.000 #> .att2pc2 ~~ #> .att2pc3 0.204 0.011 19.396 0.000 #> .att3pc2 0.165 0.009 19.366 0.000 #> .att2pc3 ~~ #> .att3pc3 0.150 0.007 20.763 0.000 #> .att3pc1 ~~ #> .att3pc2 0.266 0.012 22.627 0.000 #> .att3pc3 0.238 0.011 22.542 0.000 #> .att3pc2 ~~ #> .att3pc3 0.208 0.009 22.293 0.000 #> .att1pb1 ~~ #> .att2pb2 0.000 #> .att2pb3 0.000 #> .att3pb2 0.000 #> .att3pb3 0.000 #> .att2pb1 ~~ #> .att1pb2 0.000 #> .att1pb2 ~~ #> .att2pb3 0.000 #> .att3pb1 ~~ #> .att1pb2 0.000 #> .att1pb2 ~~ #> .att3pb3 0.000 #> .att2pb1 ~~ #> .att1pb3 0.000 #> .att2pb2 ~~ #> .att1pb3 0.000 #> .att3pb1 ~~ #> .att1pb3 0.000 #> .att3pb2 ~~ #> .att1pb3 0.000 #> .att2pb1 ~~ #> .att3pb2 0.000 #> .att3pb3 0.000 #> .att3pb1 ~~ #> .att2pb2 0.000 #> .att2pb2 ~~ #> .att3pb3 0.000 #> .att3pb1 ~~ #> .att2pb3 0.000 #> .att3pb2 ~~ #> .att2pb3 0.000 #> .att1pb1 ~~ #> .att1pb2 0.178 0.011 16.118 0.000 #> .att1pb3 0.150 0.010 15.776 0.000 #> .att2pb1 0.196 0.012 16.080 0.000 #> .att3pb1 0.164 0.011 15.563 0.000 #> .att1pb2 ~~ #> .att1pb3 0.142 0.009 15.903 0.000 #> .att2pb2 0.228 0.012 19.763 0.000 #> .att3pb2 0.195 0.010 19.467 0.000 #> .att1pb3 ~~ #> .att2pb3 0.212 0.010 22.266 0.000 #> .att3pb3 0.184 0.008 22.055 0.000 #> .att2pb1 ~~ #> .att2pb2 0.201 0.010 19.667 0.000 #> .att2pb3 0.170 0.009 19.380 0.000 #> .att3pb1 0.151 0.010 15.533 0.000 #> .att2pb2 ~~ #> .att2pb3 0.158 0.008 19.210 0.000 #> .att3pb2 0.191 0.010 19.989 0.000 #> .att2pb3 ~~ #> .att3pb3 0.165 0.008 21.609 0.000 #> .att3pb1 ~~ #> .att3pb2 0.189 0.009 21.673 0.000 #> .att3pb3 0.162 0.008 21.467 0.000 #> .att3pb2 ~~ #> .att3pb3 0.149 0.007 21.111 0.000 #> .sn1pc1 ~~ #> .sn2pc2 0.000 #> .sn2pc3 0.000 #> .sn3pc2 0.000 #> .sn3pc3 0.000 #> .sn2pc1 ~~ #> .sn1pc2 0.000 #> .sn1pc2 ~~ #> .sn2pc3 0.000 #> .sn3pc1 ~~ #> .sn1pc2 0.000 #> .sn1pc2 ~~ #> .sn3pc3 0.000 #> .sn2pc1 ~~ #> .sn1pc3 0.000 #> .sn2pc2 ~~ #> .sn1pc3 0.000 #> .sn3pc1 ~~ #> .sn1pc3 0.000 #> .sn3pc2 ~~ #> .sn1pc3 0.000 #> .sn2pc1 ~~ #> .sn3pc2 0.000 #> .sn3pc3 0.000 #> .sn3pc1 ~~ #> .sn2pc2 0.000 #> .sn2pc2 ~~ #> .sn3pc3 0.000 #> .sn3pc1 ~~ #> .sn2pc3 0.000 #> .sn3pc2 ~~ #> .sn2pc3 0.000 #> .sn1pc1 ~~ #> .sn1pc2 0.235 0.014 17.052 0.000 #> .sn1pc3 0.211 0.012 17.095 0.000 #> .sn2pc1 0.103 0.007 15.796 0.000 #> .sn3pc1 0.092 0.006 15.750 0.000 #> .sn1pc2 ~~ #> .sn1pc3 0.178 0.011 16.493 0.000 #> .sn2pc2 0.106 0.006 18.376 0.000 #> .sn3pc2 0.091 0.005 18.007 0.000 #> .sn1pc3 ~~ #> .sn2pc3 0.103 0.005 20.203 0.000 #> .sn3pc3 0.087 0.004 19.503 0.000 #> .sn2pc1 ~~ #> .sn2pc2 0.261 0.013 20.103 0.000 #> .sn2pc3 0.228 0.011 19.894 0.000 #> .sn3pc1 0.083 0.005 15.378 0.000 #> .sn2pc2 ~~ #> .sn2pc3 0.206 0.010 20.014 0.000 #> .sn3pc2 0.087 0.005 18.174 0.000 #> .sn2pc3 ~~ #> .sn3pc3 0.082 0.004 19.532 0.000 #> .sn3pc1 ~~ #> .sn3pc2 0.255 0.011 23.013 0.000 #> .sn3pc3 0.227 0.010 22.859 0.000 #> .sn3pc2 ~~ #> .sn3pc3 0.198 0.009 22.679 0.000 #> .sn1pb1 ~~ #> .sn2pb2 0.000 #> .sn2pb3 0.000 #> .sn3pb2 0.000 #> .sn3pb3 0.000 #> .sn2pb1 ~~ #> .sn1pb2 0.000 #> .sn1pb2 ~~ #> .sn2pb3 0.000 #> .sn3pb1 ~~ #> .sn1pb2 0.000 #> .sn1pb2 ~~ #> .sn3pb3 0.000 #> .sn2pb1 ~~ #> .sn1pb3 0.000 #> .sn2pb2 ~~ #> .sn1pb3 0.000 #> .sn3pb1 ~~ #> .sn1pb3 0.000 #> .sn3pb2 ~~ #> .sn1pb3 0.000 #> .sn2pb1 ~~ #> .sn3pb2 0.000 #> .sn3pb3 0.000 #> .sn3pb1 ~~ #> .sn2pb2 0.000 #> .sn2pb2 ~~ #> .sn3pb3 0.000 #> .sn3pb1 ~~ #> .sn2pb3 0.000 #> .sn3pb2 ~~ #> .sn2pb3 0.000 #> .sn1pb1 ~~ #> .sn1pb2 0.163 0.010 16.601 0.000 #> .sn1pb3 0.143 0.009 16.410 0.000 #> .sn2pb1 0.104 0.006 16.170 0.000 #> .sn3pb1 0.093 0.006 15.771 0.000 #> .sn1pb2 ~~ #> .sn1pb3 0.131 0.008 16.144 0.000 #> .sn2pb2 0.101 0.006 17.420 0.000 #> .sn3pb2 0.091 0.005 17.177 0.000 #> .sn1pb3 ~~ #> .sn2pb3 0.099 0.005 20.252 0.000 #> .sn3pb3 0.094 0.005 20.442 0.000 #> .sn2pb1 ~~ #> .sn2pb2 0.192 0.010 19.812 0.000 #> .sn2pb3 0.166 0.009 19.549 0.000 #> .sn3pb1 0.082 0.005 15.386 0.000 #> .sn2pb2 ~~ #> .sn2pb3 0.154 0.008 19.408 0.000 #> .sn3pb2 0.083 0.005 17.108 0.000 #> .sn2pb3 ~~ #> .sn3pb3 0.080 0.004 19.531 0.000 #> .sn3pb1 ~~ #> .sn3pb2 0.177 0.008 21.670 0.000 #> .sn3pb3 0.158 0.007 21.493 0.000 #> .sn3pb2 ~~ #> .sn3pb3 0.150 0.007 21.690 0.000 #> INT ~~ #> PBC 0.034 0.033 1.045 0.296 #> INTxPBC -0.003 0.035 -0.099 0.921 #> PBC ~~ #> INTxPBC -0.120 0.039 -3.063 0.002 #> #> Variances: #> Estimate Std.Err z-value P(>|z|) #> .att1 0.164 0.009 18.496 0.000 #> .att2 0.150 0.008 19.739 0.000 #> .att3 0.161 0.007 23.292 0.000 #> .sn1 0.159 0.008 18.691 0.000 #> .sn2 0.172 0.008 21.687 0.000 #> .sn3 0.160 0.007 23.161 0.000 #> .pb1 0.146 0.009 16.806 0.000 #> .pb2 0.168 0.008 20.515 0.000 #> .pb3 0.159 0.007 23.189 0.000 #> .pc1 0.165 0.009 17.845 0.000 #> .pc2 0.165 0.008 20.574 0.000 #> .pc3 0.150 0.007 22.166 0.000 #> .b1 0.133 0.029 4.600 0.000 #> .b2 0.189 0.022 8.768 0.000 #> .att1pc1 0.495 0.022 22.813 0.000 #> .att2pc1 0.501 0.019 25.991 0.000 #> .att3pc1 0.468 0.017 28.208 0.000 #> .att1pc2 0.459 0.018 25.111 0.000 #> .att2pc2 0.448 0.016 27.871 0.000 #> .att3pc2 0.406 0.014 29.875 0.000 #> .att1pc3 0.397 0.015 26.508 0.000 #> .att2pc3 0.380 0.013 28.927 0.000 #> .att3pc3 0.343 0.011 30.642 0.000 #> .att1pb1 0.426 0.018 23.037 0.000 #> .att2pb1 0.419 0.016 25.558 0.000 #> .att3pb1 0.356 0.013 26.825 0.000 #> .att1pb2 0.427 0.017 25.557 0.000 #> .att2pb2 0.435 0.015 28.402 0.000 #> .att3pb2 0.364 0.012 29.496 0.000 #> .att1pb3 0.387 0.014 28.034 0.000 #> .att2pb3 0.347 0.012 29.384 0.000 #> .att3pb3 0.299 0.010 30.764 0.000 #> .sn1pc1 0.414 0.018 23.103 0.000 #> .sn2pc1 0.404 0.016 24.941 0.000 #> .sn3pc1 0.392 0.014 27.841 0.000 #> .sn1pc2 0.340 0.014 23.817 0.000 #> .sn2pc2 0.363 0.014 26.739 0.000 #> .sn3pc2 0.321 0.011 28.764 0.000 #> .sn1pc3 0.296 0.012 25.044 0.000 #> .sn2pc3 0.300 0.011 27.459 0.000 #> .sn3pc3 0.271 0.009 29.358 0.000 #> .sn1pb1 0.320 0.013 23.685 0.000 #> .sn2pb1 0.325 0.013 25.720 0.000 #> .sn3pb1 0.292 0.011 27.314 0.000 #> .sn1pb2 0.287 0.012 24.298 0.000 #> .sn2pb2 0.298 0.011 26.547 0.000 #> .sn3pb2 0.267 0.009 28.196 0.000 #> .sn1pb3 0.256 0.010 26.436 0.000 #> .sn2pb3 0.248 0.009 27.882 0.000 #> .sn3pb3 0.235 0.008 29.850 0.000 #> .ATT 0.342 0.094 3.641 0.000 #> .SN 0.229 0.043 5.317 0.000 #> .PB 0.688 0.062 11.176 0.000 #> .PC 0.503 0.127 3.970 0.000 #> .BEH 0.545 0.034 16.237 0.000 #> INT 1.058 0.104 10.185 0.000 #> PBC 1.201 0.137 8.775 0.000 #> INTxPBC 1.520 0.089 17.158 0.000 #> .ATTPC 0.942 0.055 17.182 0.000 #> .ATTPB 0.729 0.040 18.024 0.000 #> .SNPC 0.453 0.030 15.307 0.000 #> .SNPB 0.385 0.023 16.924 0.000"},{"path":"/articles/higher_order_interactions.html","id":"interaction-between-a-first-order-and-a-higher-order-construct","dir":"Articles","previous_headings":"","what":"Interaction between a first order and a higher order construct","title":"higher order interactions","text":"TPB_1SO dataset, INT construct second order construct ATT, SN PBC. example, estimate interaction INT (higher order construct) PBC (first order construct).","code":"tpb <- ' # First order constructs ATT =~ att1 + att2 + att3 SN =~ sn1 + sn2 + sn3 PBC =~ pbc1 + pbc2 + pbc3 BEH =~ b1 + b2 # Higher order constructs INT =~ ATT + PBC + SN # Higher order interaction INTxPBC =~ ATT:PBC + SN:PBC + PBC:PBC # Structural model BEH ~ PBC + INT + INTxPBC ' est_ca <- modsem(tpb, data = TPB_1SO, method = \"ca\") summary(est_ca) #> modsem (version 1.0.4, approach = ca): #> lavaan 0.6-19 ended normally after 446 iterations #> #> Estimator ML #> Optimization method NLMINB #> Number of model parameters 73 #> Row rank of the constraints matrix 21 #> #> Number of observations 2000 #> #> Model Test User Model: #> #> Test statistic 4246.901 #> Degrees of freedom 178 #> P-value (Chi-square) 0.000 #> #> Parameter Estimates: #> #> Standard errors Standard #> Information Expected #> Information saturated (h1) model Structured #> #> Latent Variables: #> Estimate Std.Err z-value P(>|z|) #> ATT =~ #> att1 (l_1_A) 1.000 #> att2 (l_2_A) 0.904 0.010 89.441 0.000 #> att3 (l_3_A) 0.801 0.009 85.442 0.000 #> SN =~ #> sn1 (l_1_S) 1.000 #> sn2 (l_2_S) 0.879 0.013 66.744 0.000 #> sn3 (l_3_S) 0.780 0.012 63.639 0.000 #> PBC =~ #> pbc1 (l_1_P) 1.000 #> pbc2 (l_2_P) 0.900 0.007 135.630 0.000 #> pbc3 (l_3_P) 0.776 0.006 125.111 0.000 #> BEH =~ #> b1 (l_1_B) 1.000 #> b2 (l_2_B) 0.863 0.033 26.043 0.000 #> INT =~ #> ATT (l_ATT_) 1.000 #> PBC (l_PBC_) 0.783 0.030 26.191 0.000 #> SN (l_SN_) 0.717 0.027 26.257 0.000 #> INTxPBC =~ #> ATTPB (l_ATTP) 1.000 #> SNPBC (l_SNP) 0.735 0.020 35.914 0.000 #> PBCPB (l_PBCP) 1.011 0.027 36.926 0.000 #> ATTPBC =~ #> att11 (l_11_A) 1.000 #> att22 (l_22_A) 0.813 0.009 87.006 0.000 #> att33 (l_33_A) 0.621 0.008 82.373 0.000 #> SNPBC =~ #> sn1p1 (l_11_S) 1.000 #> sn2p2 (l_22_S) 0.792 0.012 68.052 0.000 #> sn3p3 (l_33_S) 0.605 0.009 64.723 0.000 #> PBCPBC =~ #> pbc11 (l_11_P) 1.000 #> pbc22 (l_22_P) 0.810 0.012 67.815 0.000 #> pbc33 (l_33_P) 0.602 0.010 62.555 0.000 #> #> Regressions: #> Estimate Std.Err z-value P(>|z|) #> BEH ~ #> PBC (G_PB) 0.249 0.052 4.775 0.000 #> INT (G_INT_) 0.160 0.056 2.838 0.005 #> INTPB (G_INTP) 0.221 0.016 13.492 0.000 #> #> Covariances: #> Estimate Std.Err z-value P(>|z|) #> INT ~~ #> INTxPBC (C_IN) -0.019 0.025 -0.758 0.448 #> .att1pbc1 ~~ #> .att2pb2 0.000 #> .att3pb3 0.000 #> .att2pbc2 ~~ #> .att3pb3 0.000 #> .sn1pbc1 ~~ #> .sn2pbc2 0.000 #> .sn3pbc3 0.000 #> .sn2pbc2 ~~ #> .sn3pbc3 0.000 #> .pbc1pbc1 ~~ #> .pbc2pb2 0.000 #> .pbc3pb3 0.000 #> .pbc2pbc2 ~~ #> .pbc3pb3 0.000 #> #> Intercepts: #> Estimate Std.Err z-value P(>|z|) #> .ATTPBC (M_AT) 0.422 0.013 32.832 0.000 #> .SNPBC (M_SN) 0.302 0.010 30.547 0.000 #> .PBCPBC (M_PB) 0.575 0.011 51.528 0.000 #> .att1 1.001 0.023 44.025 0.000 #> .att2 1.008 0.021 47.861 0.000 #> .att3 1.002 0.019 52.974 0.000 #> .sn1 0.974 0.018 55.116 0.000 #> .sn2 0.982 0.016 60.802 0.000 #> .sn3 0.991 0.015 67.883 0.000 #> .pbc1 0.983 0.021 47.193 0.000 #> .pbc2 0.988 0.020 49.207 0.000 #> .pbc3 0.998 0.018 54.375 0.000 #> .b1 1.150 0.020 57.082 0.000 #> .b2 1.132 0.018 61.428 0.000 #> .att1pb1 0.391 0.038 10.186 0.000 #> .att2pb2 0.330 0.032 10.249 0.000 #> .att3pb3 0.256 0.025 10.137 0.000 #> .sn1pbc1 0.262 0.029 9.112 0.000 #> .sn2pbc2 0.226 0.024 9.516 0.000 #> .sn3pbc3 0.177 0.019 9.454 0.000 #> .pbc1pb1 0.553 0.038 14.525 0.000 #> .pbc2pb2 0.501 0.032 15.560 0.000 #> .pbc3pb3 0.421 0.025 16.843 0.000 #> #> Variances: #> Estimate Std.Err z-value P(>|z|) #> .ATT (Vr_ATT) 0.346 0.023 15.014 0.000 #> .SN (Vr_SN) 0.179 0.013 13.986 0.000 #> .PBC (Vr_PBC) 0.245 0.016 15.052 0.000 #> .BEH (Z_BE) 0.513 0.029 18.005 0.000 #> INT (Vr_INT) 0.539 0.027 19.889 0.000 #> INTPB (V_INTP) 1.535 0.076 20.148 0.000 #> .ATTPB (V_ATTP) 0.687 0.022 30.946 0.000 #> .SNPBC (V_SNP) 0.354 0.013 27.980 0.000 #> .PBCPB (V_PBCP) 0.662 0.026 25.764 0.000 #> .att1 (Vr_t1) 0.150 0.008 18.624 0.000 #> .att2 (Vr_t2) 0.165 0.007 22.170 0.000 #> .att3 (Vr_t3) 0.147 0.006 23.582 0.000 #> .sn1 (Vr_s1) 0.168 0.008 20.991 0.000 #> .sn2 (Vr_s2) 0.168 0.007 24.105 0.000 #> .sn3 (Vr_s3) 0.149 0.006 25.303 0.000 #> .pbc1 (Vr_p1) 0.293 0.009 30.965 0.000 #> .pbc2 (Vr_p2) 0.340 0.009 38.979 0.000 #> .pbc3 (Vr_p3) 0.327 0.007 44.262 0.000 #> .b1 (Vr_b1) 0.144 0.024 6.051 0.000 #> .b2 (Vr_b2) 0.181 0.018 9.880 0.000 #> .att11 (Vr_t11) 0.389 0.011 34.052 0.000 #> .att22 (Vr_t22) 0.378 0.010 39.469 0.000 #> .att33 (Vr_t33) 0.285 0.007 41.921 0.000 #> .sn1p1 (Vr_s11) 0.279 0.008 35.023 0.000 #> .sn2p2 (Vr_s22) 0.256 0.006 39.790 0.000 #> .sn3p3 (Vr_s33) 0.191 0.005 41.982 0.000 #> .pbc11 (Vr_p11) 0.423 0.015 28.080 0.000 #> .pbc22 (Vr_p22) 0.432 0.013 33.193 0.000 #> .pbc33 (Vr_p33) 0.334 0.009 35.936 0.000 #> #> Constraints: #> |Slack| #> V_ATTPBC-((_ATT_INT^2*V_INT+V_ATT)*(_PBC_ 0.000 #> V_11-(_1_ATT^2*(_ATT_INT^2*V_INT+V_ATT)*V 0.000 #> V_22-(_2_ATT^2*(_ATT_INT^2*V_INT+V_ATT)*V 0.000 #> V_33-(_3_ATT^2*(_ATT_INT^2*V_INT+V_ATT)*V 0.000 #> V_SNPBC-((_SN_INT^2*V_INT+V_SN)*(_PBC_INT 0.000 #> V_11-(_1_SN^2*(_SN_INT^2*V_INT+V_SN)*V_1+ 0.000 #> V_22-(_2_SN^2*(_SN_INT^2*V_INT+V_SN)*V_2+ 0.000 #> V_33-(_3_SN^2*(_SN_INT^2*V_INT+V_SN)*V_3+ 0.000 #> V_PBCPBC-((_PBC_INT^2*V_INT+V_PBC)*(_PBC_ 0.000 #> V_11-(_1_PBC^2*(_PBC_INT^2*V_INT+V_PBC)*V 0.000 #> V_22-(_2_PBC^2*(_PBC_INT^2*V_INT+V_PBC)*V 0.000 #> V_33-(_3_PBC^2*(_PBC_INT^2*V_INT+V_PBC)*V 0.000 #> lmbd_tt1pbc1_ATTPBC-(lmbd_tt1_ATT*_1_PBC) 0.000 #> lmbd_tt2pbc2_ATTPBC-(lmbd_tt2_ATT*_2_PBC) 0.000 #> lmbd_tt3pbc3_ATTPBC-(lmbd_tt3_ATT*_3_PBC) 0.000 #> lmbd_sn1pbc1_SNPBC-(lmbd_sn1_SN*lm_1_PBC) 0.000 #> lmbd_sn2pbc2_SNPBC-(lmbd_sn2_SN*lm_2_PBC) 0.000 #> lmbd_sn3pbc3_SNPBC-(lmbd_sn3_SN*lm_3_PBC) 0.000 #> lmbd_pbc1pbc1_PBCPBC-(lmbd_p1_PBC*_1_PBC) 0.000 #> lmbd_pbc2pbc2_PBCPBC-(lmbd_p2_PBC*_2_PBC) 0.000 #> lmbd_pbc3pbc3_PBCPBC-(lmbd_p3_PBC*_3_PBC) 0.000 #> Mn_ATTPBC-((lmbd_ATT_INT*_PBC_INT*V_INT)) 0.000 #> Mn_SNPBC-((lmbd_PBC_INT*lm_SN_INT*V_INT)) 0.000 #> Mn_PBCPBC-((lmbd_PBC_INT^2*Vr_INT+V_PBC)) 0.000 est_dblcent <- modsem(tpb, data = TPB_1SO, method = \"dblcent\") summary(est_dblcent) #> modsem (version 1.0.4, approach = dblcent): #> lavaan 0.6-19 ended normally after 339 iterations #> #> Estimator ML #> Optimization method NLMINB #> Number of model parameters 125 #> #> Number of observations 2000 #> #> Model Test User Model: #> #> Test statistic 6227.020 #> Degrees of freedom 505 #> P-value (Chi-square) 0.000 #> #> Parameter Estimates: #> #> Standard errors Standard #> Information Expected #> Information saturated (h1) model Structured #> #> Latent Variables: #> Estimate Std.Err z-value P(>|z|) #> ATT =~ #> att1 1.000 #> att2 0.909 0.011 82.767 0.000 #> att3 0.802 0.010 80.426 0.000 #> SN =~ #> sn1 1.000 #> sn2 0.891 0.016 54.218 0.000 #> sn3 0.790 0.015 52.448 0.000 #> PBC =~ #> pbc1 1.000 #> pbc2 0.909 0.014 66.751 0.000 #> pbc3 0.793 0.013 63.368 0.000 #> BEH =~ #> b1 1.000 #> b2 0.864 0.029 30.237 0.000 #> INT =~ #> ATT 1.000 #> PBC 0.819 0.024 33.977 0.000 #> SN 0.702 0.021 33.482 0.000 #> INTxPBC =~ #> ATTPBC 1.000 #> SNPBC 0.717 0.017 42.130 0.000 #> PBCPBC 1.003 0.024 42.678 0.000 #> ATTPBC =~ #> att1pbc1 1.000 #> att2pbc1 0.896 0.010 94.261 0.000 #> att3pbc1 0.808 0.009 92.565 0.000 #> att1pbc2 0.899 0.011 79.087 0.000 #> att2pbc2 0.804 0.013 61.655 0.000 #> att3pbc2 0.727 0.012 61.499 0.000 #> att1pbc3 0.752 0.011 70.229 0.000 #> att2pbc3 0.675 0.012 55.856 0.000 #> att3pbc3 0.614 0.011 56.951 0.000 #> SNPBC =~ #> sn1pbc1 1.000 #> sn2pbc1 0.884 0.013 65.689 0.000 #> sn3pbc1 0.783 0.012 63.016 0.000 #> sn1pbc2 0.893 0.012 76.169 0.000 #> sn2pbc2 0.791 0.015 51.434 0.000 #> sn3pbc2 0.693 0.014 49.947 0.000 #> sn1pbc3 0.771 0.011 70.139 0.000 #> sn2pbc3 0.673 0.014 48.082 0.000 #> sn3pbc3 0.601 0.013 47.729 0.000 #> PBCPBC =~ #> pbc1pbc1 1.000 #> pbc2pbc1 0.902 0.010 86.187 0.000 #> pbc3pbc1 0.764 0.010 79.520 0.000 #> pbc2pbc2 0.812 0.018 44.917 0.000 #> pbc3pbc2 0.689 0.013 51.106 0.000 #> pbc3pbc3 0.590 0.015 40.172 0.000 #> #> Regressions: #> Estimate Std.Err z-value P(>|z|) #> BEH ~ #> PBC 0.189 0.043 4.359 0.000 #> INT 0.187 0.045 4.140 0.000 #> INTxPBC 0.203 0.015 13.754 0.000 #> #> Covariances: #> Estimate Std.Err z-value P(>|z|) #> .att1pbc1 ~~ #> .att2pbc2 0.000 #> .att2pbc3 0.000 #> .att3pbc2 0.000 #> .att3pbc3 0.000 #> .att2pbc1 ~~ #> .att1pbc2 0.000 #> .att1pbc2 ~~ #> .att2pbc3 0.000 #> .att3pbc1 ~~ #> .att1pbc2 0.000 #> .att1pbc2 ~~ #> .att3pbc3 0.000 #> .att2pbc1 ~~ #> .att1pbc3 0.000 #> .att2pbc2 ~~ #> .att1pbc3 0.000 #> .att3pbc1 ~~ #> .att1pbc3 0.000 #> .att3pbc2 ~~ #> .att1pbc3 0.000 #> .att2pbc1 ~~ #> .att3pbc2 0.000 #> .att3pbc3 0.000 #> .att3pbc1 ~~ #> .att2pbc2 0.000 #> .att2pbc2 ~~ #> .att3pbc3 0.000 #> .att3pbc1 ~~ #> .att2pbc3 0.000 #> .att3pbc2 ~~ #> .att2pbc3 0.000 #> .att1pbc1 ~~ #> .att1pbc2 0.123 0.008 15.877 0.000 #> .att1pbc3 0.108 0.007 15.606 0.000 #> .att2pbc1 0.188 0.011 16.599 0.000 #> .att3pbc1 0.166 0.010 16.500 0.000 #> .att1pbc2 ~~ #> .att1pbc3 0.098 0.006 15.298 0.000 #> .att2pbc2 0.211 0.011 19.889 0.000 #> .att3pbc2 0.194 0.010 20.282 0.000 #> .att1pbc3 ~~ #> .att2pbc3 0.237 0.010 23.982 0.000 #> .att3pbc3 0.204 0.009 23.565 0.000 #> .att2pbc1 ~~ #> .att2pbc2 0.156 0.008 20.453 0.000 #> .att2pbc3 0.144 0.007 20.721 0.000 #> .att3pbc1 0.153 0.009 16.556 0.000 #> .att2pbc2 ~~ #> .att2pbc3 0.130 0.006 20.338 0.000 #> .att3pbc2 0.174 0.009 19.943 0.000 #> .att2pbc3 ~~ #> .att3pbc3 0.185 0.008 23.276 0.000 #> .att3pbc1 ~~ #> .att3pbc2 0.133 0.006 20.972 0.000 #> .att3pbc3 0.119 0.006 20.773 0.000 #> .att3pbc2 ~~ #> .att3pbc3 0.107 0.005 20.310 0.000 #> .sn1pbc1 ~~ #> .sn2pbc2 0.000 #> .sn2pbc3 0.000 #> .sn3pbc2 0.000 #> .sn3pbc3 0.000 #> .sn2pbc1 ~~ #> .sn1pbc2 0.000 #> .sn1pbc2 ~~ #> .sn2pbc3 0.000 #> .sn3pbc1 ~~ #> .sn1pbc2 0.000 #> .sn1pbc2 ~~ #> .sn3pbc3 0.000 #> .sn2pbc1 ~~ #> .sn1pbc3 0.000 #> .sn2pbc2 ~~ #> .sn1pbc3 0.000 #> .sn3pbc1 ~~ #> .sn1pbc3 0.000 #> .sn3pbc2 ~~ #> .sn1pbc3 0.000 #> .sn2pbc1 ~~ #> .sn3pbc2 0.000 #> .sn3pbc3 0.000 #> .sn3pbc1 ~~ #> .sn2pbc2 0.000 #> .sn2pbc2 ~~ #> .sn3pbc3 0.000 #> .sn3pbc1 ~~ #> .sn2pbc3 0.000 #> .sn3pbc2 ~~ #> .sn2pbc3 0.000 #> .sn1pbc1 ~~ #> .sn1pbc2 0.163 0.008 19.281 0.000 #> .sn1pbc3 0.140 0.007 18.855 0.000 #> .sn2pbc1 0.092 0.006 15.534 0.000 #> .sn3pbc1 0.082 0.005 15.167 0.000 #> .sn1pbc2 ~~ #> .sn1pbc3 0.128 0.007 18.607 0.000 #> .sn2pbc2 0.103 0.006 18.569 0.000 #> .sn3pbc2 0.097 0.005 19.080 0.000 #> .sn1pbc3 ~~ #> .sn2pbc3 0.110 0.005 21.785 0.000 #> .sn3pbc3 0.099 0.005 21.584 0.000 #> .sn2pbc1 ~~ #> .sn2pbc2 0.137 0.007 19.800 0.000 #> .sn2pbc3 0.122 0.006 19.734 0.000 #> .sn3pbc1 0.074 0.005 15.077 0.000 #> .sn2pbc2 ~~ #> .sn2pbc3 0.110 0.006 19.347 0.000 #> .sn3pbc2 0.084 0.005 18.558 0.000 #> .sn2pbc3 ~~ #> .sn3pbc3 0.087 0.004 21.102 0.000 #> .sn3pbc1 ~~ #> .sn3pbc2 0.121 0.006 20.829 0.000 #> .sn3pbc3 0.106 0.005 20.481 0.000 #> .sn3pbc2 ~~ #> .sn3pbc3 0.094 0.005 20.111 0.000 #> .pbc1pbc1 ~~ #> .pbc2pbc2 0.000 #> .pbc3pbc2 0.000 #> .pbc3pbc3 0.000 #> .pbc2pbc1 ~~ #> .pbc3pbc3 0.000 #> .pbc3pbc1 ~~ #> .pbc2pbc2 0.000 #> .pbc2pbc2 ~~ #> .pbc3pbc3 0.000 #> .pbc1pbc1 ~~ #> .pbc2pbc1 0.268 0.014 19.031 0.000 #> .pbc3pbc1 0.240 0.012 19.187 0.000 #> .pbc2pbc1 ~~ #> .pbc2pbc2 0.302 0.014 22.286 0.000 #> .pbc3pbc1 0.106 0.006 17.710 0.000 #> .pbc3pbc2 0.132 0.006 20.914 0.000 #> .pbc2pbc2 ~~ #> .pbc3pbc2 0.244 0.011 21.890 0.000 #> .pbc3pbc1 ~~ #> .pbc3pbc2 0.152 0.006 23.891 0.000 #> .pbc3pbc3 0.272 0.011 24.933 0.000 #> .pbc3pbc2 ~~ #> .pbc3pbc3 0.243 0.010 24.501 0.000 #> INT ~~ #> INTxPBC -0.038 0.033 -1.150 0.250 #> #> Variances: #> Estimate Std.Err z-value P(>|z|) #> .att1 0.152 0.008 18.217 0.000 #> .att2 0.168 0.008 21.469 0.000 #> .att3 0.147 0.006 22.691 0.000 #> .sn1 0.171 0.009 19.842 0.000 #> .sn2 0.165 0.008 21.850 0.000 #> .sn3 0.151 0.006 23.313 0.000 #> .pbc1 0.162 0.009 18.804 0.000 #> .pbc2 0.167 0.008 21.285 0.000 #> .pbc3 0.159 0.007 23.501 0.000 #> .b1 0.144 0.021 6.755 0.000 #> .b2 0.181 0.017 10.910 0.000 #> .att1pbc1 0.363 0.016 23.326 0.000 #> .att2pbc1 0.370 0.014 26.472 0.000 #> .att3pbc1 0.305 0.011 26.846 0.000 #> .att1pbc2 0.378 0.014 26.203 0.000 #> .att2pbc2 0.366 0.013 28.665 0.000 #> .att3pbc2 0.303 0.010 29.105 0.000 #> .att1pbc3 0.369 0.013 29.040 0.000 #> .att2pbc3 0.361 0.011 31.610 0.000 #> .att3pbc3 0.281 0.009 31.219 0.000 #> .sn1pbc1 0.306 0.012 25.602 0.000 #> .sn2pbc1 0.256 0.010 26.184 0.000 #> .sn3pbc1 0.228 0.008 27.105 0.000 #> .sn1pbc2 0.300 0.011 27.855 0.000 #> .sn2pbc2 0.243 0.009 27.943 0.000 #> .sn3pbc2 0.209 0.007 29.007 0.000 #> .sn1pbc3 0.260 0.009 29.414 0.000 #> .sn2pbc3 0.225 0.007 30.173 0.000 #> .sn3pbc3 0.185 0.006 30.379 0.000 #> .pbc1pbc1 0.646 0.030 21.568 0.000 #> .pbc2pbc1 0.306 0.011 27.014 0.000 #> .pbc3pbc1 0.290 0.010 29.693 0.000 #> .pbc2pbc2 0.618 0.025 24.778 0.000 #> .pbc3pbc2 0.271 0.009 30.899 0.000 #> .pbc3pbc3 0.482 0.018 27.155 0.000 #> .ATT 0.389 0.025 15.717 0.000 #> .SN 0.199 0.014 14.732 0.000 #> .PBC 0.300 0.018 16.350 0.000 #> .BEH 0.521 0.027 19.503 0.000 #> INT 0.995 0.049 20.233 0.000 #> INTxPBC 1.701 0.074 22.836 0.000 #> .ATTPBC 0.309 0.025 12.116 0.000 #> .SNPBC 0.193 0.015 12.939 0.000 #> .PBCPBC 0.206 0.027 7.713 0.000"},{"path":"/articles/interaction_two_etas.html","id":"the-problem","dir":"Articles","previous_headings":"","what":"The Problem","title":"interaction effects between endogenous variables","text":"Interaction effects two endogenous (.e., dependent) variables work expect product indicator methods (\"dblcent\", \"rca\", \"ca\", \"uca\"). However, lms qml approaches, straightforward. lms qml approaches can (default) handle interaction effects endogenous exogenous (.e., independent) variables, natively support interaction effects two endogenous variables. interaction effect exists two endogenous variables, equations easily written “reduced” form, meaning normal estimation procedures won’t work.","code":""},{"path":"/articles/interaction_two_etas.html","id":"the-solution","dir":"Articles","previous_headings":"","what":"The Solution","title":"interaction effects between endogenous variables","text":"Despite limitations, workaround lms qml approaches. Essentially, model can split two parts: one linear one non-linear. can replace covariance matrix used estimation non-linear model model-implied covariance matrix linear model. allows treat endogenous variable exogenous—provided can expressed linear model.","code":""},{"path":"/articles/interaction_two_etas.html","id":"example","dir":"Articles","previous_headings":"","what":"Example","title":"interaction effects between endogenous variables","text":"Let’s consider theory planned behavior (TPB), wish estimate quadratic effect INT BEH (INT:INT). can use following model: Since INT endogenous variable, quadratic term (.e., interaction effect ) involve two endogenous variables. result, normally able estimate model using lms qml approaches. However, can split model two parts: one linear one non-linear. INT endogenous variable, can expressed linear model since affected interaction terms: can remove part original model, giving us: Now, can estimate non-linear model since INT treated exogenous variable. However, incorporate structural model INT. address , can instruct modsem replace covariance matrix (phi) (INT, PBC, ATT, SN) model-implied covariance matrix linear model estimating models simultaneously. achieve , use cov.syntax argument modsem:","code":"tpb <- ' # Outer Model (Based on Hagger et al., 2007) ATT =~ att1 + att2 + att3 + att4 + att5 SN =~ sn1 + sn2 PBC =~ pbc1 + pbc2 + pbc3 INT =~ int1 + int2 + int3 BEH =~ b1 + b2 # Inner Model (Based on Steinmetz et al., 2011) INT ~ ATT + SN + PBC BEH ~ INT + PBC BEH ~ INT:INT ' tpb_linear <- 'INT ~ PBC + ATT + SN' tpb_nonlinear <- ' # Outer Model (Based on Hagger et al., 2007) ATT =~ att1 + att2 + att3 + att4 + att5 SN =~ sn1 + sn2 PBC =~ pbc1 + pbc2 + pbc3 INT =~ int1 + int2 + int3 BEH =~ b1 + b2 # Inner Model (Based on Steinmetz et al., 2011) BEH ~ INT + PBC BEH ~ INT:INT ' est_lms <- modsem(tpb_nonlinear, data = TPB, cov.syntax = tpb_linear, method = \"lms\") #> Warning: It is recommended that you have at least 48 nodes for interaction #> effects between endogenous variables in the lms approach 'nodes = 24' summary(est_lms) #> #> modsem (version 1.0.4): #> Estimator LMS #> Optimization method EM-NLMINB #> Number of observations 2000 #> Number of iterations 63 #> Loglikelihood -23780.86 #> Akaike (AIC) 47669.71 #> Bayesian (BIC) 47972.16 #> #> Numerical Integration: #> Points of integration (per dim) 24 #> Dimensions 1 #> Total points of integration 24 #> #> Fit Measures for H0: #> Loglikelihood -26393 #> Akaike (AIC) 52892.45 #> Bayesian (BIC) 53189.29 #> Chi-square 66.27 #> Degrees of Freedom (Chi-square) 82 #> P-value (Chi-square) 0.897 #> RMSEA 0.000 #> #> Comparative fit to H0 (no interaction effect) #> Loglikelihood change 2612.37 #> Difference test (D) 5224.73 #> Degrees of freedom (D) 1 #> P-value (D) 0.000 #> #> R-Squared: #> BEH 0.235 #> INT 0.364 #> R-Squared Null-Model (H0): #> BEH 0.210 #> INT 0.367 #> R-Squared Change: #> BEH 0.025 #> INT -0.002 #> #> Parameter Estimates: #> Coefficients unstandardized #> Information expected #> Standard errors standard #> #> Latent Variables: #> Estimate Std.Error z.value P(>|z|) #> INT =~ #> int1 1.000 #> int2 0.915 0.024 38.09 0.000 #> int3 0.807 0.019 43.02 0.000 #> ATT =~ #> att1 1.000 #> att2 0.878 0.015 56.99 0.000 #> att3 0.789 0.015 50.95 0.000 #> att4 0.695 0.016 43.22 0.000 #> att5 0.887 0.019 47.24 0.000 #> SN =~ #> sn1 1.000 #> sn2 0.888 0.026 34.20 0.000 #> PBC =~ #> pbc1 1.000 #> pbc2 0.913 0.018 50.55 0.000 #> pbc3 0.801 0.019 41.39 0.000 #> BEH =~ #> b1 1.000 #> b2 0.959 0.053 18.18 0.000 #> #> Regressions: #> Estimate Std.Error z.value P(>|z|) #> BEH ~ #> INT 0.196 0.035 5.60 0.000 #> PBC 0.238 0.032 7.54 0.000 #> INT:INT 0.129 0.027 4.83 0.000 #> INT ~ #> PBC 0.219 0.044 5.03 0.000 #> ATT 0.210 0.044 4.82 0.000 #> SN 0.171 0.045 3.78 0.000 #> #> Intercepts: #> Estimate Std.Error z.value P(>|z|) #> int1 1.007 0.029 34.22 0.000 #> int2 1.006 0.025 40.68 0.000 #> int3 0.999 0.024 41.61 0.000 #> att1 1.010 0.034 29.46 0.000 #> att2 1.003 0.029 34.64 0.000 #> att3 1.013 0.029 35.54 0.000 #> att4 0.996 0.024 42.12 0.000 #> att5 0.989 0.031 31.61 0.000 #> sn1 1.002 0.045 22.34 0.000 #> sn2 1.007 0.040 25.29 0.000 #> pbc1 0.994 0.041 24.36 0.000 #> pbc2 0.981 0.035 28.30 0.000 #> pbc3 0.988 0.035 28.32 0.000 #> b1 0.997 0.032 30.87 0.000 #> b2 1.015 0.027 37.81 0.000 #> BEH 0.000 #> INT 0.000 #> ATT 0.000 #> SN 0.000 #> PBC 0.000 #> #> Covariances: #> Estimate Std.Error z.value P(>|z|) #> PBC ~~ #> ATT 0.673 0.047 14.34 0.000 #> SN 0.673 0.050 13.54 0.000 #> ATT ~~ #> SN 0.624 0.052 12.10 0.000 #> #> Variances: #> Estimate Std.Error z.value P(>|z|) #> int1 0.161 0.014 11.65 0.000 #> int2 0.161 0.010 16.29 0.000 #> int3 0.170 0.010 16.18 0.000 #> att1 0.167 0.009 17.75 0.000 #> att2 0.150 0.008 17.78 0.000 #> att3 0.160 0.009 17.67 0.000 #> att4 0.162 0.008 20.08 0.000 #> att5 0.159 0.008 18.70 0.000 #> sn1 0.178 0.020 8.73 0.000 #> sn2 0.157 0.017 9.04 0.000 #> pbc1 0.145 0.011 12.72 0.000 #> pbc2 0.160 0.010 15.74 0.000 #> pbc3 0.154 0.009 17.12 0.000 #> b1 0.185 0.033 5.64 0.000 #> b2 0.136 0.033 4.16 0.000 #> BEH 0.475 0.044 10.75 0.000 #> PBC 0.956 0.056 16.99 0.000 #> ATT 0.993 0.057 17.36 0.000 #> SN 0.983 0.065 15.07 0.000 #> INT 0.481 0.029 16.63 0.000 est_qml <- modsem(tpb_nonlinear, data = TPB, cov.syntax = tpb_linear, method = \"qml\") summary(est_qml) #> #> modsem (version 1.0.4): #> Estimator QML #> Optimization method NLMINB #> Number of observations 2000 #> Number of iterations 71 #> Loglikelihood -26360.52 #> Akaike (AIC) 52829.04 #> Bayesian (BIC) 53131.49 #> #> Fit Measures for H0: #> Loglikelihood -26393 #> Akaike (AIC) 52892.45 #> Bayesian (BIC) 53189.29 #> Chi-square 66.27 #> Degrees of Freedom (Chi-square) 82 #> P-value (Chi-square) 0.897 #> RMSEA 0.000 #> #> Comparative fit to H0 (no interaction effect) #> Loglikelihood change 32.70 #> Difference test (D) 65.41 #> Degrees of freedom (D) 1 #> P-value (D) 0.000 #> #> R-Squared: #> BEH 0.239 #> INT 0.370 #> R-Squared Null-Model (H0): #> BEH 0.210 #> INT 0.367 #> R-Squared Change: #> BEH 0.029 #> INT 0.003 #> #> Parameter Estimates: #> Coefficients unstandardized #> Information observed #> Standard errors standard #> #> Latent Variables: #> Estimate Std.Error z.value P(>|z|) #> INT =~ #> int1 1.000 #> int2 0.914 0.015 59.04 0.000 #> int3 0.807 0.015 55.65 0.000 #> ATT =~ #> att1 1.000 #> att2 0.878 0.012 71.56 0.000 #> att3 0.789 0.012 66.37 0.000 #> att4 0.695 0.011 61.00 0.000 #> att5 0.887 0.013 70.85 0.000 #> SN =~ #> sn1 1.000 #> sn2 0.888 0.017 52.62 0.000 #> PBC =~ #> pbc1 1.000 #> pbc2 0.913 0.013 69.38 0.000 #> pbc3 0.801 0.012 66.08 0.000 #> BEH =~ #> b1 1.000 #> b2 0.960 0.032 29.90 0.000 #> #> Regressions: #> Estimate Std.Error z.value P(>|z|) #> BEH ~ #> INT 0.197 0.025 7.76 0.000 #> PBC 0.239 0.023 10.59 0.000 #> INT:INT 0.128 0.016 7.88 0.000 #> INT ~ #> PBC 0.222 0.030 7.51 0.000 #> ATT 0.213 0.026 8.17 0.000 #> SN 0.175 0.028 6.33 0.000 #> #> Intercepts: #> Estimate Std.Error z.value P(>|z|) #> int1 1.014 0.022 46.96 0.000 #> int2 1.012 0.020 50.40 0.000 #> int3 1.005 0.018 54.80 0.000 #> att1 1.014 0.024 42.00 0.000 #> att2 1.007 0.021 46.96 0.000 #> att3 1.016 0.020 51.45 0.000 #> att4 0.999 0.018 55.65 0.000 #> att5 0.992 0.022 45.67 0.000 #> sn1 1.006 0.024 41.66 0.000 #> sn2 1.010 0.022 46.70 0.000 #> pbc1 0.998 0.024 42.41 0.000 #> pbc2 0.985 0.022 44.93 0.000 #> pbc3 0.991 0.020 50.45 0.000 #> b1 0.999 0.023 42.63 0.000 #> b2 1.017 0.022 46.24 0.000 #> BEH 0.000 #> INT 0.000 #> ATT 0.000 #> SN 0.000 #> PBC 0.000 #> #> Covariances: #> Estimate Std.Error z.value P(>|z|) #> PBC ~~ #> ATT 0.678 0.029 23.45 0.000 #> SN 0.678 0.029 23.08 0.000 #> ATT ~~ #> SN 0.629 0.029 21.70 0.000 #> #> Variances: #> Estimate Std.Error z.value P(>|z|) #> int1 0.158 0.009 18.22 0.000 #> int2 0.160 0.008 20.38 0.000 #> int3 0.168 0.007 23.63 0.000 #> att1 0.167 0.007 23.53 0.000 #> att2 0.150 0.006 24.71 0.000 #> att3 0.160 0.006 26.38 0.000 #> att4 0.162 0.006 27.65 0.000 #> att5 0.159 0.006 24.93 0.000 #> sn1 0.178 0.015 12.09 0.000 #> sn2 0.157 0.012 13.26 0.000 #> pbc1 0.145 0.008 18.44 0.000 #> pbc2 0.160 0.007 21.42 0.000 #> pbc3 0.154 0.006 23.80 0.000 #> b1 0.185 0.020 9.42 0.000 #> b2 0.135 0.018 7.60 0.000 #> BEH 0.475 0.024 19.74 0.000 #> PBC 0.962 0.036 27.04 0.000 #> ATT 0.998 0.037 26.93 0.000 #> SN 0.988 0.039 25.23 0.000 #> INT 0.488 0.020 24.59 0.000"},{"path":"/articles/lms_qml.html","id":"the-latent-moderated-structural-equations-lms-and-the-quasi-maximum-likelihood-qml-approach","dir":"Articles","previous_headings":"","what":"The Latent Moderated Structural Equations (LMS) and the Quasi Maximum Likelihood (QML) Approach","title":"LMS and QML approaches","text":"LMS QML approaches work models, interaction effects endogenous variables can tricky estimate (see vignette). approaches, particularly LMS approach, computationally intensive partially implemented C++ (using Rcpp RcppArmadillo). Additionally, starting parameters estimated using double-centering approach, means observed variables used generate good starting parameters faster convergence. want monitor progress estimation process, can use verbose = TRUE.","code":""},{"path":"/articles/lms_qml.html","id":"a-simple-example","dir":"Articles","previous_headings":"The Latent Moderated Structural Equations (LMS) and the Quasi Maximum Likelihood (QML) Approach","what":"A Simple Example","title":"LMS and QML approaches","text":"example LMS approach simple model. default, summary() function calculates fit measures compared null model (.e., model without interaction term). example using QML approach:","code":"library(modsem) m1 <- ' # Outer Model X =~ x1 X =~ x2 + x3 Z =~ z1 + z2 + z3 Y =~ y1 + y2 + y3 # Inner Model Y ~ X + Z Y ~ X:Z ' lms1 <- modsem(m1, oneInt, method = \"lms\") summary(lms1, standardized = TRUE) # Standardized estimates #> #> modsem (version 1.0.4): #> Estimator LMS #> Optimization method EM-NLMINB #> Number of observations 2000 #> Number of iterations 84 #> Loglikelihood -14687.86 #> Akaike (AIC) 29437.72 #> Bayesian (BIC) 29611.35 #> #> Numerical Integration: #> Points of integration (per dim) 24 #> Dimensions 1 #> Total points of integration 24 #> #> Fit Measures for H0: #> Loglikelihood -17832 #> Akaike (AIC) 35723.75 #> Bayesian (BIC) 35891.78 #> Chi-square 17.52 #> Degrees of Freedom (Chi-square) 24 #> P-value (Chi-square) 0.826 #> RMSEA 0.000 #> #> Comparative fit to H0 (no interaction effect) #> Loglikelihood change 3144.01 #> Difference test (D) 6288.02 #> Degrees of freedom (D) 1 #> P-value (D) 0.000 #> #> R-Squared: #> Y 0.596 #> R-Squared Null-Model (H0): #> Y 0.395 #> R-Squared Change: #> Y 0.201 #> #> Parameter Estimates: #> Coefficients standardized #> Information expected #> Standard errors standard #> #> Latent Variables: #> Estimate Std.Error z.value P(>|z|) #> X =~ #> x1 0.926 #> x2 0.891 0.020 45.23 0.000 #> x3 0.912 0.015 62.37 0.000 #> Z =~ #> z1 0.927 #> z2 0.898 0.016 55.97 0.000 #> z3 0.913 0.014 64.52 0.000 #> Y =~ #> y1 0.969 #> y2 0.954 0.011 85.43 0.000 #> y3 0.961 0.011 88.71 0.000 #> #> Regressions: #> Estimate Std.Error z.value P(>|z|) #> Y ~ #> X 0.427 0.025 17.21 0.000 #> Z 0.370 0.025 14.98 0.000 #> X:Z 0.453 0.020 22.46 0.000 #> #> Covariances: #> Estimate Std.Error z.value P(>|z|) #> X ~~ #> Z 0.199 0.032 6.27 0.000 #> #> Variances: #> Estimate Std.Error z.value P(>|z|) #> x1 0.142 0.009 15.38 0.000 #> x2 0.206 0.010 19.89 0.000 #> x3 0.169 0.009 19.18 0.000 #> z1 0.141 0.008 16.74 0.000 #> z2 0.193 0.011 17.18 0.000 #> z3 0.167 0.009 18.54 0.000 #> y1 0.061 0.004 16.78 0.000 #> y2 0.090 0.005 20.01 0.000 #> y3 0.077 0.004 18.39 0.000 #> X 1.000 0.039 25.86 0.000 #> Z 1.000 0.051 19.55 0.000 #> Y 0.404 0.018 21.94 0.000 qml1 <- modsem(m1, oneInt, method = \"qml\") summary(qml1) #> #> modsem (version 1.0.4): #> Estimator QML #> Optimization method NLMINB #> Number of observations 2000 #> Number of iterations 109 #> Loglikelihood -17496.22 #> Akaike (AIC) 35054.43 #> Bayesian (BIC) 35228.06 #> #> Fit Measures for H0: #> Loglikelihood -17832 #> Akaike (AIC) 35723.75 #> Bayesian (BIC) 35891.78 #> Chi-square 17.52 #> Degrees of Freedom (Chi-square) 24 #> P-value (Chi-square) 0.826 #> RMSEA 0.000 #> #> Comparative fit to H0 (no interaction effect) #> Loglikelihood change 335.66 #> Difference test (D) 671.32 #> Degrees of freedom (D) 1 #> P-value (D) 0.000 #> #> R-Squared: #> Y 0.607 #> R-Squared Null-Model (H0): #> Y 0.395 #> R-Squared Change: #> Y 0.211 #> #> Parameter Estimates: #> Coefficients unstandardized #> Information observed #> Standard errors standard #> #> Latent Variables: #> Estimate Std.Error z.value P(>|z|) #> X =~ #> x1 1.000 #> x2 0.803 0.013 63.96 0.000 #> x3 0.914 0.013 67.79 0.000 #> Z =~ #> z1 1.000 #> z2 0.810 0.012 65.12 0.000 #> z3 0.881 0.013 67.62 0.000 #> Y =~ #> y1 1.000 #> y2 0.798 0.007 107.58 0.000 #> y3 0.899 0.008 112.55 0.000 #> #> Regressions: #> Estimate Std.Error z.value P(>|z|) #> Y ~ #> X 0.674 0.032 20.94 0.000 #> Z 0.566 0.030 18.96 0.000 #> X:Z 0.712 0.028 25.45 0.000 #> #> Intercepts: #> Estimate Std.Error z.value P(>|z|) #> x1 1.023 0.024 42.89 0.000 #> x2 1.216 0.020 60.99 0.000 #> x3 0.919 0.022 41.48 0.000 #> z1 1.012 0.024 41.58 0.000 #> z2 1.206 0.020 59.27 0.000 #> z3 0.916 0.022 42.06 0.000 #> y1 1.038 0.033 31.46 0.000 #> y2 1.221 0.027 45.49 0.000 #> y3 0.955 0.030 31.86 0.000 #> Y 0.000 #> X 0.000 #> Z 0.000 #> #> Covariances: #> Estimate Std.Error z.value P(>|z|) #> X ~~ #> Z 0.200 0.024 8.24 0.000 #> #> Variances: #> Estimate Std.Error z.value P(>|z|) #> x1 0.158 0.009 18.14 0.000 #> x2 0.162 0.007 23.19 0.000 #> x3 0.165 0.008 20.82 0.000 #> z1 0.166 0.009 18.34 0.000 #> z2 0.159 0.007 22.62 0.000 #> z3 0.158 0.008 20.71 0.000 #> y1 0.159 0.009 17.98 0.000 #> y2 0.154 0.007 22.67 0.000 #> y3 0.164 0.008 20.71 0.000 #> X 0.983 0.036 27.00 0.000 #> Z 1.019 0.038 26.95 0.000 #> Y 0.943 0.038 24.87 0.000"},{"path":"/articles/lms_qml.html","id":"a-more-complicated-example","dir":"Articles","previous_headings":"The Latent Moderated Structural Equations (LMS) and the Quasi Maximum Likelihood (QML) Approach","what":"A More Complicated Example","title":"LMS and QML approaches","text":"example complex model based theory planned behavior (TPB), includes two endogenous variables interaction endogenous exogenous variable. estimating complex models LMS approach, recommended increase number nodes used numerical integration. default, number nodes set 16, can increased using nodes argument. nodes argument effect QML approach. interaction effect endogenous exogenous variable, recommended use least 32 nodes LMS approach. can also obtain robust standard errors setting robust.se = TRUE modsem() function. Note: want LMS approach produce results similar possible Mplus, increase number nodes (e.g., nodes = 100).","code":"# ATT = Attitude # PBC = Perceived Behavioral Control # INT = Intention # SN = Subjective Norms # BEH = Behavior tpb <- ' # Outer Model (Based on Hagger et al., 2007) ATT =~ att1 + att2 + att3 + att4 + att5 SN =~ sn1 + sn2 PBC =~ pbc1 + pbc2 + pbc3 INT =~ int1 + int2 + int3 BEH =~ b1 + b2 # Inner Model (Based on Steinmetz et al., 2011) INT ~ ATT + SN + PBC BEH ~ INT + PBC BEH ~ INT:PBC ' lms2 <- modsem(tpb, TPB, method = \"lms\", nodes = 32) summary(lms2) #> #> modsem (version 1.0.4): #> Estimator LMS #> Optimization method EM-NLMINB #> Number of observations 2000 #> Number of iterations 64 #> Loglikelihood -23439.2 #> Akaike (AIC) 46986.41 #> Bayesian (BIC) 47288.85 #> #> Numerical Integration: #> Points of integration (per dim) 32 #> Dimensions 1 #> Total points of integration 32 #> #> Fit Measures for H0: #> Loglikelihood -26393 #> Akaike (AIC) 52892.45 #> Bayesian (BIC) 53189.29 #> Chi-square 66.27 #> Degrees of Freedom (Chi-square) 82 #> P-value (Chi-square) 0.897 #> RMSEA 0.000 #> #> Comparative fit to H0 (no interaction effect) #> Loglikelihood change 2954.02 #> Difference test (D) 5908.04 #> Degrees of freedom (D) 1 #> P-value (D) 0.000 #> #> R-Squared: #> INT 0.364 #> BEH 0.259 #> R-Squared Null-Model (H0): #> INT 0.367 #> BEH 0.210 #> R-Squared Change: #> INT -0.003 #> BEH 0.049 #> #> Parameter Estimates: #> Coefficients unstandardized #> Information expected #> Standard errors standard #> #> Latent Variables: #> Estimate Std.Error z.value P(>|z|) #> PBC =~ #> pbc1 1.000 #> pbc2 0.914 0.016 56.88 0.000 #> pbc3 0.802 0.019 42.46 0.000 #> ATT =~ #> att1 1.000 #> att2 0.878 0.018 48.90 0.000 #> att3 0.789 0.020 38.88 0.000 #> att4 0.695 0.017 39.78 0.000 #> att5 0.887 0.025 35.40 0.000 #> SN =~ #> sn1 1.000 #> sn2 0.889 0.026 34.77 0.000 #> INT =~ #> int1 1.000 #> int2 0.913 0.024 38.27 0.000 #> int3 0.807 0.021 37.67 0.000 #> BEH =~ #> b1 1.000 #> b2 0.959 0.053 18.16 0.000 #> #> Regressions: #> Estimate Std.Error z.value P(>|z|) #> INT ~ #> PBC 0.217 0.044 4.99 0.000 #> ATT 0.214 0.045 4.70 0.000 #> SN 0.176 0.037 4.76 0.000 #> BEH ~ #> PBC 0.233 0.034 6.89 0.000 #> INT 0.188 0.034 5.54 0.000 #> PBC:INT 0.205 0.028 7.26 0.000 #> #> Intercepts: #> Estimate Std.Error z.value P(>|z|) #> pbc1 0.991 0.033 29.69 0.000 #> pbc2 0.978 0.031 31.84 0.000 #> pbc3 0.986 0.026 37.25 0.000 #> att1 1.009 0.035 28.79 0.000 #> att2 1.003 0.028 36.28 0.000 #> att3 1.013 0.026 39.12 0.000 #> att4 0.996 0.024 41.35 0.000 #> att5 0.988 0.029 34.35 0.000 #> sn1 1.001 0.035 28.26 0.000 #> sn2 1.006 0.032 31.06 0.000 #> int1 1.011 0.025 40.02 0.000 #> int2 1.009 0.028 35.44 0.000 #> int3 1.003 0.024 42.07 0.000 #> b1 0.999 0.022 44.65 0.000 #> b2 1.017 0.025 40.83 0.000 #> INT 0.000 #> BEH 0.000 #> PBC 0.000 #> ATT 0.000 #> SN 0.000 #> #> Covariances: #> Estimate Std.Error z.value P(>|z|) #> PBC ~~ #> ATT 0.668 0.048 13.93 0.000 #> SN 0.668 0.047 14.09 0.000 #> ATT ~~ #> SN 0.623 0.050 12.46 0.000 #> #> Variances: #> Estimate Std.Error z.value P(>|z|) #> pbc1 0.148 0.012 12.55 0.000 #> pbc2 0.159 0.010 15.80 0.000 #> pbc3 0.155 0.010 16.29 0.000 #> att1 0.167 0.010 16.68 0.000 #> att2 0.150 0.009 17.13 0.000 #> att3 0.159 0.009 18.03 0.000 #> att4 0.162 0.008 20.20 0.000 #> att5 0.159 0.010 16.69 0.000 #> sn1 0.178 0.022 8.20 0.000 #> sn2 0.156 0.016 9.89 0.000 #> int1 0.157 0.011 13.91 0.000 #> int2 0.160 0.011 14.28 0.000 #> int3 0.168 0.010 17.38 0.000 #> b1 0.185 0.036 5.11 0.000 #> b2 0.136 0.028 4.82 0.000 #> PBC 0.947 0.052 18.33 0.000 #> ATT 0.992 0.063 15.66 0.000 #> SN 0.981 0.060 16.35 0.000 #> INT 0.491 0.029 16.94 0.000 #> BEH 0.456 0.031 14.70 0.000 qml2 <- modsem(tpb, TPB, method = \"qml\") summary(qml2, standardized = TRUE) # Standardized estimates #> #> modsem (version 1.0.4): #> Estimator QML #> Optimization method NLMINB #> Number of observations 2000 #> Number of iterations 75 #> Loglikelihood -26326.25 #> Akaike (AIC) 52760.5 #> Bayesian (BIC) 53062.95 #> #> Fit Measures for H0: #> Loglikelihood -26393 #> Akaike (AIC) 52892.45 #> Bayesian (BIC) 53189.29 #> Chi-square 66.27 #> Degrees of Freedom (Chi-square) 82 #> P-value (Chi-square) 0.897 #> RMSEA 0.000 #> #> Comparative fit to H0 (no interaction effect) #> Loglikelihood change 66.97 #> Difference test (D) 133.95 #> Degrees of freedom (D) 1 #> P-value (D) 0.000 #> #> R-Squared: #> INT 0.366 #> BEH 0.263 #> R-Squared Null-Model (H0): #> INT 0.367 #> BEH 0.210 #> R-Squared Change: #> INT 0.000 #> BEH 0.053 #> #> Parameter Estimates: #> Coefficients standardized #> Information observed #> Standard errors standard #> #> Latent Variables: #> Estimate Std.Error z.value P(>|z|) #> PBC =~ #> pbc1 0.933 #> pbc2 0.913 0.013 69.47 0.000 #> pbc3 0.894 0.014 66.10 0.000 #> ATT =~ #> att1 0.925 #> att2 0.915 0.013 71.56 0.000 #> att3 0.892 0.013 66.37 0.000 #> att4 0.865 0.014 61.00 0.000 #> att5 0.912 0.013 70.85 0.000 #> SN =~ #> sn1 0.921 #> sn2 0.913 0.017 52.61 0.000 #> INT =~ #> int1 0.912 #> int2 0.895 0.015 59.05 0.000 #> int3 0.867 0.016 55.73 0.000 #> BEH =~ #> b1 0.877 #> b2 0.900 0.028 31.71 0.000 #> #> Regressions: #> Estimate Std.Error z.value P(>|z|) #> INT ~ #> PBC 0.243 0.033 7.35 0.000 #> ATT 0.242 0.030 8.16 0.000 #> SN 0.199 0.031 6.37 0.000 #> BEH ~ #> PBC 0.289 0.028 10.37 0.000 #> INT 0.212 0.028 7.69 0.000 #> PBC:INT 0.227 0.020 11.33 0.000 #> #> Covariances: #> Estimate Std.Error z.value P(>|z|) #> PBC ~~ #> ATT 0.692 0.030 23.45 0.000 #> SN 0.695 0.030 23.07 0.000 #> ATT ~~ #> SN 0.634 0.029 21.70 0.000 #> #> Variances: #> Estimate Std.Error z.value P(>|z|) #> pbc1 0.130 0.007 18.39 0.000 #> pbc2 0.166 0.008 21.43 0.000 #> pbc3 0.201 0.008 23.89 0.000 #> att1 0.144 0.006 23.53 0.000 #> att2 0.164 0.007 24.71 0.000 #> att3 0.204 0.008 26.38 0.000 #> att4 0.252 0.009 27.64 0.000 #> att5 0.168 0.007 24.93 0.000 #> sn1 0.153 0.013 12.09 0.000 #> sn2 0.167 0.013 13.26 0.000 #> int1 0.168 0.009 18.11 0.000 #> int2 0.199 0.010 20.41 0.000 #> int3 0.249 0.011 23.55 0.000 #> b1 0.231 0.023 10.12 0.000 #> b2 0.191 0.024 8.11 0.000 #> PBC 1.000 0.037 27.07 0.000 #> ATT 1.000 0.037 26.93 0.000 #> SN 1.000 0.040 25.22 0.000 #> INT 0.634 0.026 24.64 0.000 #> BEH 0.737 0.037 20.17 0.000"},{"path":"/articles/methods.html","id":"product-indicator-pi-approaches","dir":"Articles","previous_headings":"","what":"Product Indicator (PI) Approaches:","title":"methods","text":"Note constraints can become quite complicated complex models, particularly interaction including enodgenous variables. method can therefore quite slow. \"uca\" = unconstrained approach (Marsh, 2004) \"rca\" = residual centering approach (Little et al., 2006) default \"pind\" = basic product indicator approach (recommended)","code":""},{"path":"/articles/methods.html","id":"distribution-analytic-da-approaches","dir":"Articles","previous_headings":"","what":"Distribution Analytic (DA) Approaches","title":"methods","text":"\"lms\" = Latent Moderated Structural equations (LMS) approach, see vignette \"qml\" = Quasi Maximum Likelihood (QML) approach, see vignette estimates model Mplus, installed","code":"m1 <- ' # Outer Model X =~ x1 + x2 + x3 Y =~ y1 + y2 + y3 Z =~ z1 + z2 + z3 # Inner model Y ~ X + Z + X:Z ' # Product Indicator Approaches modsem(m1, data = oneInt, method = \"ca\") modsem(m1, data = oneInt, method = \"uca\") modsem(m1, data = oneInt, method = \"rca\") modsem(m1, data = oneInt, method = \"dblcent\") # Distribution Analytic Approaches modsem(m1, data = oneInt, method = \"mplus\") modsem(m1, data = oneInt, method = \"lms\") modsem(m1, data = oneInt, method = \"qml\")"},{"path":"/articles/modsem.html","id":"the-basic-syntax","dir":"Articles","previous_headings":"","what":"The Basic Syntax","title":"modsem","text":"modsem introduces new feature lavaan syntax—semicolon operator (:). semicolon operator works way lm() function. specify interaction effect two variables, join Var1:Var2. Models can estimated using one product indicator approaches (\"ca\", \"rca\", \"dblcent\", \"pind\") using latent moderated structural equations approach (\"lms\") quasi maximum likelihood approach (\"qml\"). product indicator approaches estimated via lavaan, lms qml approaches estimated via modsem .","code":""},{"path":"/articles/modsem.html","id":"a-simple-example","dir":"Articles","previous_headings":"The Basic Syntax","what":"A Simple Example","title":"modsem","text":"simple example specify interaction effect two latent variables lavaan. default, model estimated using \"dblcent\" method. want use another method, can change using method argument.","code":"m1 <- ' # Outer Model X =~ x1 + x2 + x3 Y =~ y1 + y2 + y3 Z =~ z1 + z2 + z3 # Inner Model Y ~ X + Z + X:Z ' est1 <- modsem(m1, oneInt) summary(est1) #> modsem (version 1.0.4, approach = dblcent): #> lavaan 0.6-19 ended normally after 161 iterations #> #> Estimator ML #> Optimization method NLMINB #> Number of model parameters 60 #> #> Number of observations 2000 #> #> Model Test User Model: #> #> Test statistic 122.924 #> Degrees of freedom 111 #> P-value (Chi-square) 0.207 #> #> Parameter Estimates: #> #> Standard errors Standard #> Information Expected #> Information saturated (h1) model Structured #> #> Latent Variables: #> Estimate Std.Err z-value P(>|z|) #> X =~ #> x1 1.000 #> x2 0.804 0.013 63.612 0.000 #> x3 0.916 0.014 67.144 0.000 #> Y =~ #> y1 1.000 #> y2 0.798 0.007 107.428 0.000 #> y3 0.899 0.008 112.453 0.000 #> Z =~ #> z1 1.000 #> z2 0.812 0.013 64.763 0.000 #> z3 0.882 0.013 67.014 0.000 #> XZ =~ #> x1z1 1.000 #> x2z1 0.805 0.013 60.636 0.000 #> x3z1 0.877 0.014 62.680 0.000 #> x1z2 0.793 0.013 59.343 0.000 #> x2z2 0.646 0.015 43.672 0.000 #> x3z2 0.706 0.016 44.292 0.000 #> x1z3 0.887 0.014 63.700 0.000 #> x2z3 0.716 0.016 45.645 0.000 #> x3z3 0.781 0.017 45.339 0.000 #> #> Regressions: #> Estimate Std.Err z-value P(>|z|) #> Y ~ #> X 0.675 0.027 25.379 0.000 #> Z 0.561 0.026 21.606 0.000 #> XZ 0.702 0.027 26.360 0.000 #> #> Covariances: #> Estimate Std.Err z-value P(>|z|) #> .x1z1 ~~ #> .x2z2 0.000 #> .x2z3 0.000 #> .x3z2 0.000 #> .x3z3 0.000 #> .x2z1 ~~ #> .x1z2 0.000 #> .x1z2 ~~ #> .x2z3 0.000 #> .x3z1 ~~ #> .x1z2 0.000 #> .x1z2 ~~ #> .x3z3 0.000 #> .x2z1 ~~ #> .x1z3 0.000 #> .x2z2 ~~ #> .x1z3 0.000 #> .x3z1 ~~ #> .x1z3 0.000 #> .x3z2 ~~ #> .x1z3 0.000 #> .x2z1 ~~ #> .x3z2 0.000 #> .x3z3 0.000 #> .x3z1 ~~ #> .x2z2 0.000 #> .x2z2 ~~ #> .x3z3 0.000 #> .x3z1 ~~ #> .x2z3 0.000 #> .x3z2 ~~ #> .x2z3 0.000 #> .x1z1 ~~ #> .x1z2 0.115 0.008 14.802 0.000 #> .x1z3 0.114 0.008 13.947 0.000 #> .x2z1 0.125 0.008 16.095 0.000 #> .x3z1 0.140 0.009 16.135 0.000 #> .x1z2 ~~ #> .x1z3 0.103 0.007 14.675 0.000 #> .x2z2 0.128 0.006 20.850 0.000 #> .x3z2 0.146 0.007 21.243 0.000 #> .x1z3 ~~ #> .x2z3 0.116 0.007 17.818 0.000 #> .x3z3 0.135 0.007 18.335 0.000 #> .x2z1 ~~ #> .x2z2 0.135 0.006 20.905 0.000 #> .x2z3 0.145 0.007 21.145 0.000 #> .x3z1 0.114 0.007 16.058 0.000 #> .x2z2 ~~ #> .x2z3 0.117 0.006 20.419 0.000 #> .x3z2 0.116 0.006 20.586 0.000 #> .x2z3 ~~ #> .x3z3 0.109 0.006 18.059 0.000 #> .x3z1 ~~ #> .x3z2 0.138 0.007 19.331 0.000 #> .x3z3 0.158 0.008 20.269 0.000 #> .x3z2 ~~ #> .x3z3 0.131 0.007 19.958 0.000 #> X ~~ #> Z 0.201 0.024 8.271 0.000 #> XZ 0.016 0.025 0.628 0.530 #> Z ~~ #> XZ 0.062 0.025 2.449 0.014 #> #> Variances: #> Estimate Std.Err z-value P(>|z|) #> .x1 0.160 0.009 17.871 0.000 #> .x2 0.162 0.007 22.969 0.000 #> .x3 0.163 0.008 20.161 0.000 #> .y1 0.159 0.009 17.896 0.000 #> .y2 0.154 0.007 22.640 0.000 #> .y3 0.164 0.008 20.698 0.000 #> .z1 0.168 0.009 18.143 0.000 #> .z2 0.158 0.007 22.264 0.000 #> .z3 0.158 0.008 20.389 0.000 #> .x1z1 0.311 0.014 22.227 0.000 #> .x2z1 0.292 0.011 27.287 0.000 #> .x3z1 0.327 0.012 26.275 0.000 #> .x1z2 0.290 0.011 26.910 0.000 #> .x2z2 0.239 0.008 29.770 0.000 #> .x3z2 0.270 0.009 29.117 0.000 #> .x1z3 0.272 0.012 23.586 0.000 #> .x2z3 0.245 0.009 27.979 0.000 #> .x3z3 0.297 0.011 28.154 0.000 #> X 0.981 0.036 26.895 0.000 #> .Y 0.990 0.038 25.926 0.000 #> Z 1.016 0.038 26.856 0.000 #> XZ 1.045 0.044 24.004 0.000 est1 <- modsem(m1, oneInt, method = \"lms\") summary(est1) #> #> modsem (version 1.0.4): #> Estimator LMS #> Optimization method EM-NLMINB #> Number of observations 2000 #> Number of iterations 84 #> Loglikelihood -14687.86 #> Akaike (AIC) 29437.73 #> Bayesian (BIC) 29611.35 #> #> Numerical Integration: #> Points of integration (per dim) 24 #> Dimensions 1 #> Total points of integration 24 #> #> Fit Measures for H0: #> Loglikelihood -17832 #> Akaike (AIC) 35723.75 #> Bayesian (BIC) 35891.78 #> Chi-square 17.52 #> Degrees of Freedom (Chi-square) 24 #> P-value (Chi-square) 0.826 #> RMSEA 0.000 #> #> Comparative fit to H0 (no interaction effect) #> Loglikelihood change 3144.01 #> Difference test (D) 6288.02 #> Degrees of freedom (D) 1 #> P-value (D) 0.000 #> #> R-Squared: #> Y 0.596 #> R-Squared Null-Model (H0): #> Y 0.395 #> R-Squared Change: #> Y 0.201 #> #> Parameter Estimates: #> Coefficients unstandardized #> Information expected #> Standard errors standard #> #> Latent Variables: #> Estimate Std.Error z.value P(>|z|) #> X =~ #> x1 1.000 #> x2 0.804 0.018 45.23 0.000 #> x3 0.915 0.015 62.37 0.000 #> Z =~ #> z1 1.000 #> z2 0.810 0.014 55.97 0.000 #> z3 0.881 0.014 64.52 0.000 #> Y =~ #> y1 1.000 #> y2 0.799 0.009 85.43 0.000 #> y3 0.899 0.010 88.71 0.000 #> #> Regressions: #> Estimate Std.Error z.value P(>|z|) #> Y ~ #> X 0.677 0.039 17.21 0.000 #> Z 0.572 0.038 14.98 0.000 #> X:Z 0.712 0.032 22.46 0.000 #> #> Intercepts: #> Estimate Std.Error z.value P(>|z|) #> x1 1.026 0.025 41.65 0.000 #> x2 1.218 0.020 61.14 0.000 #> x3 0.922 0.024 38.69 0.000 #> z1 1.016 0.031 32.90 0.000 #> z2 1.209 0.029 42.26 0.000 #> z3 0.920 0.027 34.22 0.000 #> y1 1.046 0.024 43.95 0.000 #> y2 1.228 0.022 54.98 0.000 #> y3 0.962 0.025 39.06 0.000 #> Y 0.000 #> X 0.000 #> Z 0.000 #> #> Covariances: #> Estimate Std.Error z.value P(>|z|) #> X ~~ #> Z 0.198 0.032 6.27 0.000 #> #> Variances: #> Estimate Std.Error z.value P(>|z|) #> x1 0.160 0.010 15.38 0.000 #> x2 0.163 0.008 19.89 0.000 #> x3 0.165 0.009 19.18 0.000 #> z1 0.166 0.010 16.74 0.000 #> z2 0.160 0.009 17.18 0.000 #> z3 0.158 0.009 18.54 0.000 #> y1 0.160 0.010 16.78 0.000 #> y2 0.154 0.008 20.01 0.000 #> y3 0.163 0.009 18.39 0.000 #> X 0.972 0.038 25.86 0.000 #> Z 1.017 0.052 19.55 0.000 #> Y 0.984 0.045 21.94 0.000"},{"path":"/articles/modsem.html","id":"interactions-between-two-observed-variables","dir":"Articles","previous_headings":"The Basic Syntax","what":"Interactions Between Two Observed Variables","title":"modsem","text":"modsem allows estimate interactions latent variables also observed variables. , first run regression observed variables, interaction x1 z2, run equivalent model using modsem().","code":""},{"path":"/articles/modsem.html","id":"using-a-regression","dir":"Articles","previous_headings":"The Basic Syntax > Interactions Between Two Observed Variables","what":"Using a Regression","title":"modsem","text":"","code":"reg1 <- lm(y1 ~ x1*z1, oneInt) summary(reg1) #> #> Call: #> lm(formula = y1 ~ x1 * z1, data = oneInt) #> #> Residuals: #> Min 1Q Median 3Q Max #> -3.7155 -0.8087 -0.0367 0.8078 4.6531 #> #> Coefficients: #> Estimate Std. Error t value Pr(>|t|) #> (Intercept) 0.51422 0.04618 11.135 <2e-16 *** #> x1 0.05477 0.03387 1.617 0.1060 #> z1 -0.06575 0.03461 -1.900 0.0576 . #> x1:z1 0.54361 0.02272 23.926 <2e-16 *** #> --- #> Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 #> #> Residual standard error: 1.184 on 1996 degrees of freedom #> Multiple R-squared: 0.4714, Adjusted R-squared: 0.4706 #> F-statistic: 593.3 on 3 and 1996 DF, p-value: < 2.2e-16"},{"path":"/articles/modsem.html","id":"using-modsem","dir":"Articles","previous_headings":"The Basic Syntax > Interactions Between Two Observed Variables","what":"Using modsem","title":"modsem","text":"interactions observed variables, generally recommended use method = \"pind\". Interaction effects observed variables supported LMS QML approaches. cases, can define latent variable single indicator estimate interaction effect two observed variables LMS QML approaches, generally recommended.","code":"# Using \"pind\" as the method (see Chapter 3) est2 <- modsem('y1 ~ x1 + z1 + x1:z1', data = oneInt, method = \"pind\") summary(est2) #> modsem (version 1.0.4, approach = pind): #> lavaan 0.6-19 ended normally after 1 iteration #> #> Estimator ML #> Optimization method NLMINB #> Number of model parameters 4 #> #> Number of observations 2000 #> #> Model Test User Model: #> #> Test statistic 0.000 #> Degrees of freedom 0 #> #> Parameter Estimates: #> #> Standard errors Standard #> Information Expected #> Information saturated (h1) model Structured #> #> Regressions: #> Estimate Std.Err z-value P(>|z|) #> y1 ~ #> x1 0.055 0.034 1.619 0.105 #> z1 -0.066 0.035 -1.902 0.057 #> x1z1 0.544 0.023 23.950 0.000 #> #> Variances: #> Estimate Std.Err z-value P(>|z|) #> .y1 1.399 0.044 31.623 0.000"},{"path":"/articles/modsem.html","id":"interactions-between-latent-and-observed-variables","dir":"Articles","previous_headings":"The Basic Syntax","what":"Interactions Between Latent and Observed Variables","title":"modsem","text":"modsem also allows estimate interaction effects latent observed variables. , simply join latent observed variable colon (e.g., 'latent:observer'). interactions observed variables, generally recommended use method = \"pind\" estimating effect latent observed variables.","code":"m3 <- ' # Outer Model X =~ x1 + x2 + x3 Y =~ y1 + y2 + y3 # Inner Model Y ~ X + z1 + X:z1 ' est3 <- modsem(m3, oneInt, method = \"pind\") summary(est3) #> modsem (version 1.0.4, approach = pind): #> lavaan 0.6-19 ended normally after 45 iterations #> #> Estimator ML #> Optimization method NLMINB #> Number of model parameters 22 #> #> Number of observations 2000 #> #> Model Test User Model: #> #> Test statistic 4468.171 #> Degrees of freedom 32 #> P-value (Chi-square) 0.000 #> #> Parameter Estimates: #> #> Standard errors Standard #> Information Expected #> Information saturated (h1) model Structured #> #> Latent Variables: #> Estimate Std.Err z-value P(>|z|) #> X =~ #> x1 1.000 #> x2 0.803 0.013 63.697 0.000 #> x3 0.915 0.014 67.548 0.000 #> Y =~ #> y1 1.000 #> y2 0.798 0.007 115.375 0.000 #> y3 0.899 0.007 120.783 0.000 #> Xz1 =~ #> x1z1 1.000 #> x2z1 0.947 0.010 96.034 0.000 #> x3z1 0.902 0.009 99.512 0.000 #> #> Regressions: #> Estimate Std.Err z-value P(>|z|) #> Y ~ #> X 0.021 0.034 0.614 0.540 #> z1 -0.185 0.023 -8.096 0.000 #> Xz1 0.646 0.017 37.126 0.000 #> #> Covariances: #> Estimate Std.Err z-value P(>|z|) #> X ~~ #> Xz1 1.243 0.055 22.523 0.000 #> #> Variances: #> Estimate Std.Err z-value P(>|z|) #> .x1 0.158 0.009 17.976 0.000 #> .x2 0.164 0.007 23.216 0.000 #> .x3 0.162 0.008 20.325 0.000 #> .y1 0.158 0.009 17.819 0.000 #> .y2 0.154 0.007 22.651 0.000 #> .y3 0.164 0.008 20.744 0.000 #> .x1z1 0.315 0.017 18.328 0.000 #> .x2z1 0.428 0.019 22.853 0.000 #> .x3z1 0.337 0.016 21.430 0.000 #> X 0.982 0.036 26.947 0.000 #> .Y 1.112 0.040 27.710 0.000 #> Xz1 3.965 0.136 29.217 0.000"},{"path":"/articles/modsem.html","id":"quadratic-effects","dir":"Articles","previous_headings":"The Basic Syntax","what":"Quadratic Effects","title":"modsem","text":"Quadratic effects essentially special case interaction effects. Thus, modsem can also used estimate quadratic effects.","code":"m4 <- ' # Outer Model X =~ x1 + x2 + x3 Y =~ y1 + y2 + y3 Z =~ z1 + z2 + z3 # Inner Model Y ~ X + Z + Z:X + X:X ' est4 <- modsem(m4, oneInt, method = \"qml\") summary(est4) #> #> modsem (version 1.0.4): #> Estimator QML #> Optimization method NLMINB #> Number of observations 2000 #> Number of iterations 104 #> Loglikelihood -17496.2 #> Akaike (AIC) 35056.4 #> Bayesian (BIC) 35235.62 #> #> Fit Measures for H0: #> Loglikelihood -17832 #> Akaike (AIC) 35723.75 #> Bayesian (BIC) 35891.78 #> Chi-square 17.52 #> Degrees of Freedom (Chi-square) 24 #> P-value (Chi-square) 0.826 #> RMSEA 0.000 #> #> Comparative fit to H0 (no interaction effect) #> Loglikelihood change 335.68 #> Difference test (D) 671.35 #> Degrees of freedom (D) 2 #> P-value (D) 0.000 #> #> R-Squared: #> Y 0.607 #> R-Squared Null-Model (H0): #> Y 0.395 #> R-Squared Change: #> Y 0.212 #> #> Parameter Estimates: #> Coefficients unstandardized #> Information observed #> Standard errors standard #> #> Latent Variables: #> Estimate Std.Error z.value P(>|z|) #> X =~ #> x1 1.000 #> x2 0.803 0.013 63.963 0.000 #> x3 0.914 0.013 67.795 0.000 #> Z =~ #> z1 1.000 #> z2 0.810 0.012 65.122 0.000 #> z3 0.881 0.013 67.621 0.000 #> Y =~ #> y1 1.000 #> y2 0.798 0.007 107.568 0.000 #> y3 0.899 0.008 112.543 0.000 #> #> Regressions: #> Estimate Std.Error z.value P(>|z|) #> Y ~ #> X 0.674 0.032 20.888 0.000 #> Z 0.566 0.030 18.947 0.000 #> X:X -0.005 0.023 -0.207 0.836 #> X:Z 0.713 0.029 24.554 0.000 #> #> Intercepts: #> Estimate Std.Error z.value P(>|z|) #> x1 1.023 0.024 42.894 0.000 #> x2 1.216 0.020 60.994 0.000 #> x3 0.919 0.022 41.484 0.000 #> z1 1.012 0.024 41.575 0.000 #> z2 1.206 0.020 59.269 0.000 #> z3 0.916 0.022 42.062 0.000 #> y1 1.042 0.038 27.683 0.000 #> y2 1.224 0.030 40.158 0.000 #> y3 0.958 0.034 28.101 0.000 #> Y 0.000 #> X 0.000 #> Z 0.000 #> #> Covariances: #> Estimate Std.Error z.value P(>|z|) #> X ~~ #> Z 0.200 0.024 8.238 0.000 #> #> Variances: #> Estimate Std.Error z.value P(>|z|) #> x1 0.158 0.009 18.145 0.000 #> x2 0.162 0.007 23.188 0.000 #> x3 0.165 0.008 20.821 0.000 #> z1 0.166 0.009 18.340 0.000 #> z2 0.159 0.007 22.621 0.000 #> z3 0.158 0.008 20.713 0.000 #> y1 0.159 0.009 17.975 0.000 #> y2 0.154 0.007 22.670 0.000 #> y3 0.164 0.008 20.711 0.000 #> X 0.983 0.036 26.994 0.000 #> Z 1.019 0.038 26.951 0.000 #> Y 0.943 0.038 24.819 0.000"},{"path":"/articles/modsem.html","id":"more-complicated-examples","dir":"Articles","previous_headings":"The Basic Syntax","what":"More Complicated Examples","title":"modsem","text":"complex example using theory planned behavior (TPB) model. example includes two quadratic effects one interaction effect, using jordan dataset. dataset subset PISA 2006 dataset. Note: approaches also work may quite slow depending number interaction effects, particularly LMS constrained approaches.","code":"tpb <- ' # Outer Model (Based on Hagger et al., 2007) ATT =~ att1 + att2 + att3 + att4 + att5 SN =~ sn1 + sn2 PBC =~ pbc1 + pbc2 + pbc3 INT =~ int1 + int2 + int3 BEH =~ b1 + b2 # Inner Model (Based on Steinmetz et al., 2011) INT ~ ATT + SN + PBC BEH ~ INT + PBC + INT:PBC ' # The double-centering approach est_tpb <- modsem(tpb, TPB) # Using the LMS approach est_tpb_lms <- modsem(tpb, TPB, method = \"lms\") #> Warning: It is recommended that you have at least 32 nodes for interaction #> effects between exogenous and endogenous variables in the lms approach 'nodes = #> 24' summary(est_tpb_lms) #> #> modsem (version 1.0.4): #> Estimator LMS #> Optimization method EM-NLMINB #> Number of observations 2000 #> Number of iterations 88 #> Loglikelihood -23463.87 #> Akaike (AIC) 47035.73 #> Bayesian (BIC) 47338.18 #> #> Numerical Integration: #> Points of integration (per dim) 24 #> Dimensions 1 #> Total points of integration 24 #> #> Fit Measures for H0: #> Loglikelihood -26393 #> Akaike (AIC) 52892.45 #> Bayesian (BIC) 53189.29 #> Chi-square 66.27 #> Degrees of Freedom (Chi-square) 82 #> P-value (Chi-square) 0.897 #> RMSEA 0.000 #> #> Comparative fit to H0 (no interaction effect) #> Loglikelihood change 2929.36 #> Difference test (D) 5858.71 #> Degrees of freedom (D) 1 #> P-value (D) 0.000 #> #> R-Squared: #> INT 0.361 #> BEH 0.248 #> R-Squared Null-Model (H0): #> INT 0.367 #> BEH 0.210 #> R-Squared Change: #> INT -0.006 #> BEH 0.038 #> #> Parameter Estimates: #> Coefficients unstandardized #> Information expected #> Standard errors standard #> #> Latent Variables: #> Estimate Std.Error z.value P(>|z|) #> PBC =~ #> pbc1 1.000 #> pbc2 0.911 0.023 39.06 0.000 #> pbc3 0.802 0.016 51.13 0.000 #> ATT =~ #> att1 1.000 #> att2 0.877 0.016 54.64 0.000 #> att3 0.789 0.017 47.31 0.000 #> att4 0.695 0.018 38.72 0.000 #> att5 0.887 0.018 49.78 0.000 #> SN =~ #> sn1 1.000 #> sn2 0.889 0.027 32.67 0.000 #> INT =~ #> int1 1.000 #> int2 0.913 0.026 34.76 0.000 #> int3 0.807 0.019 43.58 0.000 #> BEH =~ #> b1 1.000 #> b2 0.961 0.044 21.59 0.000 #> #> Regressions: #> Estimate Std.Error z.value P(>|z|) #> INT ~ #> PBC 0.217 0.045 4.78 0.000 #> ATT 0.213 0.033 6.38 0.000 #> SN 0.177 0.036 4.90 0.000 #> BEH ~ #> PBC 0.228 0.035 6.45 0.000 #> INT 0.182 0.034 5.29 0.000 #> PBC:INT 0.204 0.025 8.01 0.000 #> #> Intercepts: #> Estimate Std.Error z.value P(>|z|) #> pbc1 0.960 0.028 34.86 0.000 #> pbc2 0.951 0.024 39.44 0.000 #> pbc3 0.961 0.022 44.16 0.000 #> att1 0.988 0.036 27.66 0.000 #> att2 0.984 0.030 32.28 0.000 #> att3 0.996 0.026 37.69 0.000 #> att4 0.981 0.022 44.69 0.000 #> att5 0.969 0.028 34.07 0.000 #> sn1 0.980 0.031 31.89 0.000 #> sn2 0.987 0.034 28.80 0.000 #> int1 0.996 0.031 32.40 0.000 #> int2 0.996 0.027 37.26 0.000 #> int3 0.991 0.024 40.79 0.000 #> b1 0.990 0.024 40.94 0.000 #> b2 1.008 0.026 39.40 0.000 #> INT 0.000 #> BEH 0.000 #> PBC 0.000 #> ATT 0.000 #> SN 0.000 #> #> Covariances: #> Estimate Std.Error z.value P(>|z|) #> PBC ~~ #> ATT 0.658 0.037 17.84 0.000 #> SN 0.657 0.043 15.32 0.000 #> ATT ~~ #> SN 0.616 0.047 13.06 0.000 #> #> Variances: #> Estimate Std.Error z.value P(>|z|) #> pbc1 0.147 0.012 12.31 0.000 #> pbc2 0.164 0.010 16.73 0.000 #> pbc3 0.154 0.010 15.21 0.000 #> att1 0.167 0.011 15.71 0.000 #> att2 0.150 0.010 15.45 0.000 #> att3 0.159 0.009 17.26 0.000 #> att4 0.163 0.008 19.28 0.000 #> att5 0.159 0.009 16.97 0.000 #> sn1 0.178 0.023 7.72 0.000 #> sn2 0.156 0.017 9.32 0.000 #> int1 0.157 0.013 12.37 0.000 #> int2 0.160 0.011 14.88 0.000 #> int3 0.168 0.009 18.87 0.000 #> b1 0.186 0.026 7.28 0.000 #> b2 0.135 0.025 5.45 0.000 #> PBC 0.933 0.039 23.75 0.000 #> ATT 0.985 0.056 17.72 0.000 #> SN 0.974 0.058 16.66 0.000 #> INT 0.491 0.032 15.36 0.000 #> BEH 0.456 0.034 13.58 0.000 m2 <- ' ENJ =~ enjoy1 + enjoy2 + enjoy3 + enjoy4 + enjoy5 CAREER =~ career1 + career2 + career3 + career4 SC =~ academic1 + academic2 + academic3 + academic4 + academic5 + academic6 CAREER ~ ENJ + SC + ENJ:ENJ + SC:SC + ENJ:SC ' est_jordan <- modsem(m2, data = jordan) est_jordan_qml <- modsem(m2, data = jordan, method = \"qml\") #> Warning: SE's for some coefficients could not be computed. summary(est_jordan_qml) #> #> modsem (version 1.0.4): #> Estimator QML #> Optimization method NLMINB #> Number of observations 6038 #> Number of iterations 86 #> Loglikelihood -110520.22 #> Akaike (AIC) 221142.45 #> Bayesian (BIC) 221484.45 #> #> Fit Measures for H0: #> Loglikelihood -110521 #> Akaike (AIC) 221138.58 #> Bayesian (BIC) 221460.46 #> Chi-square 1016.34 #> Degrees of Freedom (Chi-square) 87 #> P-value (Chi-square) 0.000 #> RMSEA 0.005 #> #> Comparative fit to H0 (no interaction effect) #> Loglikelihood change 1.06 #> Difference test (D) 2.13 #> Degrees of freedom (D) 3 #> P-value (D) 0.546 #> #> R-Squared: #> CAREER 0.512 #> R-Squared Null-Model (H0): #> CAREER 0.510 #> R-Squared Change: #> CAREER 0.002 #> #> Parameter Estimates: #> Coefficients unstandardized #> Information observed #> Standard errors standard #> #> Latent Variables: #> Estimate Std.Error z.value P(>|z|) #> ENJ =~ #> enjoy1 1.000 #> enjoy2 1.002 0.020 50.584 0.000 #> enjoy3 0.894 0.020 43.669 0.000 #> enjoy4 0.999 0.021 48.225 0.000 #> enjoy5 1.047 0.021 50.399 0.000 #> SC =~ #> academic1 1.000 #> academic2 1.104 0.028 38.946 0.000 #> academic3 1.235 0.030 41.720 0.000 #> academic4 1.254 0.030 41.829 0.000 #> academic5 1.113 0.029 38.649 0.000 #> academic6 1.198 0.030 40.357 0.000 #> CAREER =~ #> career1 1.000 #> career2 1.040 0.016 65.181 0.000 #> career3 0.952 0.016 57.839 0.000 #> career4 0.818 0.017 48.358 0.000 #> #> Regressions: #> Estimate Std.Error z.value P(>|z|) #> CAREER ~ #> ENJ 0.523 0.020 26.293 0.000 #> SC 0.467 0.023 19.899 0.000 #> ENJ:ENJ 0.026 0.022 1.221 0.222 #> ENJ:SC -0.040 0.046 -0.874 0.382 #> SC:SC -0.002 0.034 -0.049 0.961 #> #> Intercepts: #> Estimate Std.Error z.value P(>|z|) #> enjoy1 0.000 #> enjoy2 0.000 0.005 0.032 0.975 #> enjoy3 0.000 0.009 -0.035 0.972 #> enjoy4 0.000 #> enjoy5 0.000 0.006 0.059 0.953 #> academic1 0.000 0.007 -0.016 0.988 #> academic2 0.000 0.011 -0.014 0.989 #> academic3 0.000 0.011 -0.039 0.969 #> academic4 0.000 0.010 -0.022 0.983 #> academic5 -0.001 0.011 -0.061 0.951 #> academic6 0.001 0.011 0.064 0.949 #> career1 -0.004 0.015 -0.246 0.806 #> career2 -0.005 0.015 -0.299 0.765 #> career3 -0.004 0.015 -0.255 0.798 #> career4 -0.004 0.014 -0.269 0.788 #> CAREER 0.000 #> ENJ 0.000 #> SC 0.000 #> #> Covariances: #> Estimate Std.Error z.value P(>|z|) #> ENJ ~~ #> SC 0.218 0.009 25.477 0.000 #> #> Variances: #> Estimate Std.Error z.value P(>|z|) #> enjoy1 0.487 0.011 44.332 0.000 #> enjoy2 0.488 0.011 44.407 0.000 #> enjoy3 0.596 0.012 48.234 0.000 #> enjoy4 0.488 0.011 44.561 0.000 #> enjoy5 0.442 0.010 42.472 0.000 #> academic1 0.644 0.013 49.816 0.000 #> academic2 0.566 0.012 47.862 0.000 #> academic3 0.474 0.011 44.316 0.000 #> academic4 0.455 0.010 43.580 0.000 #> academic5 0.565 0.012 47.696 0.000 #> academic6 0.502 0.011 45.434 0.000 #> career1 0.373 0.009 40.392 0.000 #> career2 0.328 0.009 37.018 0.000 #> career3 0.436 0.010 43.274 0.000 #> career4 0.576 0.012 48.373 0.000 #> ENJ 0.500 0.017 29.546 0.000 #> SC 0.338 0.015 23.196 0.000 #> CAREER 0.302 0.010 29.710 0.000"},{"path":"/articles/observed_lms_qml.html","id":"the-latent-moderated-structural-equations-lms-and-the-quasi-maximum-likelihood-qml-approach","dir":"Articles","previous_headings":"","what":"The Latent Moderated Structural Equations (LMS) and the Quasi Maximum Likelihood (QML) Approach","title":"observed variables in the LMS- and QML approach","text":"contrast approaches, LMS QML approaches designed handle latent variables . Thus, observed variables used easily approaches. One way get around specifying observed variable latent variable single indicator. modsem() , default, constrain factor loading 1 residual variance indicator 0. difference latent variable indicator, assuming exogenous variable, zero-mean. approach works LMS QML methods cases, two exceptions.","code":""},{"path":"/articles/observed_lms_qml.html","id":"the-lms-approach","dir":"Articles","previous_headings":"The Latent Moderated Structural Equations (LMS) and the Quasi Maximum Likelihood (QML) Approach","what":"The LMS Approach","title":"observed variables in the LMS- and QML approach","text":"LMS approach, can use -mentioned method almost cases, except using observed variable moderating variable. LMS approach, typically select one variable interaction term moderator. interaction effect estimated via numerical integration n quadrature nodes moderating variable. However, process requires moderating variable error term, distribution moderating variable modeled X∼N(Az,ε)X \\sim N(Az, \\varepsilon), AzAz expected value XX quadrature point k, ε\\varepsilon error term. error term zero, probability observing given value XX computable. instances, first variable interaction term chosen moderator. example, interaction term \"X:Z\", \"X\" usually chosen moderator. Therefore, one variables latent, place latent variable first interaction term. variables observed, must specify measurement error (e.g., \"x1 ~~ 0.1 * x1\") indicator first variable interaction term.","code":"library(modsem) # Interaction effect between a latent and an observed variable m1 <- ' # Outer Model X =~ x1 # X is observed Z =~ z1 + z2 # Z is latent Y =~ y1 # Y is observed # Inner model Y ~ X + Z Y ~ Z:X ' lms1 <- modsem(m1, oneInt, method = \"lms\") # Interaction effect between two observed variables m2 <- ' # Outer Model X =~ x1 # X is observed Z =~ z1 # Z is observed Y =~ y1 # Y is observed x1 ~~ 0.1 * x1 # Specify a variance for the measurement error # Inner model Y ~ X + Z Y ~ X:Z ' lms2 <- modsem(m2, oneInt, method = \"lms\") summary(lms2) #> #> modsem (version 1.0.4): #> Estimator LMS #> Optimization method EM-NLMINB #> Number of observations 2000 #> Number of iterations 38 #> Loglikelihood -6632.86 #> Akaike (AIC) 13285.71 #> Bayesian (BIC) 13341.72 #> #> Numerical Integration: #> Points of integration (per dim) 24 #> Dimensions 1 #> Total points of integration 24 #> #> Fit Measures for H0: #> Loglikelihood -9369 #> Akaike (AIC) 18756.46 #> Bayesian (BIC) 18806.87 #> Chi-square 0.00 #> Degrees of Freedom (Chi-square) 0 #> P-value (Chi-square) 0.000 #> RMSEA 0.000 #> #> Comparative fit to H0 (no interaction effect) #> Loglikelihood change 2736.38 #> Difference test (D) 5472.75 #> Degrees of freedom (D) 1 #> P-value (D) 0.000 #> #> R-Squared: #> Y 0.494 #> R-Squared Null-Model (H0): #> Y 0.335 #> R-Squared Change: #> Y 0.160 #> #> Parameter Estimates: #> Coefficients unstandardized #> Information expected #> Standard errors standard #> #> Latent Variables: #> Estimate Std.Error z.value P(>|z|) #> X =~ #> x1 1.000 #> Z =~ #> z1 1.000 #> Y =~ #> y1 1.000 #> #> Regressions: #> Estimate Std.Error z.value P(>|z|) #> Y ~ #> X 0.663 0.034 19.76 0.000 #> Z 0.482 0.032 14.85 0.000 #> X:Z 0.586 0.025 23.25 0.000 #> #> Intercepts: #> Estimate Std.Error z.value P(>|z|) #> x1 1.023 0.028 36.60 0.000 #> z1 1.011 0.028 36.56 0.000 #> y1 1.057 0.026 41.45 0.000 #> Y 0.000 #> X 0.000 #> Z 0.000 #> #> Covariances: #> Estimate Std.Error z.value P(>|z|) #> X ~~ #> Z 0.208 0.029 7.09 0.000 #> #> Variances: #> Estimate Std.Error z.value P(>|z|) #> x1 0.100 #> z1 0.000 #> y1 0.000 #> X 1.028 0.037 27.74 0.000 #> Z 1.184 0.047 25.23 0.000 #> Y 1.323 0.046 28.89 0.000"},{"path":"/articles/observed_lms_qml.html","id":"the-qml-approach","dir":"Articles","previous_headings":"The Latent Moderated Structural Equations (LMS) and the Quasi Maximum Likelihood (QML) Approach","what":"The QML Approach","title":"observed variables in the LMS- and QML approach","text":"estimation process QML approach differs LMS approach, encounter issue LMS approach. Therefore, don’t need specify measurement error moderating variables.","code":"m3 <- ' # Outer Model X =~ x1 # X is observed Z =~ z1 # Z is observed Y =~ y1 # Y is observed # Inner model Y ~ X + Z Y ~ X:Z ' qml3 <- modsem(m3, oneInt, method = \"qml\") summary(qml3) #> #> modsem (version 1.0.4): #> Estimator QML #> Optimization method NLMINB #> Number of observations 2000 #> Number of iterations 11 #> Loglikelihood -9117.07 #> Akaike (AIC) 18254.13 #> Bayesian (BIC) 18310.14 #> #> Fit Measures for H0: #> Loglikelihood -9369 #> Akaike (AIC) 18756.46 #> Bayesian (BIC) 18806.87 #> Chi-square 0.00 #> Degrees of Freedom (Chi-square) 0 #> P-value (Chi-square) 0.000 #> RMSEA 0.000 #> #> Comparative fit to H0 (no interaction effect) #> Loglikelihood change 252.17 #> Difference test (D) 504.33 #> Degrees of freedom (D) 1 #> P-value (D) 0.000 #> #> R-Squared: #> Y 0.470 #> R-Squared Null-Model (H0): #> Y 0.320 #> R-Squared Change: #> Y 0.150 #> #> Parameter Estimates: #> Coefficients unstandardized #> Information observed #> Standard errors standard #> #> Latent Variables: #> Estimate Std.Error z.value P(>|z|) #> X =~ #> x1 1.000 #> Z =~ #> z1 1.000 #> Y =~ #> y1 1.000 #> #> Regressions: #> Estimate Std.Error z.value P(>|z|) #> Y ~ #> X 0.605 0.028 21.26 0.000 #> Z 0.490 0.028 17.55 0.000 #> X:Z 0.544 0.023 23.95 0.000 #> #> Intercepts: #> Estimate Std.Error z.value P(>|z|) #> x1 1.023 0.024 42.83 0.000 #> z1 1.011 0.024 41.56 0.000 #> y1 1.066 0.034 31.64 0.000 #> Y 0.000 #> X 0.000 #> Z 0.000 #> #> Covariances: #> Estimate Std.Error z.value P(>|z|) #> X ~~ #> Z 0.210 0.026 7.95 0.000 #> #> Variances: #> Estimate Std.Error z.value P(>|z|) #> x1 0.000 #> z1 0.000 #> y1 0.000 #> X 1.141 0.036 31.62 0.000 #> Z 1.184 0.037 31.62 0.000 #> Y 1.399 0.044 31.62 0.000"},{"path":"/articles/plot_interactions.html","id":"plotting-interaction-effects","dir":"Articles","previous_headings":"","what":"Plotting Interaction Effects","title":"plotting interaction effects","text":"Interaction effects can plotted using included plot_interaction() function. function takes fitted model object names two variables interacting. function plot interaction effect two variables, : x-variable plotted x-axis. y-variable plotted y-axis. z-variable determines points effect x y plotted. function also plot 95% confidence interval interaction effect. simple example using double-centering approach: different example using lms approach theory planned behavior model:","code":"m1 <- \" # Outer Model X =~ x1 X =~ x2 + x3 Z =~ z1 + z2 + z3 Y =~ y1 + y2 + y3 # Inner Model Y ~ X + Z + X:Z \" est1 <- modsem(m1, data = oneInt) plot_interaction(\"X\", \"Z\", \"Y\", \"X:Z\", vals_z = -3:3, range_y = c(-0.2, 0), model = est1) tpb <- \" # Outer Model (Based on Hagger et al., 2007) ATT =~ att1 + att2 + att3 + att4 + att5 SN =~ sn1 + sn2 PBC =~ pbc1 + pbc2 + pbc3 INT =~ int1 + int2 + int3 BEH =~ b1 + b2 # Inner Model (Based on Steinmetz et al., 2011) INT ~ ATT + SN + PBC BEH ~ INT + PBC BEH ~ PBC:INT \" est2 <- modsem(tpb, TPB, method = \"lms\") #> Warning: It is recommended that you have at least 32 nodes for interaction #> effects between exogenous and endogenous variables in the lms approach 'nodes = #> 24' plot_interaction(x = \"INT\", z = \"PBC\", y = \"BEH\", xz = \"PBC:INT\", vals_z = c(-0.5, 0.5), model = est2)"},{"path":"/articles/plot_interactions.html","id":"plotting-johnson-neyman-regions","dir":"Articles","previous_headings":"","what":"Plotting Johnson-Neyman Regions","title":"plotting interaction effects","text":"plot_jn() function can used plot Johnson-Neyman regions given interaction effect. function takes fitted model object, names two variables interacting, name interaction effect. function plot Johnson-Neyman regions interaction effect. plot_jn() function also plot 95% confidence interval interaction effect. x name x-variable, z name z-variable, y name y-variable. model fitted model object. argument min_z max_z used specify range values moderating variable. example using ca approach Holzinger-Swineford (1939) dataset: another example using qml approach theory planned behavior model:","code":"m1 <- ' visual =~ x1 + x2 + x3 textual =~ x4 + x5 + x6 speed =~ x7 + x8 + x9 visual ~ speed + textual + speed:textual ' est <- modsem(m1, data = lavaan::HolzingerSwineford1939, method = \"ca\") plot_jn(x = \"speed\", z = \"textual\", y = \"visual\", model = est, max_z = 6) tpb <- \" # Outer Model (Based on Hagger et al., 2007) ATT =~ att1 + att2 + att3 + att4 + att5 SN =~ sn1 + sn2 PBC =~ pbc1 + pbc2 + pbc3 INT =~ int1 + int2 + int3 BEH =~ b1 + b2 # Inner Model (Based on Steinmetz et al., 2011) INT ~ ATT + SN + PBC BEH ~ INT + PBC BEH ~ PBC:INT \" est2 <- modsem(tpb, TPB, method = \"qml\") plot_jn(x = \"INT\", z = \"PBC\", y = \"BEH\", model = est2, min_z = -1.5, max_z = -0.5)"},{"path":"/articles/quadratic.html","id":"quadratic-effects-and-interaction-effects","dir":"Articles","previous_headings":"","what":"Quadratic Effects and Interaction Effects","title":"quadratic effects","text":"Quadratic effects essentially special case interaction effects—variable interacts . , methods modsem can also used estimate quadratic effects. simple example using LMS approach. example, simple model two quadratic effects one interaction effect. estimate model using QML double-centering approaches, data subset PISA 2006 dataset. Note: approaches (e.g., LMS constrained methods) can also used may slower depending number interaction effects, especially LMS constrained approaches.","code":"library(modsem) m1 <- ' # Outer Model X =~ x1 + x2 + x3 Y =~ y1 + y2 + y3 Z =~ z1 + z2 + z3 # Inner model Y ~ X + Z + Z:X + X:X ' est1Lms <- modsem(m1, data = oneInt, method = \"lms\") summary(est1Lms) #> #> modsem (version 1.0.4): #> Estimator LMS #> Optimization method EM-NLMINB #> Number of observations 2000 #> Number of iterations 115 #> Loglikelihood -14687.59 #> Akaike (AIC) 29439.17 #> Bayesian (BIC) 29618.4 #> #> Numerical Integration: #> Points of integration (per dim) 24 #> Dimensions 1 #> Total points of integration 24 #> #> Fit Measures for H0: #> Loglikelihood -17832 #> Akaike (AIC) 35723.75 #> Bayesian (BIC) 35891.78 #> Chi-square 17.52 #> Degrees of Freedom (Chi-square) 24 #> P-value (Chi-square) 0.826 #> RMSEA 0.000 #> #> Comparative fit to H0 (no interaction effect) #> Loglikelihood change 3144.29 #> Difference test (D) 6288.58 #> Degrees of freedom (D) 2 #> P-value (D) 0.000 #> #> R-Squared: #> Y 0.595 #> R-Squared Null-Model (H0): #> Y 0.395 #> R-Squared Change: #> Y 0.200 #> #> Parameter Estimates: #> Coefficients unstandardized #> Information expected #> Standard errors standard #> #> Latent Variables: #> Estimate Std.Error z.value P(>|z|) #> X =~ #> x1 1.000 #> x2 0.804 0.015 52.327 0.000 #> x3 0.915 0.014 63.559 0.000 #> Z =~ #> z1 1.000 #> z2 0.810 0.014 59.634 0.000 #> z3 0.881 0.014 61.614 0.000 #> Y =~ #> y1 1.000 #> y2 0.798 0.012 66.606 0.000 #> y3 0.899 0.008 108.526 0.000 #> #> Regressions: #> Estimate Std.Error z.value P(>|z|) #> Y ~ #> X 0.672 0.040 16.768 0.000 #> Z 0.569 0.030 19.134 0.000 #> X:X -0.007 0.026 -0.249 0.803 #> X:Z 0.715 0.034 21.210 0.000 #> #> Intercepts: #> Estimate Std.Error z.value P(>|z|) #> x1 1.022 0.023 44.828 0.000 #> x2 1.215 0.021 57.737 0.000 #> x3 0.919 0.020 45.714 0.000 #> z1 1.012 0.033 30.780 0.000 #> z2 1.206 0.027 44.861 0.000 #> z3 0.916 0.030 30.400 0.000 #> y1 1.044 0.041 25.480 0.000 #> y2 1.225 0.030 41.401 0.000 #> y3 0.960 0.037 25.942 0.000 #> Y 0.000 #> X 0.000 #> Z 0.000 #> #> Covariances: #> Estimate Std.Error z.value P(>|z|) #> X ~~ #> Z 0.199 0.029 6.931 0.000 #> #> Variances: #> Estimate Std.Error z.value P(>|z|) #> x1 0.160 0.008 18.897 0.000 #> x2 0.163 0.008 21.142 0.000 #> x3 0.165 0.008 20.508 0.000 #> z1 0.167 0.012 14.015 0.000 #> z2 0.160 0.009 16.948 0.000 #> z3 0.158 0.009 18.302 0.000 #> y1 0.160 0.010 15.274 0.000 #> y2 0.154 0.007 20.884 0.000 #> y3 0.163 0.008 19.504 0.000 #> X 0.972 0.042 23.289 0.000 #> Z 1.017 0.049 20.703 0.000 #> Y 0.983 0.047 20.796 0.000 m2 <- ' ENJ =~ enjoy1 + enjoy2 + enjoy3 + enjoy4 + enjoy5 CAREER =~ career1 + career2 + career3 + career4 SC =~ academic1 + academic2 + academic3 + academic4 + academic5 + academic6 CAREER ~ ENJ + SC + ENJ:ENJ + SC:SC + ENJ:SC ' est2Dblcent <- modsem(m2, data = jordan) est2Qml <- modsem(m2, data = jordan, method = \"qml\") #> Warning: SE's for some coefficients could not be computed. summary(est2Qml) #> #> modsem (version 1.0.4): #> Estimator QML #> Optimization method NLMINB #> Number of observations 6038 #> Number of iterations 86 #> Loglikelihood -110520.22 #> Akaike (AIC) 221142.45 #> Bayesian (BIC) 221484.45 #> #> Fit Measures for H0: #> Loglikelihood -110521 #> Akaike (AIC) 221138.58 #> Bayesian (BIC) 221460.46 #> Chi-square 1016.34 #> Degrees of Freedom (Chi-square) 87 #> P-value (Chi-square) 0.000 #> RMSEA 0.005 #> #> Comparative fit to H0 (no interaction effect) #> Loglikelihood change 1.06 #> Difference test (D) 2.13 #> Degrees of freedom (D) 3 #> P-value (D) 0.546 #> #> R-Squared: #> CAREER 0.512 #> R-Squared Null-Model (H0): #> CAREER 0.510 #> R-Squared Change: #> CAREER 0.002 #> #> Parameter Estimates: #> Coefficients unstandardized #> Information observed #> Standard errors standard #> #> Latent Variables: #> Estimate Std.Error z.value P(>|z|) #> ENJ =~ #> enjoy1 1.000 #> enjoy2 1.002 0.020 50.584 0.000 #> enjoy3 0.894 0.020 43.669 0.000 #> enjoy4 0.999 0.021 48.225 0.000 #> enjoy5 1.047 0.021 50.399 0.000 #> SC =~ #> academic1 1.000 #> academic2 1.104 0.028 38.946 0.000 #> academic3 1.235 0.030 41.720 0.000 #> academic4 1.254 0.030 41.829 0.000 #> academic5 1.113 0.029 38.649 0.000 #> academic6 1.198 0.030 40.357 0.000 #> CAREER =~ #> career1 1.000 #> career2 1.040 0.016 65.181 0.000 #> career3 0.952 0.016 57.839 0.000 #> career4 0.818 0.017 48.358 0.000 #> #> Regressions: #> Estimate Std.Error z.value P(>|z|) #> CAREER ~ #> ENJ 0.523 0.020 26.293 0.000 #> SC 0.467 0.023 19.899 0.000 #> ENJ:ENJ 0.026 0.022 1.221 0.222 #> ENJ:SC -0.040 0.046 -0.874 0.382 #> SC:SC -0.002 0.034 -0.049 0.961 #> #> Intercepts: #> Estimate Std.Error z.value P(>|z|) #> enjoy1 0.000 #> enjoy2 0.000 0.005 0.032 0.975 #> enjoy3 0.000 0.009 -0.035 0.972 #> enjoy4 0.000 #> enjoy5 0.000 0.006 0.059 0.953 #> academic1 0.000 0.007 -0.016 0.988 #> academic2 0.000 0.011 -0.014 0.989 #> academic3 0.000 0.011 -0.039 0.969 #> academic4 0.000 0.010 -0.022 0.983 #> academic5 -0.001 0.011 -0.061 0.951 #> academic6 0.001 0.011 0.064 0.949 #> career1 -0.004 0.015 -0.246 0.806 #> career2 -0.005 0.015 -0.299 0.765 #> career3 -0.004 0.015 -0.255 0.798 #> career4 -0.004 0.014 -0.269 0.788 #> CAREER 0.000 #> ENJ 0.000 #> SC 0.000 #> #> Covariances: #> Estimate Std.Error z.value P(>|z|) #> ENJ ~~ #> SC 0.218 0.009 25.477 0.000 #> #> Variances: #> Estimate Std.Error z.value P(>|z|) #> enjoy1 0.487 0.011 44.332 0.000 #> enjoy2 0.488 0.011 44.407 0.000 #> enjoy3 0.596 0.012 48.234 0.000 #> enjoy4 0.488 0.011 44.561 0.000 #> enjoy5 0.442 0.010 42.472 0.000 #> academic1 0.644 0.013 49.816 0.000 #> academic2 0.566 0.012 47.862 0.000 #> academic3 0.474 0.011 44.316 0.000 #> academic4 0.455 0.010 43.580 0.000 #> academic5 0.565 0.012 47.696 0.000 #> academic6 0.502 0.011 45.434 0.000 #> career1 0.373 0.009 40.392 0.000 #> career2 0.328 0.009 37.018 0.000 #> career3 0.436 0.010 43.274 0.000 #> career4 0.576 0.012 48.373 0.000 #> ENJ 0.500 0.017 29.546 0.000 #> SC 0.338 0.015 23.196 0.000 #> CAREER 0.302 0.010 29.710 0.000"},{"path":"/authors.html","id":null,"dir":"","previous_headings":"","what":"Authors","title":"Authors and Citation","text":"Kjell Solem Slupphaug. Author, maintainer. Mehmet Mehmetoglu. Contributor. Matthias Mittner. Contributor.","code":""},{"path":"/authors.html","id":"citation","dir":"","previous_headings":"","what":"Citation","title":"Authors and Citation","text":"Slupphaug, K. S., Mehmetoglu, M., & Mittner, M. (2024). modsem: R package estimating latent interactions quadratic effects. Structural Equation Modeling: Multidisciplinary Journal https://doi.org/10.1080/10705511.2024.2417409","code":"@Article{, title = {modsem: An R package for estimating latent interactions and quadratic effects}, author = {Kjell Solem Slupphaug and Mehmet Mehmetoglu and Matthias Mittner}, journal = {Structural Equation Modeling: A Multidisciplinary Journal}, year = {2024}, doi = {10.1080/10705511.2024.2417409}, }"},{"path":[]},{"path":"/index.html","id":"to-install","dir":"","previous_headings":"","what":"To Install","title":"Latent Interaction (and Moderation) Analysis in Structural Equation Models (SEM)","text":"","code":"# From CRAN install.packages(\"modsem\") # Latest version from GitHub install.packages(\"devtools\") devtools::install_github(\"kss2k/modsem\", build_vignettes = TRUE)"},{"path":"/index.html","id":"methodsapproaches","dir":"","previous_headings":"","what":"Methods/Approaches","title":"Latent Interaction (and Moderation) Analysis in Structural Equation Models (SEM)","text":"number approaches estimating interaction effects SEM. modsem(), method = \"method\" argument allows choose use. Different approaches can categorized two groups: Product Indicator (PI) Distribution Analytic (DA) approaches.","code":""},{"path":"/index.html","id":"product-indicator-pi-approaches","dir":"","previous_headings":"","what":"Product Indicator (PI) Approaches:","title":"Latent Interaction (and Moderation) Analysis in Structural Equation Models (SEM)","text":"Note constraints can become quite complicated complex models, particularly interaction including enodgenous variables. method can therefore quite slow. \"uca\" = unconstrained approach (Marsh, 2004) \"rca\" = residual centering approach (Little et al., 2006) default \"pind\" = basic product indicator approach (recommended)","code":""},{"path":"/index.html","id":"distribution-analytic-da-approaches","dir":"","previous_headings":"","what":"Distribution Analytic (DA) Approaches","title":"Latent Interaction (and Moderation) Analysis in Structural Equation Models (SEM)","text":"\"lms\" = Latent Moderated Structural equations (LMS) approach, see vignette \"qml\" = Quasi Maximum Likelihood (QML) approach, see vignette estimates model Mplus, installed","code":""},{"path":[]},{"path":"/index.html","id":"elementary-interaction-model-kenny--judd-1984-jaccard--wan-1995","dir":"","previous_headings":"","what":"Elementary Interaction Model (Kenny & Judd, 1984; Jaccard & Wan, 1995)","title":"Latent Interaction (and Moderation) Analysis in Structural Equation Models (SEM)","text":"","code":"library(modsem) m1 <- ' # Outer Model X =~ x1 + x2 +x3 Y =~ y1 + y2 + y3 Z =~ z1 + z2 + z3 # Inner model Y ~ X + Z + X:Z ' # Double centering approach est1_dca <- modsem(m1, oneInt) summary(est1_dca) # Constrained approach est1_ca <- modsem(m1, oneInt, method = \"ca\") summary(est1_ca) # QML approach est1_qml <- modsem(m1, oneInt, method = \"qml\") summary(est1_qml, standardized = TRUE) # LMS approach est1_lms <- modsem(m1, oneInt, method = \"lms\") summary(est1_lms)"},{"path":"/index.html","id":"theory-of-planned-behavior","dir":"","previous_headings":"","what":"Theory Of Planned Behavior","title":"Latent Interaction (and Moderation) Analysis in Structural Equation Models (SEM)","text":"","code":"tpb <- \" # Outer Model (Based on Hagger et al., 2007) ATT =~ att1 + att2 + att3 + att4 + att5 SN =~ sn1 + sn2 PBC =~ pbc1 + pbc2 + pbc3 INT =~ int1 + int2 + int3 BEH =~ b1 + b2 # Inner Model (Based on Steinmetz et al., 2011) INT ~ ATT + SN + PBC BEH ~ INT + PBC BEH ~ PBC:INT \" # double centering approach est_tpb_dca <- modsem(tpb, data = TPB, method = \"dblcent\") summary(est_tpb_dca) # Constrained approach using Wrigths path tracing rules for generating # the appropriate constraints est_tpb_ca <- modsem(tpb, data = TPB, method = \"ca\") summary(est_tpb_ca) # LMS approach est_tpb_lms <- modsem(tpb, data = TPB, method = \"lms\") summary(est_tpb_lms, standardized = TRUE) # QML approach est_tpb_qml <- modsem(tpb, data = TPB, method = \"qml\") summary(est_tpb_qml, standardized = TRUE)"},{"path":"/index.html","id":"interactions-between-two-observed-variables","dir":"","previous_headings":"","what":"Interactions between two observed variables","title":"Latent Interaction (and Moderation) Analysis in Structural Equation Models (SEM)","text":"","code":"est2 <- modsem('y1 ~ x1 + z1 + x1:z1', data = oneInt, method = \"pind\") summary(est2)"},{"path":"/index.html","id":"interaction-between-an-obsereved-and-a-latent-variable","dir":"","previous_headings":"","what":"Interaction between an obsereved and a latent variable","title":"Latent Interaction (and Moderation) Analysis in Structural Equation Models (SEM)","text":"","code":"m3 <- ' # Outer Model X =~ x1 + x2 +x3 Y =~ y1 + y2 + y3 # Inner model Y ~ X + z1 + X:z1 ' est3 <- modsem(m3, oneInt, method = \"pind\") summary(est3)"},{"path":"/reference/TPB.html","id":null,"dir":"Reference","previous_headings":"","what":"TPB — TPB","title":"TPB — TPB","text":"simulated dataset based Theory Planned Behaviour","code":""},{"path":"/reference/TPB.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"TPB — TPB","text":"","code":"tpb <- \" # Outer Model (Based on Hagger et al., 2007) ATT =~ att1 + att2 + att3 + att4 + att5 SN =~ sn1 + sn2 PBC =~ pbc1 + pbc2 + pbc3 INT =~ int1 + int2 + int3 BEH =~ b1 + b2 # Inner Model (Based on Steinmetz et al., 2011) INT ~ ATT + SN + PBC BEH ~ INT + PBC + INT:PBC \" est <- modsem(tpb, data = TPB)"},{"path":"/reference/TPB_1SO.html","id":null,"dir":"Reference","previous_headings":"","what":"TPB_1SO — TPB_1SO","title":"TPB_1SO — TPB_1SO","text":"simulated dataset based Theory Planned Behaviour, INT higher order construct ATT, SN, PBC.","code":""},{"path":"/reference/TPB_1SO.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"TPB_1SO — TPB_1SO","text":"","code":"tpb <- ' # First order constructs ATT =~ att1 + att2 + att3 SN =~ sn1 + sn2 + sn3 PBC =~ pbc1 + pbc2 + pbc3 BEH =~ b1 + b2 # Higher order constructs INT =~ ATT + PBC + SN # Higher order interaction INTxPBC =~ ATT:PBC + SN:PBC + PBC:PBC # Structural model BEH ~ PBC + INT + INTxPBC ' if (FALSE) { # \\dontrun{ est <- modsem(tpb, data = TPB_2SO, method = \"ca\") summary(est) } # }"},{"path":"/reference/TPB_2SO.html","id":null,"dir":"Reference","previous_headings":"","what":"TPB_2SO — TPB_2SO","title":"TPB_2SO — TPB_2SO","text":"simulated dataset based Theory Planned Behaviour, INT higher order construct ATT SN, PBC higher order construct PC PB.","code":""},{"path":"/reference/TPB_2SO.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"TPB_2SO — TPB_2SO","text":"","code":"tpb <- \" # First order constructs ATT =~ att1 + att2 + att3 SN =~ sn1 + sn2 + sn3 PB =~ pb1 + pb2 + pb3 PC =~ pc1 + pc2 + pc3 BEH =~ b1 + b2 # Higher order constructs INT =~ ATT + SN PBC =~ PC + PB # Higher order interaction INTxPBC =~ ATT:PC + ATT:PB + SN:PC + SN:PB # Structural model BEH ~ PBC + INT + INTxPBC \" if (FALSE) { # \\dontrun{ est <- modsem(tpb, data = TPB_2SO, method = \"ca\") summary(est) } # }"},{"path":"/reference/TPB_UK.html","id":null,"dir":"Reference","previous_headings":"","what":"TPB_UK — TPB_UK","title":"TPB_UK — TPB_UK","text":"dataset based Theory Planned Behaviour UK sample. 4 variables high communality selected latent variable (ATT, SN, PBC, INT, BEH), two time points (t1 t2).","code":""},{"path":"/reference/TPB_UK.html","id":"source","dir":"Reference","previous_headings":"","what":"Source","title":"TPB_UK — TPB_UK","text":"Gathered replciation study original Hagger et al. (2023). Obtained https://doi.org/10.23668/psycharchives.12187","code":""},{"path":"/reference/TPB_UK.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"TPB_UK — TPB_UK","text":"","code":"tpb_uk <- \" # Outer Model (Based on Hagger et al., 2007) ATT =~ att3 + att2 + att1 + att4 SN =~ sn4 + sn2 + sn3 + sn1 PBC =~ pbc2 + pbc1 + pbc3 + pbc4 INT =~ int2 + int1 + int3 + int4 BEH =~ beh3 + beh2 + beh1 + beh4 # Inner Model (Based on Steinmetz et al., 2011) # Causal Relationsships INT ~ ATT + SN + PBC BEH ~ INT + PBC BEH ~ INT:PBC \" est <- modsem(tpb_uk, data = TPB_UK)"},{"path":"/reference/coef_modsem_da.html","id":null,"dir":"Reference","previous_headings":"","what":"Wrapper for coef — coef_modsem_da","title":"Wrapper for coef — coef_modsem_da","text":"wrapper coef, used modsem::coef_modsem_da, since coef namespace modsem, stats","code":""},{"path":"/reference/coef_modsem_da.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Wrapper for coef — coef_modsem_da","text":"","code":"coef_modsem_da(object, ...)"},{"path":"/reference/coef_modsem_da.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Wrapper for coef — coef_modsem_da","text":"object fittet model inspect ... additional arguments","code":""},{"path":"/reference/compare_fit.html","id":null,"dir":"Reference","previous_headings":"","what":"compare model fit for qml and lms models — compare_fit","title":"compare model fit for qml and lms models — compare_fit","text":"Compare fit two models using likelihood ratio test. `estH0` representing null hypothesis model, `estH1` alternative hypothesis model. Importantly, function assumes `estH0` free parameters (.e., degrees freedom) `estH1`. alternative hypothesis model","code":""},{"path":"/reference/compare_fit.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"compare model fit for qml and lms models — compare_fit","text":"","code":"compare_fit(estH0, estH1)"},{"path":"/reference/compare_fit.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"compare model fit for qml and lms models — compare_fit","text":"estH0 object class `modsem_da` representing null hypothesis model estH1 object class `modsem_da` representing ","code":""},{"path":"/reference/compare_fit.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"compare model fit for qml and lms models — compare_fit","text":"","code":"if (FALSE) { # \\dontrun{ H0 <- \" # Outer Model X =~ x1 + x2 + x3 Y =~ y1 + y2 + y3 Z =~ z1 + z2 + z3 # Inner model Y ~ X + Z \" estH0 <- modsem(m1, oneInt, \"lms\") H1 <- \" # Outer Model X =~ x1 + x2 + x3 Y =~ y1 + y2 + y3 Z =~ z1 + z2 + z3 # Inner model Y ~ X + Z + X:Z \" estH1 <- modsem(m1, oneInt, \"lms\") compare_fit(estH0, estH1) } # }"},{"path":"/reference/default_settings_da.html","id":null,"dir":"Reference","previous_headings":"","what":"default arguments fro LMS and QML approach — default_settings_da","title":"default arguments fro LMS and QML approach — default_settings_da","text":"function returns default settings LMS QML approach.","code":""},{"path":"/reference/default_settings_da.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"default arguments fro LMS and QML approach — default_settings_da","text":"","code":"default_settings_da(method = c(\"lms\", \"qml\"))"},{"path":"/reference/default_settings_da.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"default arguments fro LMS and QML approach — default_settings_da","text":"method method get settings ","code":""},{"path":"/reference/default_settings_da.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"default arguments fro LMS and QML approach — default_settings_da","text":"list","code":""},{"path":"/reference/default_settings_da.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"default arguments fro LMS and QML approach — default_settings_da","text":"","code":"library(modsem) default_settings_da() #> $lms #> $lms$verbose #> [1] FALSE #> #> $lms$optimize #> [1] TRUE #> #> $lms$nodes #> [1] 24 #> #> $lms$convergence #> [1] 1e-04 #> #> $lms$optimizer #> [1] \"nlminb\" #> #> $lms$center.data #> [1] FALSE #> #> $lms$standardize.data #> [1] FALSE #> #> $lms$standardize.out #> [1] FALSE #> #> $lms$standardize #> [1] FALSE #> #> $lms$mean.observed #> [1] TRUE #> #> $lms$double #> [1] FALSE #> #> $lms$calc.se #> [1] TRUE #> #> $lms$FIM #> [1] \"expected\" #> #> $lms$OFIM.hessian #> [1] TRUE #> #> $lms$EFIM.S #> [1] 100 #> #> $lms$EFIM.parametric #> [1] TRUE #> #> $lms$robust.se #> [1] FALSE #> #> $lms$max.iter #> [1] 500 #> #> $lms$max.step #> [1] 1 #> #> $lms$fix.estep #> [1] TRUE #> #> $lms$epsilon #> [1] 1e-04 #> #> $lms$quad.range #> [1] Inf #> #> $lms$n.threads #> NULL #> #> #> $qml #> $qml$verbose #> [1] FALSE #> #> $qml$optimize #> [1] TRUE #> #> $qml$nodes #> [1] 0 #> #> $qml$convergence #> [1] 1e-06 #> #> $qml$optimizer #> [1] \"nlminb\" #> #> $qml$center.data #> [1] FALSE #> #> $qml$standardize #> [1] FALSE #> #> $qml$standardize.data #> [1] FALSE #> #> $qml$standardize.out #> [1] FALSE #> #> $qml$mean.observed #> [1] TRUE #> #> $qml$double #> [1] FALSE #> #> $qml$calc.se #> [1] TRUE #> #> $qml$FIM #> [1] \"observed\" #> #> $qml$OFIM.hessian #> [1] TRUE #> #> $qml$EFIM.S #> [1] 100 #> #> $qml$EFIM.parametric #> [1] TRUE #> #> $qml$robust.se #> [1] FALSE #> #> $qml$max.iter #> [1] 500 #> #> $qml$max.step #> NULL #> #> $qml$fix.estep #> NULL #> #> $qml$epsilon #> [1] 1e-08 #> #> $qml$quad.range #> [1] Inf #> #> $qml$n.threads #> NULL #> #>"},{"path":"/reference/default_settings_pi.html","id":null,"dir":"Reference","previous_headings":"","what":"default arguments for product indicator approaches — default_settings_pi","title":"default arguments for product indicator approaches — default_settings_pi","text":"function returns default settings product indicator approaches","code":""},{"path":"/reference/default_settings_pi.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"default arguments for product indicator approaches — default_settings_pi","text":"","code":"default_settings_pi(method = c(\"rca\", \"uca\", \"pind\", \"dblcent\", \"ca\"))"},{"path":"/reference/default_settings_pi.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"default arguments for product indicator approaches — default_settings_pi","text":"method method get settings ","code":""},{"path":"/reference/default_settings_pi.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"default arguments for product indicator approaches — default_settings_pi","text":"list","code":""},{"path":"/reference/default_settings_pi.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"default arguments for product indicator approaches — default_settings_pi","text":"","code":"library(modsem) default_settings_pi() #> $rca #> $rca$center.before #> [1] FALSE #> #> $rca$center.after #> [1] FALSE #> #> $rca$residuals.prods #> [1] TRUE #> #> $rca$residual.cov.syntax #> [1] TRUE #> #> $rca$constrained.prod.mean #> [1] FALSE #> #> $rca$constrained.loadings #> [1] FALSE #> #> $rca$constrained.var #> [1] FALSE #> #> $rca$constrained.res.cov.method #> [1] \"simple\" #> #> $rca$match #> [1] FALSE #> #> #> $uca #> $uca$center.before #> [1] TRUE #> #> $uca$center.after #> [1] FALSE #> #> $uca$residuals.prods #> [1] FALSE #> #> $uca$residual.cov.syntax #> [1] TRUE #> #> $uca$constrained.prod.mean #> [1] TRUE #> #> $uca$constrained.loadings #> [1] FALSE #> #> $uca$constrained.var #> [1] FALSE #> #> $uca$constrained.res.cov.method #> [1] \"simple\" #> #> $uca$match #> [1] FALSE #> #> #> $pind #> $pind$center.before #> [1] FALSE #> #> $pind$center.after #> [1] FALSE #> #> $pind$residuals.prods #> [1] FALSE #> #> $pind$residual.cov.syntax #> [1] FALSE #> #> $pind$constrained.prod.mean #> [1] FALSE #> #> $pind$constrained.loadings #> [1] FALSE #> #> $pind$constrained.var #> [1] FALSE #> #> $pind$constrained.res.cov.method #> [1] \"simple\" #> #> $pind$match #> [1] FALSE #> #> #> $dblcent #> $dblcent$center.before #> [1] TRUE #> #> $dblcent$center.after #> [1] TRUE #> #> $dblcent$residuals.prods #> [1] FALSE #> #> $dblcent$residual.cov.syntax #> [1] TRUE #> #> $dblcent$constrained.prod.mean #> [1] FALSE #> #> $dblcent$constrained.loadings #> [1] FALSE #> #> $dblcent$constrained.var #> [1] FALSE #> #> $dblcent$constrained.res.cov.method #> [1] \"simple\" #> #> $dblcent$match #> [1] FALSE #> #> #> $ca #> $ca$center.before #> [1] TRUE #> #> $ca$center.after #> [1] FALSE #> #> $ca$residuals.prods #> [1] FALSE #> #> $ca$residual.cov.syntax #> [1] TRUE #> #> $ca$constrained.prod.mean #> [1] TRUE #> #> $ca$constrained.loadings #> [1] TRUE #> #> $ca$constrained.var #> [1] TRUE #> #> $ca$constrained.res.cov.method #> [1] \"ca\" #> #> $ca$match #> [1] TRUE #> #>"},{"path":"/reference/extract_lavaan.html","id":null,"dir":"Reference","previous_headings":"","what":"extract lavaan object from modsem object estimated using product indicators — extract_lavaan","title":"extract lavaan object from modsem object estimated using product indicators — extract_lavaan","text":"extract lavaan object modsem object estimated using product indicators","code":""},{"path":"/reference/extract_lavaan.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"extract lavaan object from modsem object estimated using product indicators — extract_lavaan","text":"","code":"extract_lavaan(object)"},{"path":"/reference/extract_lavaan.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"extract lavaan object from modsem object estimated using product indicators — extract_lavaan","text":"object modsem object","code":""},{"path":"/reference/extract_lavaan.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"extract lavaan object from modsem object estimated using product indicators — extract_lavaan","text":"lavaan object","code":""},{"path":"/reference/extract_lavaan.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"extract lavaan object from modsem object estimated using product indicators — extract_lavaan","text":"","code":"library(modsem) m1 <- ' # Outer Model X =~ x1 + x2 + x3 Y =~ y1 + y2 + y3 Z =~ z1 + z2 + z3 # Inner model Y ~ X + Z + X:Z ' est <- modsem_pi(m1, oneInt) lav_est <- extract_lavaan(est)"},{"path":"/reference/fit_modsem_da.html","id":null,"dir":"Reference","previous_headings":"","what":"Fit measures for QML and LMS models — fit_modsem_da","title":"Fit measures for QML and LMS models — fit_modsem_da","text":"Calculates chi-sq test p-value, well RMSEA LMS QML models. Note Chi-Square based fit measures calculated baseline model, .e., model without interaction effect","code":""},{"path":"/reference/fit_modsem_da.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Fit measures for QML and LMS models — fit_modsem_da","text":"","code":"fit_modsem_da(model, chisq = TRUE)"},{"path":"/reference/fit_modsem_da.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Fit measures for QML and LMS models — fit_modsem_da","text":"model fitted model. Thereafter, can use 'compare_fit()' assess comparative fit models. interaction effect makes model better, e.g., RMSEA good baseline model, interaction model likely good RMSEA well. chisq Chi-Square based fit-measures calculated?","code":""},{"path":"/reference/get_pi_data.html","id":null,"dir":"Reference","previous_headings":"","what":"Get data with product indicators for different approaches — get_pi_data","title":"Get data with product indicators for different approaches — get_pi_data","text":"get_pi_syntax() function creating lavaan syntax used estimating latent interaction models using one product indicators lavaan.","code":""},{"path":"/reference/get_pi_data.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get data with product indicators for different approaches — get_pi_data","text":"","code":"get_pi_data(model.syntax, data, method = \"dblcent\", match = FALSE, ...)"},{"path":"/reference/get_pi_data.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get data with product indicators for different approaches — get_pi_data","text":"model.syntax lavaan syntax data data create product indicators method method use: \"rca\" = residual centering approach, \"uca\" = unconstrained approach, \"dblcent\" = double centering approach, \"pind\" = prod ind approach, constraints centering, \"custom\" = use parameters specified function call match product indicators created using match-strategy ... arguments passed functions (e.g., modsem_pi)","code":""},{"path":"/reference/get_pi_data.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get data with product indicators for different approaches — get_pi_data","text":"data.frame","code":""},{"path":"/reference/get_pi_data.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Get data with product indicators for different approaches — get_pi_data","text":"","code":"library(modsem) library(lavaan) #> This is lavaan 0.6-19 #> lavaan is FREE software! Please report any bugs. m1 <- ' # Outer Model X =~ x1 + x2 +x3 Y =~ y1 + y2 + y3 Z =~ z1 + z2 + z3 # Inner model Y ~ X + Z + X:Z ' syntax <- get_pi_syntax(m1) data <- get_pi_data(m1, oneInt) est <- sem(syntax, data)"},{"path":"/reference/get_pi_syntax.html","id":null,"dir":"Reference","previous_headings":"","what":"Get lavaan syntax for product indicator approaches — get_pi_syntax","title":"Get lavaan syntax for product indicator approaches — get_pi_syntax","text":"get_pi_syntax() function creating lavaan syntax used estimating latent interaction models using one product indicators lavaan.","code":""},{"path":"/reference/get_pi_syntax.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get lavaan syntax for product indicator approaches — get_pi_syntax","text":"","code":"get_pi_syntax(model.syntax, method = \"dblcent\", match = FALSE, ...)"},{"path":"/reference/get_pi_syntax.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get lavaan syntax for product indicator approaches — get_pi_syntax","text":"model.syntax lavaan syntax method method use: \"rca\" = residual centering approach, \"uca\" = unconstrained approach, \"dblcent\" = double centering approach, \"pind\" = prod ind approach, constraints centering, \"custom\" = use parameters specified function call match product indicators created using match-strategy ... arguments passed functions (e.g., modsem_pi)","code":""},{"path":"/reference/get_pi_syntax.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get lavaan syntax for product indicator approaches — get_pi_syntax","text":"character vector","code":""},{"path":"/reference/get_pi_syntax.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Get lavaan syntax for product indicator approaches — get_pi_syntax","text":"","code":"library(modsem) library(lavaan) m1 <- ' # Outer Model X =~ x1 + x2 + x3 Y =~ y1 + y2 + y3 Z =~ z1 + z2 + z3 # Inner model Y ~ X + Z + X:Z ' syntax <- get_pi_syntax(m1) data <- get_pi_data(m1, oneInt) est <- sem(syntax, data)"},{"path":"/reference/jordan.html","id":null,"dir":"Reference","previous_headings":"","what":"Jordan subset of PISA 2006 data — jordan","title":"Jordan subset of PISA 2006 data — jordan","text":"data stem large-scale assessment study PISA 2006 (Organisation Economic Co-Operation Development, 2009) competencies 15-year-old students reading, mathematics, science assessed using nationally representative samples 3-year cycles. eacademicample, data student background questionnaire Jordan sample PISA 2006 used. data students complete responses 15 items (N = 6,038) considered.","code":""},{"path":"/reference/jordan.html","id":"format","dir":"Reference","previous_headings":"","what":"Format","title":"Jordan subset of PISA 2006 data — jordan","text":"data frame fifteen variables 6,038 observations: enjoy1 indicator enjoyment science, item ST16Q01: generally fun learning topics. enjoy2 indicator enjoyment science, item ST16Q02: like reading . enjoy3 indicator enjoyment science, item ST16Q03: happy problems. enjoy4 indicator enjoyment science, item ST16Q04: enjoy acquiring new knowledge . enjoy5 indicator enjoyment science, item ST16Q05: interested learning . academic1 indicator academic self-concept science, item ST37Q01: can easily understand new ideas . academic2 indicator academic self-concept science, item ST37Q02: Learning advanced topics easy . academic3 indicator academic self-concept science, item ST37Q03: can usually give good answers topics. academic4 indicator academic self-concept science, item ST37Q04: learn topics quickly. academic5 indicator academic self-concept science, item ST37Q05: topics easy . academic6 indicator academic self-concept science, item ST37Q06: taught , can understand concepts well. career1 indicator career aspirations science, item ST29Q01: like work career involving . career2 indicator career aspirations science, item ST29Q02: like study . career3 indicator career aspirations science, item ST29Q03: like spend life advanced . career4 indicator career aspirations science, item ST29Q04: like work projects adult.","code":""},{"path":"/reference/jordan.html","id":"source","dir":"Reference","previous_headings":"","what":"Source","title":"Jordan subset of PISA 2006 data — jordan","text":"version dataset, well description gathered documentation 'nlsem' package (https://cran.r-project.org/package=nlsem), difference names variables changed Originally dataset gathered Organisation Economic Co-Operation Development (2009). Pisa 2006: Science competencies tomorrow's world (Tech. Rep.). Paris, France. Obtained : https://www.oecd.org/pisa/pisaproducts/database-pisa2006.htm","code":""},{"path":"/reference/jordan.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Jordan subset of PISA 2006 data — jordan","text":"","code":"if (FALSE) { # \\dontrun{ m1 <- \" ENJ =~ enjoy1 + enjoy2 + enjoy3 + enjoy4 + enjoy5 CAREER =~ career1 + career2 + career3 + career4 SC =~ academic1 + academic2 + academic3 + academic4 + academic5 + academic6 CAREER ~ ENJ + SC + ENJ:ENJ + SC:SC + ENJ:SC \" est <- modsem(m1, data = jordan) } # }"},{"path":"/reference/modsem-package.html","id":null,"dir":"Reference","previous_headings":"","what":"modsem: Latent Interaction (and Moderation) Analysis in Structural Equation Models (SEM) — modsem-package","title":"modsem: Latent Interaction (and Moderation) Analysis in Structural Equation Models (SEM) — modsem-package","text":"Estimation interaction (.e., moderation) effects latent variables structural equation models (SEM). supported methods : constrained approach (Algina & Moulder, 2001). unconstrained approach (Marsh et al., 2004). residual centering approach (Little et al., 2006). double centering approach (Lin et al., 2010). latent moderated structural equations (LMS) approach (Klein & Moosbrugger, 2000). quasi-maximum likelihood (QML) approach (Klein & Muthén, 2007) (temporarily unavailable) constrained- unconstrained, residual- double centering- approaches estimated via 'lavaan' (Rosseel, 2012), whilst LMS- QML- approaches estimated via modsem self. Alternatively model can estimated via 'Mplus' (Muthén & Muthén, 1998-2017). References: Algina, J., & Moulder, B. C. (2001). doi:10.1207/S15328007SEM0801_3 . \"note estimating Jöreskog-Yang model latent variable interaction using 'LISREL' 8.3.\" Klein, ., & Moosbrugger, H. (2000). doi:10.1007/BF02296338 . \"Maximum likelihood estimation latent interaction effects LMS method.\" Klein, . G., & Muthén, B. O. (2007). doi:10.1080/00273170701710205 . \"Quasi-maximum likelihood estimation structural equation models multiple interaction quadratic effects.\" Lin, G. C., Wen, Z., Marsh, H. W., & Lin, H. S. (2010). doi:10.1080/10705511.2010.488999 . \"Structural equation models latent interactions: Clarification orthogonalizing double-mean-centering strategies.\" Little, T. D., Bovaird, J. ., & Widaman, K. F. (2006). doi:10.1207/s15328007sem1304_1 . \"merits orthogonalizing powered product terms: Implications modeling interactions among latent variables.\" Marsh, H. W., Wen, Z., & Hau, K. T. (2004). doi:10.1037/1082-989X.9.3.275 . \"Structural equation models latent interactions: evaluation alternative estimation strategies indicator construction.\" Muthén, L.K. Muthén, B.O. (1998-2017). \"'Mplus' User’s Guide. Eighth Edition.\" https://www.statmodel.com/. Rosseel Y (2012). doi:10.18637/jss.v048.i02 . \"'lavaan': R Package Structural Equation Modeling.\"","code":""},{"path":[]},{"path":"/reference/modsem-package.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"modsem: Latent Interaction (and Moderation) Analysis in Structural Equation Models (SEM) — modsem-package","text":"Maintainer: Kjell Solem Slupphaug slupphaugkjell@gmail.com (ORCID) contributors: Mehmet Mehmetoglu mehmetm@ntnu.(ORCID) [contributor] Matthias Mittner matthias.mittner@uit.(ORCID) [contributor]","code":""},{"path":"/reference/modsem.html","id":null,"dir":"Reference","previous_headings":"","what":"Estimate interaction effects in structural equation models (SEMs) — modsem","title":"Estimate interaction effects in structural equation models (SEMs) — modsem","text":"modsem() function estimating interaction effects latent variables structural equation models (SEMs). Methods estimating interaction effects SEMs can basically split two frameworks: 1. Product Indicator-based approaches (\"dblcent\", \"rca\", \"uca\", \"ca\", \"pind\") 2. Distributionally based approaches (\"lms\", \"qml\"). product indicator-based approaches, modsem() essentially fancy wrapper lavaan::sem() generates necessary syntax variables estimation models latent product indicators. distributionally based approaches implemented separately estimated using lavaan::sem(), rather using custom functions (largely written C++ performance reasons). greater control, advised use one sub-functions (modsem_pi, modsem_da, modsem_mplus) directly, passing additional arguments via modsem() can lead unexpected behavior.","code":""},{"path":"/reference/modsem.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Estimate interaction effects in structural equation models (SEMs) — modsem","text":"","code":"modsem(model.syntax = NULL, data = NULL, method = \"dblcent\", ...)"},{"path":"/reference/modsem.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Estimate interaction effects in structural equation models (SEMs) — modsem","text":"model.syntax lavaan syntax data dataframe method method use: \"rca\" = residual centering approach (passed lavaan), \"uca\" = unconstrained approach (passed lavaan), \"dblcent\" = double centering approach (passed lavaan), \"pind\" = prod ind approach, constraints centering (passed lavaan), \"lms\" = latent model structural equations (passed lavaan), \"qml\" = quasi maximum likelihood estimation latent model structural equations (passed lavaan), \"custom\" = use parameters specified function call (passed lavaan). ... arguments passed functions depending method (see modsem_pi, modsem_da, modsem_mplus)","code":""},{"path":"/reference/modsem.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Estimate interaction effects in structural equation models (SEMs) — modsem","text":"modsem object class modsem_pi, modsem_da, modsem_mplus","code":""},{"path":"/reference/modsem.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Estimate interaction effects in structural equation models (SEMs) — modsem","text":"","code":"library(modsem) # For more examples, check README and/or GitHub. # One interaction m1 <- ' # Outer Model X =~ x1 + x2 +x3 Y =~ y1 + y2 + y3 Z =~ z1 + z2 + z3 # Inner model Y ~ X + Z + X:Z ' # Double centering approach est1 <- modsem(m1, oneInt) summary(est1) #> modsem (version 1.0.4, approach = dblcent): #> lavaan 0.6-19 ended normally after 161 iterations #> #> Estimator ML #> Optimization method NLMINB #> Number of model parameters 60 #> #> Number of observations 2000 #> #> Model Test User Model: #> #> Test statistic 122.924 #> Degrees of freedom 111 #> P-value (Chi-square) 0.207 #> #> Parameter Estimates: #> #> Standard errors Standard #> Information Expected #> Information saturated (h1) model Structured #> #> Latent Variables: #> Estimate Std.Err z-value P(>|z|) #> X =~ #> x1 1.000 #> x2 0.804 0.013 63.612 0.000 #> x3 0.916 0.014 67.144 0.000 #> Y =~ #> y1 1.000 #> y2 0.798 0.007 107.428 0.000 #> y3 0.899 0.008 112.453 0.000 #> Z =~ #> z1 1.000 #> z2 0.812 0.013 64.763 0.000 #> z3 0.882 0.013 67.014 0.000 #> XZ =~ #> x1z1 1.000 #> x2z1 0.805 0.013 60.636 0.000 #> x3z1 0.877 0.014 62.680 0.000 #> x1z2 0.793 0.013 59.343 0.000 #> x2z2 0.646 0.015 43.672 0.000 #> x3z2 0.706 0.016 44.292 0.000 #> x1z3 0.887 0.014 63.700 0.000 #> x2z3 0.716 0.016 45.645 0.000 #> x3z3 0.781 0.017 45.339 0.000 #> #> Regressions: #> Estimate Std.Err z-value P(>|z|) #> Y ~ #> X 0.675 0.027 25.379 0.000 #> Z 0.561 0.026 21.606 0.000 #> XZ 0.702 0.027 26.360 0.000 #> #> Covariances: #> Estimate Std.Err z-value P(>|z|) #> .x1z1 ~~ #> .x2z2 0.000 #> .x2z3 0.000 #> .x3z2 0.000 #> .x3z3 0.000 #> .x2z1 ~~ #> .x1z2 0.000 #> .x1z2 ~~ #> .x2z3 0.000 #> .x3z1 ~~ #> .x1z2 0.000 #> .x1z2 ~~ #> .x3z3 0.000 #> .x2z1 ~~ #> .x1z3 0.000 #> .x2z2 ~~ #> .x1z3 0.000 #> .x3z1 ~~ #> .x1z3 0.000 #> .x3z2 ~~ #> .x1z3 0.000 #> .x2z1 ~~ #> .x3z2 0.000 #> .x3z3 0.000 #> .x3z1 ~~ #> .x2z2 0.000 #> .x2z2 ~~ #> .x3z3 0.000 #> .x3z1 ~~ #> .x2z3 0.000 #> .x3z2 ~~ #> .x2z3 0.000 #> .x1z1 ~~ #> .x1z2 0.115 0.008 14.802 0.000 #> .x1z3 0.114 0.008 13.947 0.000 #> .x2z1 0.125 0.008 16.095 0.000 #> .x3z1 0.140 0.009 16.135 0.000 #> .x1z2 ~~ #> .x1z3 0.103 0.007 14.675 0.000 #> .x2z2 0.128 0.006 20.850 0.000 #> .x3z2 0.146 0.007 21.243 0.000 #> .x1z3 ~~ #> .x2z3 0.116 0.007 17.818 0.000 #> .x3z3 0.135 0.007 18.335 0.000 #> .x2z1 ~~ #> .x2z2 0.135 0.006 20.905 0.000 #> .x2z3 0.145 0.007 21.145 0.000 #> .x3z1 0.114 0.007 16.058 0.000 #> .x2z2 ~~ #> .x2z3 0.117 0.006 20.419 0.000 #> .x3z2 0.116 0.006 20.586 0.000 #> .x2z3 ~~ #> .x3z3 0.109 0.006 18.059 0.000 #> .x3z1 ~~ #> .x3z2 0.138 0.007 19.331 0.000 #> .x3z3 0.158 0.008 20.269 0.000 #> .x3z2 ~~ #> .x3z3 0.131 0.007 19.958 0.000 #> X ~~ #> Z 0.201 0.024 8.271 0.000 #> XZ 0.016 0.025 0.628 0.530 #> Z ~~ #> XZ 0.062 0.025 2.449 0.014 #> #> Variances: #> Estimate Std.Err z-value P(>|z|) #> .x1 0.160 0.009 17.871 0.000 #> .x2 0.162 0.007 22.969 0.000 #> .x3 0.163 0.008 20.161 0.000 #> .y1 0.159 0.009 17.896 0.000 #> .y2 0.154 0.007 22.640 0.000 #> .y3 0.164 0.008 20.698 0.000 #> .z1 0.168 0.009 18.143 0.000 #> .z2 0.158 0.007 22.264 0.000 #> .z3 0.158 0.008 20.389 0.000 #> .x1z1 0.311 0.014 22.227 0.000 #> .x2z1 0.292 0.011 27.287 0.000 #> .x3z1 0.327 0.012 26.275 0.000 #> .x1z2 0.290 0.011 26.910 0.000 #> .x2z2 0.239 0.008 29.770 0.000 #> .x3z2 0.270 0.009 29.117 0.000 #> .x1z3 0.272 0.012 23.586 0.000 #> .x2z3 0.245 0.009 27.979 0.000 #> .x3z3 0.297 0.011 28.154 0.000 #> X 0.981 0.036 26.895 0.000 #> .Y 0.990 0.038 25.926 0.000 #> Z 1.016 0.038 26.856 0.000 #> XZ 1.045 0.044 24.004 0.000 #> if (FALSE) { # \\dontrun{ # The Constrained Approach est1_ca <- modsem(m1, oneInt, method = \"ca\") summary(est1_ca) # LMS approach est1_lms <- modsem(m1, oneInt, method = \"lms\", EFIM.S=1000) summary(est1_lms) # QML approach est1_qml <- modsem(m1, oneInt, method = \"qml\") summary(est1_qml) } # } # Theory Of Planned Behavior tpb <- ' # Outer Model (Based on Hagger et al., 2007) ATT =~ att1 + att2 + att3 + att4 + att5 SN =~ sn1 + sn2 PBC =~ pbc1 + pbc2 + pbc3 INT =~ int1 + int2 + int3 BEH =~ b1 + b2 # Inner Model (Based on Steinmetz et al., 2011) INT ~ ATT + SN + PBC BEH ~ INT + PBC BEH ~ INT:PBC ' # Double centering approach est_tpb <- modsem(tpb, data = TPB) summary(est_tpb) #> modsem (version 1.0.4, approach = dblcent): #> lavaan 0.6-19 ended normally after 173 iterations #> #> Estimator ML #> Optimization method NLMINB #> Number of model parameters 78 #> #> Number of observations 2000 #> #> Model Test User Model: #> #> Test statistic 207.615 #> Degrees of freedom 222 #> P-value (Chi-square) 0.747 #> #> Parameter Estimates: #> #> Standard errors Standard #> Information Expected #> Information saturated (h1) model Structured #> #> Latent Variables: #> Estimate Std.Err z-value P(>|z|) #> ATT =~ #> att1 1.000 #> att2 0.878 0.012 71.509 0.000 #> att3 0.789 0.012 66.368 0.000 #> att4 0.695 0.011 61.017 0.000 #> att5 0.887 0.013 70.884 0.000 #> SN =~ #> sn1 1.000 #> sn2 0.889 0.017 52.553 0.000 #> PBC =~ #> pbc1 1.000 #> pbc2 0.912 0.013 69.500 0.000 #> pbc3 0.801 0.012 65.830 0.000 #> INT =~ #> int1 1.000 #> int2 0.914 0.016 58.982 0.000 #> int3 0.808 0.015 55.547 0.000 #> BEH =~ #> b1 1.000 #> b2 0.960 0.030 31.561 0.000 #> INTPBC =~ #> int1pbc1 1.000 #> int2pbc1 0.931 0.015 63.809 0.000 #> int3pbc1 0.774 0.013 60.107 0.000 #> int1pbc2 0.893 0.013 68.173 0.000 #> int2pbc2 0.826 0.017 48.845 0.000 #> int3pbc2 0.690 0.015 45.300 0.000 #> int1pbc3 0.799 0.012 67.008 0.000 #> int2pbc3 0.738 0.015 47.809 0.000 #> int3pbc3 0.622 0.014 45.465 0.000 #> #> Regressions: #> Estimate Std.Err z-value P(>|z|) #> INT ~ #> ATT 0.213 0.026 8.170 0.000 #> SN 0.177 0.028 6.416 0.000 #> PBC 0.217 0.030 7.340 0.000 #> BEH ~ #> INT 0.191 0.024 7.817 0.000 #> PBC 0.230 0.022 10.507 0.000 #> INTPBC 0.204 0.018 11.425 0.000 #> #> Covariances: #> Estimate Std.Err z-value P(>|z|) #> .int1pbc1 ~~ #> .int2pbc2 0.000 #> .int2pbc3 0.000 #> .int3pbc2 0.000 #> .int3pbc3 0.000 #> .int2pbc1 ~~ #> .int1pbc2 0.000 #> .int1pbc2 ~~ #> .int2pbc3 0.000 #> .int3pbc1 ~~ #> .int1pbc2 0.000 #> .int1pbc2 ~~ #> .int3pbc3 0.000 #> .int2pbc1 ~~ #> .int1pbc3 0.000 #> .int2pbc2 ~~ #> .int1pbc3 0.000 #> .int3pbc1 ~~ #> .int1pbc3 0.000 #> .int3pbc2 ~~ #> .int1pbc3 0.000 #> .int2pbc1 ~~ #> .int3pbc2 0.000 #> .int3pbc3 0.000 #> .int3pbc1 ~~ #> .int2pbc2 0.000 #> .int2pbc2 ~~ #> .int3pbc3 0.000 #> .int3pbc1 ~~ #> .int2pbc3 0.000 #> .int3pbc2 ~~ #> .int2pbc3 0.000 #> .int1pbc1 ~~ #> .int1pbc2 0.126 0.009 14.768 0.000 #> .int1pbc3 0.102 0.007 13.794 0.000 #> .int2pbc1 0.104 0.007 14.608 0.000 #> .int3pbc1 0.091 0.006 14.109 0.000 #> .int1pbc2 ~~ #> .int1pbc3 0.095 0.007 13.852 0.000 #> .int2pbc2 0.128 0.007 19.320 0.000 #> .int3pbc2 0.119 0.006 19.402 0.000 #> .int1pbc3 ~~ #> .int2pbc3 0.110 0.006 19.911 0.000 #> .int3pbc3 0.097 0.005 19.415 0.000 #> .int2pbc1 ~~ #> .int2pbc2 0.152 0.008 18.665 0.000 #> .int2pbc3 0.138 0.007 18.779 0.000 #> .int3pbc1 0.082 0.006 13.951 0.000 #> .int2pbc2 ~~ #> .int2pbc3 0.121 0.007 18.361 0.000 #> .int3pbc2 0.104 0.005 19.047 0.000 #> .int2pbc3 ~~ #> .int3pbc3 0.087 0.005 19.180 0.000 #> .int3pbc1 ~~ #> .int3pbc2 0.139 0.007 21.210 0.000 #> .int3pbc3 0.123 0.006 21.059 0.000 #> .int3pbc2 ~~ #> .int3pbc3 0.114 0.005 21.021 0.000 #> ATT ~~ #> SN 0.629 0.029 21.977 0.000 #> PBC 0.678 0.029 23.721 0.000 #> INTPBC 0.086 0.024 3.519 0.000 #> SN ~~ #> PBC 0.678 0.029 23.338 0.000 #> INTPBC 0.055 0.025 2.230 0.026 #> PBC ~~ #> INTPBC 0.087 0.024 3.609 0.000 #> #> Variances: #> Estimate Std.Err z-value P(>|z|) #> .att1 0.167 0.007 23.528 0.000 #> .att2 0.150 0.006 24.693 0.000 #> .att3 0.160 0.006 26.378 0.000 #> .att4 0.163 0.006 27.649 0.000 #> .att5 0.159 0.006 24.930 0.000 #> .sn1 0.178 0.015 12.110 0.000 #> .sn2 0.156 0.012 13.221 0.000 #> .pbc1 0.145 0.008 18.440 0.000 #> .pbc2 0.160 0.007 21.547 0.000 #> .pbc3 0.154 0.007 23.716 0.000 #> .int1 0.158 0.009 18.152 0.000 #> .int2 0.160 0.008 20.345 0.000 #> .int3 0.167 0.007 23.414 0.000 #> .b1 0.186 0.018 10.058 0.000 #> .b2 0.135 0.017 8.080 0.000 #> .int1pbc1 0.266 0.013 20.971 0.000 #> .int2pbc1 0.292 0.012 24.421 0.000 #> .int3pbc1 0.251 0.010 26.305 0.000 #> .int1pbc2 0.290 0.012 24.929 0.000 #> .int2pbc2 0.269 0.010 26.701 0.000 #> .int3pbc2 0.253 0.009 29.445 0.000 #> .int1pbc3 0.223 0.009 24.431 0.000 #> .int2pbc3 0.234 0.008 27.633 0.000 #> .int3pbc3 0.203 0.007 29.288 0.000 #> ATT 0.998 0.037 27.138 0.000 #> SN 0.987 0.039 25.394 0.000 #> PBC 0.962 0.035 27.260 0.000 #> .INT 0.490 0.020 24.638 0.000 #> .BEH 0.455 0.023 20.068 0.000 #> INTPBC 1.020 0.041 24.612 0.000 #> if (FALSE) { # \\dontrun{ # The Constrained Approach est_tpb_ca <- modsem(tpb, data = TPB, method = \"ca\") summary(est_tpb_ca) # LMS approach est_tpb_lms <- modsem(tpb, data = TPB, method = \"lms\") summary(est_tpb_lms) # QML approach est_tpb_qml <- modsem(tpb, data = TPB, method = \"qml\") summary(est_tpb_qml) } # }"},{"path":"/reference/modsem_da.html","id":null,"dir":"Reference","previous_headings":"","what":"Interaction between latent variables using lms and qml approaches — modsem_da","title":"Interaction between latent variables using lms and qml approaches — modsem_da","text":"modsem_da() function estimating interaction effects latent variables structural equation models (SEMs) using distributional analytic (DA) approaches. Methods estimating interaction effects SEMs can basically split two frameworks: 1. Product Indicator-based approaches (\"dblcent\", \"rca\", \"uca\", \"ca\", \"pind\") 2. Distributionally based approaches (\"lms\", \"qml\"). modsem_da() handles latter can estimate models using QML LMS, necessary syntax, variables estimation models latent product indicators. NOTE: Run default_settings_da see default arguments.","code":""},{"path":"/reference/modsem_da.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Interaction between latent variables using lms and qml approaches — modsem_da","text":"","code":"modsem_da( model.syntax = NULL, data = NULL, method = \"lms\", verbose = NULL, optimize = NULL, nodes = NULL, convergence = NULL, optimizer = NULL, center.data = NULL, standardize.data = NULL, standardize.out = NULL, standardize = NULL, mean.observed = NULL, cov.syntax = NULL, double = NULL, calc.se = NULL, FIM = NULL, EFIM.S = NULL, OFIM.hessian = NULL, EFIM.parametric = NULL, robust.se = NULL, max.iter = NULL, max.step = NULL, fix.estep = NULL, start = NULL, epsilon = NULL, quad.range = NULL, n.threads = NULL, ... )"},{"path":"/reference/modsem_da.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Interaction between latent variables using lms and qml approaches — modsem_da","text":"model.syntax lavaan syntax data dataframe method method use: \"lms\" = latent model structural equations (passed lavaan). \"qml\" = quasi maximum likelihood estimation latent model structural equations (passed lavaan). verbose estimation progress shown optimize starting parameters optimized nodes number quadrature nodes (points integration) used lms, increased number gives better estimates slower computation. many needed depends complexity model. simple models, somewhere 16-24 nodes enough; complex models, higher numbers may needed. models interaction effect endogenous exogenous variable, number nodes least 32, practically (e.g., ordinal/skewed data), 32 recommended. cases data non-normal, might better use qml approach instead. large numbers nodes, might want change 'quad.range' argument. convergence convergence criterion. Lower values give better estimates slower computation. optimizer optimizer use, can either \"nlminb\" \"L-BFGS-B\". LMS, \"nlminb\" recommended. QML, \"L-BFGS-B\" may faster large number iterations, slower iterations. center.data data centered fitting model standardize.data data scaled fitting model, overridden standardize standardize set TRUE. NOTE: recommended estimate model normally standardize output using standardized_estimates. standardize.output standardized (note alter relationships parameter constraints since parameters scaled unevenly, even label). alter estimation model, output. NOTE: recommended estimate model normally standardize output using standardized_estimates. standardize standardize data fitting model, remove mean structure observed variables, standardize output. Note standardize.data, mean.observed, standardize.overridden standardize standardize set TRUE. NOTE: recommended estimate model normally standardize output using standardized_estimates. mean.observed mean structure observed variables estimated? overridden standardize standardize set TRUE. NOTE: recommended unless know . cov.syntax model syntax implied covariance matrix (see vignette(\"interaction_two_etas\", \"modsem\")) double try double number dimensions integration used LMS, extremely slow similar mplus. calc.se standard errors computed? NOTE: FALSE, information matrix computed either. FIM Fisher information matrix calculated using observed expected values? Must either \"observed\" \"expected\". EFIM.S expected Fisher information matrix computed, EFIM.S selects number Monte Carlo samples. Defaults 100. NOTE: number likely increased better estimates (e.g., 1000-10000), might drasticly increase computation time. OFIM.hessian observed Fisher information computed using Hessian? FALSE, computed using gradient. EFIM.parametric data calculating expected Fisher information matrix simulated parametrically (simulated based assumptions implied parameters model), non-parametrically (stochastically sampled)? believe normality assumptions violated, EFIM.parametric = FALSE might better option. robust.se robust standard errors computed? Meant used QML, can unreliable LMS approach. max.iter maximum number iterations. max.step maximum steps M-step EM algorithm (LMS). fix.estep TRUE, E-step fixed, prior probabilities set best prior probabilities, log-likelihood decreases 30 iterations. start starting parameters. epsilon finite difference numerical derivatives. quad.range range z-scores perform numerical integration LMS using Gaussian-Hermite Quadratures. default Inf, f(t) integrated -Inf Inf, likely inefficient pointless large number nodes. Nodes outside +/- quad.range ignored. n.threads number cores use parallel processing. NULL, use <= 2 threads. integer specified, use number threads (e.g., n.threads = 4 use 4 threads). \"default\", use default number threads (2). \"max\", use available threads, \"min\" use 1 thread. ... additional arguments passed estimation function.","code":""},{"path":"/reference/modsem_da.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Interaction between latent variables using lms and qml approaches — modsem_da","text":"modsem_da object","code":""},{"path":"/reference/modsem_da.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Interaction between latent variables using lms and qml approaches — modsem_da","text":"","code":"library(modsem) # For more examples, check README and/or GitHub. # One interaction m1 <- \" # Outer Model X =~ x1 + x2 +x3 Y =~ y1 + y2 + y3 Z =~ z1 + z2 + z3 # Inner model Y ~ X + Z + X:Z \" if (FALSE) { # \\dontrun{ # QML Approach est1 <- modsem_da(m1, oneInt, method = \"qml\") summary(est1) # Theory Of Planned Behavior tpb <- \" # Outer Model (Based on Hagger et al., 2007) ATT =~ att1 + att2 + att3 + att4 + att5 SN =~ sn1 + sn2 PBC =~ pbc1 + pbc2 + pbc3 INT =~ int1 + int2 + int3 BEH =~ b1 + b2 # Inner Model (Based on Steinmetz et al., 2011) # Covariances ATT ~~ SN + PBC PBC ~~ SN # Causal Relationships INT ~ ATT + SN + PBC BEH ~ INT + PBC BEH ~ INT:PBC \" # LMS Approach estTpb <- modsem_da(tpb, data = TPB, method = lms, EFIM.S = 1000) summary(estTpb) } # }"},{"path":"/reference/modsem_inspect.html","id":null,"dir":"Reference","previous_headings":"","what":"Inspect model information — modsem_inspect","title":"Inspect model information — modsem_inspect","text":"function used inspect fittet object. similar `lavInspect()` argument '' decides inspect","code":""},{"path":"/reference/modsem_inspect.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Inspect model information — modsem_inspect","text":"","code":"modsem_inspect(object, what = NULL, ...)"},{"path":"/reference/modsem_inspect.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Inspect model information — modsem_inspect","text":"object fittet model inspect inspect ... Additional arguments passed functions","code":""},{"path":"/reference/modsem_inspect.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Inspect model information — modsem_inspect","text":"`modsem_da`, `modsem_lavaan` `modsem_lavaan`, just wrapper `lavInspect()` `modsem_da` “ can either \"\", \"matrices\", \"optim\", just name extract.","code":""},{"path":"/reference/modsem_mplus.html","id":null,"dir":"Reference","previous_headings":"","what":"Estimation latent interactions through mplus — modsem_mplus","title":"Estimation latent interactions through mplus — modsem_mplus","text":"Estimation latent interactions mplus","code":""},{"path":"/reference/modsem_mplus.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Estimation latent interactions through mplus — modsem_mplus","text":"","code":"modsem_mplus( model.syntax, data, estimator = \"ml\", type = \"random\", algorithm = \"integration\", process = \"8\", ... )"},{"path":"/reference/modsem_mplus.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Estimation latent interactions through mplus — modsem_mplus","text":"model.syntax lavaan/modsem syntax data dataset estimator estimator argument passed mplus type type argument passed mplus algorithm algorithm argument passed mplus process process argument passed mplus ... arguments passed functions","code":""},{"path":"/reference/modsem_mplus.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Estimation latent interactions through mplus — modsem_mplus","text":"modsem_mplus object","code":""},{"path":"/reference/modsem_mplus.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Estimation latent interactions through mplus — modsem_mplus","text":"","code":"# Theory Of Planned Behavior tpb <- ' # Outer Model (Based on Hagger et al., 2007) ATT =~ att1 + att2 + att3 + att4 + att5 SN =~ sn1 + sn2 PBC =~ pbc1 + pbc2 + pbc3 INT =~ int1 + int2 + int3 BEH =~ b1 + b2 # Inner Model (Based on Steinmetz et al., 2011) # Covariances ATT ~~ SN + PBC PBC ~~ SN # Causal Relationsships INT ~ ATT + SN + PBC BEH ~ INT + PBC BEH ~ INT:PBC ' if (FALSE) { # \\dontrun{ estTpbMplus <- modsem_mplus(tpb, data = TPB) summary(estTpbLMS) } # }"},{"path":"/reference/modsem_pi.html","id":null,"dir":"Reference","previous_headings":"","what":"Interaction between latent variables using product indicators — modsem_pi","title":"Interaction between latent variables using product indicators — modsem_pi","text":"modsem_pi() function estimating interaction effects latent variables, structural equation models (SEMs), using product indicators. Methods estimating interaction effects SEMs can basically split two frameworks: 1. Product Indicator based approaches (\"dblcent\", \"rca\", \"uca\", \"ca\", \"pind\"), 2. Distributionally based approaches (\"lms\", \"qml\"). modsem_pi() essentially fancy wrapper lavaan::sem() generates necessary syntax variables estimation models latent product indicators. Use default_settings_pi() get default settings different methods.","code":""},{"path":"/reference/modsem_pi.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Interaction between latent variables using product indicators — modsem_pi","text":"","code":"modsem_pi( model.syntax = NULL, data = NULL, method = \"dblcent\", match = NULL, standardize.data = FALSE, center.data = FALSE, first.loading.fixed = TRUE, center.before = NULL, center.after = NULL, residuals.prods = NULL, residual.cov.syntax = NULL, constrained.prod.mean = NULL, constrained.loadings = NULL, constrained.var = NULL, constrained.res.cov.method = NULL, auto.scale = \"none\", auto.center = \"none\", estimator = \"ML\", group = NULL, run = TRUE, na.rm = FALSE, suppress.warnings.lavaan = FALSE, suppress.warnings.match = FALSE, ... )"},{"path":"/reference/modsem_pi.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Interaction between latent variables using product indicators — modsem_pi","text":"model.syntax lavaan syntax data dataframe method method use: \"rca\" = residual centering approach (passed lavaan), \"uca\" = unconstrained approach (passed lavaan), \"dblcent\" = double centering approach (passed lavaan), \"pind\" = prod ind approach, constraints centering (passed lavaan), \"custom\" = use parameters specified function call (passed lavaan) match product indicators created using match-strategy standardize.data data scaled fitting model center.data data centered fitting model first.loading.fixed first factor loading latent product fixed one? center.indicators products centered computing products (overwritten method, method != NULL) center.indicator products centered computed? residuals.prods indicator products centered using residuals (overwritten method, method != NULL) residual.cov.syntax syntax residual covariances produced (overwritten method, method != NULL) constrained.prod.mean syntax product mean produced (overwritten method, method != NULL) constrained.loadings syntax constrained loadings produced (overwritten method, method != NULL) constrained.var syntax constrained variances produced (overwritten method, method != NULL) constrained.res.cov.method method constraining residual covariances auto.scale methods scaled automatically (usually useful) auto.center methods centered automatically (usually useful) estimator estimator use lavaan group group variable multigroup analysis run model run via lavaan, FALSE modified syntax data returned na.rm missing values removed (case-wise)? Defaults FALSE. TRUE, missing values removed case-wise. FALSE removed. suppress.warnings.lavaan warnings lavaan suppressed? suppress.warnings.match warnings match suppressed? ... arguments passed functions, e.g., lavaan","code":""},{"path":"/reference/modsem_pi.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Interaction between latent variables using product indicators — modsem_pi","text":"modsem object","code":""},{"path":"/reference/modsem_pi.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Interaction between latent variables using product indicators — modsem_pi","text":"","code":"library(modsem) # For more examples, check README and/or GitHub. # One interaction m1 <- ' # Outer Model X =~ x1 + x2 +x3 Y =~ y1 + y2 + y3 Z =~ z1 + z2 + z3 # Inner model Y ~ X + Z + X:Z ' # Double centering approach est1 <- modsem_pi(m1, oneInt) summary(est1) #> modsem (version 1.0.4, approach = dblcent): #> lavaan 0.6-19 ended normally after 161 iterations #> #> Estimator ML #> Optimization method NLMINB #> Number of model parameters 60 #> #> Number of observations 2000 #> #> Model Test User Model: #> #> Test statistic 122.924 #> Degrees of freedom 111 #> P-value (Chi-square) 0.207 #> #> Parameter Estimates: #> #> Standard errors Standard #> Information Expected #> Information saturated (h1) model Structured #> #> Latent Variables: #> Estimate Std.Err z-value P(>|z|) #> X =~ #> x1 1.000 #> x2 0.804 0.013 63.612 0.000 #> x3 0.916 0.014 67.144 0.000 #> Y =~ #> y1 1.000 #> y2 0.798 0.007 107.428 0.000 #> y3 0.899 0.008 112.453 0.000 #> Z =~ #> z1 1.000 #> z2 0.812 0.013 64.763 0.000 #> z3 0.882 0.013 67.014 0.000 #> XZ =~ #> x1z1 1.000 #> x2z1 0.805 0.013 60.636 0.000 #> x3z1 0.877 0.014 62.680 0.000 #> x1z2 0.793 0.013 59.343 0.000 #> x2z2 0.646 0.015 43.672 0.000 #> x3z2 0.706 0.016 44.292 0.000 #> x1z3 0.887 0.014 63.700 0.000 #> x2z3 0.716 0.016 45.645 0.000 #> x3z3 0.781 0.017 45.339 0.000 #> #> Regressions: #> Estimate Std.Err z-value P(>|z|) #> Y ~ #> X 0.675 0.027 25.379 0.000 #> Z 0.561 0.026 21.606 0.000 #> XZ 0.702 0.027 26.360 0.000 #> #> Covariances: #> Estimate Std.Err z-value P(>|z|) #> .x1z1 ~~ #> .x2z2 0.000 #> .x2z3 0.000 #> .x3z2 0.000 #> .x3z3 0.000 #> .x2z1 ~~ #> .x1z2 0.000 #> .x1z2 ~~ #> .x2z3 0.000 #> .x3z1 ~~ #> .x1z2 0.000 #> .x1z2 ~~ #> .x3z3 0.000 #> .x2z1 ~~ #> .x1z3 0.000 #> .x2z2 ~~ #> .x1z3 0.000 #> .x3z1 ~~ #> .x1z3 0.000 #> .x3z2 ~~ #> .x1z3 0.000 #> .x2z1 ~~ #> .x3z2 0.000 #> .x3z3 0.000 #> .x3z1 ~~ #> .x2z2 0.000 #> .x2z2 ~~ #> .x3z3 0.000 #> .x3z1 ~~ #> .x2z3 0.000 #> .x3z2 ~~ #> .x2z3 0.000 #> .x1z1 ~~ #> .x1z2 0.115 0.008 14.802 0.000 #> .x1z3 0.114 0.008 13.947 0.000 #> .x2z1 0.125 0.008 16.095 0.000 #> .x3z1 0.140 0.009 16.135 0.000 #> .x1z2 ~~ #> .x1z3 0.103 0.007 14.675 0.000 #> .x2z2 0.128 0.006 20.850 0.000 #> .x3z2 0.146 0.007 21.243 0.000 #> .x1z3 ~~ #> .x2z3 0.116 0.007 17.818 0.000 #> .x3z3 0.135 0.007 18.335 0.000 #> .x2z1 ~~ #> .x2z2 0.135 0.006 20.905 0.000 #> .x2z3 0.145 0.007 21.145 0.000 #> .x3z1 0.114 0.007 16.058 0.000 #> .x2z2 ~~ #> .x2z3 0.117 0.006 20.419 0.000 #> .x3z2 0.116 0.006 20.586 0.000 #> .x2z3 ~~ #> .x3z3 0.109 0.006 18.059 0.000 #> .x3z1 ~~ #> .x3z2 0.138 0.007 19.331 0.000 #> .x3z3 0.158 0.008 20.269 0.000 #> .x3z2 ~~ #> .x3z3 0.131 0.007 19.958 0.000 #> X ~~ #> Z 0.201 0.024 8.271 0.000 #> XZ 0.016 0.025 0.628 0.530 #> Z ~~ #> XZ 0.062 0.025 2.449 0.014 #> #> Variances: #> Estimate Std.Err z-value P(>|z|) #> .x1 0.160 0.009 17.871 0.000 #> .x2 0.162 0.007 22.969 0.000 #> .x3 0.163 0.008 20.161 0.000 #> .y1 0.159 0.009 17.896 0.000 #> .y2 0.154 0.007 22.640 0.000 #> .y3 0.164 0.008 20.698 0.000 #> .z1 0.168 0.009 18.143 0.000 #> .z2 0.158 0.007 22.264 0.000 #> .z3 0.158 0.008 20.389 0.000 #> .x1z1 0.311 0.014 22.227 0.000 #> .x2z1 0.292 0.011 27.287 0.000 #> .x3z1 0.327 0.012 26.275 0.000 #> .x1z2 0.290 0.011 26.910 0.000 #> .x2z2 0.239 0.008 29.770 0.000 #> .x3z2 0.270 0.009 29.117 0.000 #> .x1z3 0.272 0.012 23.586 0.000 #> .x2z3 0.245 0.009 27.979 0.000 #> .x3z3 0.297 0.011 28.154 0.000 #> X 0.981 0.036 26.895 0.000 #> .Y 0.990 0.038 25.926 0.000 #> Z 1.016 0.038 26.856 0.000 #> XZ 1.045 0.044 24.004 0.000 #> if (FALSE) { # \\dontrun{ # The Constrained Approach est1Constrained <- modsem_pi(m1, oneInt, method = \"ca\") summary(est1Constrained) } # } # Theory Of Planned Behavior tpb <- ' # Outer Model (Based on Hagger et al., 2007) ATT =~ att1 + att2 + att3 + att4 + att5 SN =~ sn1 + sn2 PBC =~ pbc1 + pbc2 + pbc3 INT =~ int1 + int2 + int3 BEH =~ b1 + b2 # Inner Model (Based on Steinmetz et al., 2011) # Covariances ATT ~~ SN + PBC PBC ~~ SN # Causal Relationships INT ~ ATT + SN + PBC BEH ~ INT + PBC BEH ~ INT:PBC ' # Double centering approach estTpb <- modsem_pi(tpb, data = TPB) summary(estTpb) #> modsem (version 1.0.4, approach = dblcent): #> lavaan 0.6-19 ended normally after 171 iterations #> #> Estimator ML #> Optimization method NLMINB #> Number of model parameters 78 #> #> Number of observations 2000 #> #> Model Test User Model: #> #> Test statistic 207.615 #> Degrees of freedom 222 #> P-value (Chi-square) 0.747 #> #> Parameter Estimates: #> #> Standard errors Standard #> Information Expected #> Information saturated (h1) model Structured #> #> Latent Variables: #> Estimate Std.Err z-value P(>|z|) #> ATT =~ #> att1 1.000 #> att2 0.878 0.012 71.509 0.000 #> att3 0.789 0.012 66.368 0.000 #> att4 0.695 0.011 61.017 0.000 #> att5 0.887 0.013 70.884 0.000 #> SN =~ #> sn1 1.000 #> sn2 0.889 0.017 52.553 0.000 #> PBC =~ #> pbc1 1.000 #> pbc2 0.912 0.013 69.500 0.000 #> pbc3 0.801 0.012 65.830 0.000 #> INT =~ #> int1 1.000 #> int2 0.914 0.016 58.982 0.000 #> int3 0.808 0.015 55.547 0.000 #> BEH =~ #> b1 1.000 #> b2 0.960 0.030 31.561 0.000 #> INTPBC =~ #> int1pbc1 1.000 #> int2pbc1 0.931 0.015 63.809 0.000 #> int3pbc1 0.774 0.013 60.107 0.000 #> int1pbc2 0.893 0.013 68.173 0.000 #> int2pbc2 0.826 0.017 48.845 0.000 #> int3pbc2 0.690 0.015 45.300 0.000 #> int1pbc3 0.799 0.012 67.008 0.000 #> int2pbc3 0.738 0.015 47.809 0.000 #> int3pbc3 0.622 0.014 45.465 0.000 #> #> Regressions: #> Estimate Std.Err z-value P(>|z|) #> INT ~ #> ATT 0.213 0.026 8.170 0.000 #> SN 0.177 0.028 6.416 0.000 #> PBC 0.217 0.030 7.340 0.000 #> BEH ~ #> INT 0.191 0.024 7.817 0.000 #> PBC 0.230 0.022 10.507 0.000 #> INTPBC 0.204 0.018 11.425 0.000 #> #> Covariances: #> Estimate Std.Err z-value P(>|z|) #> ATT ~~ #> SN 0.629 0.029 21.977 0.000 #> PBC 0.678 0.029 23.721 0.000 #> SN ~~ #> PBC 0.678 0.029 23.338 0.000 #> .int1pbc1 ~~ #> .int2pbc2 0.000 #> .int2pbc3 0.000 #> .int3pbc2 0.000 #> .int3pbc3 0.000 #> .int2pbc1 ~~ #> .int1pbc2 0.000 #> .int1pbc2 ~~ #> .int2pbc3 0.000 #> .int3pbc1 ~~ #> .int1pbc2 0.000 #> .int1pbc2 ~~ #> .int3pbc3 0.000 #> .int2pbc1 ~~ #> .int1pbc3 0.000 #> .int2pbc2 ~~ #> .int1pbc3 0.000 #> .int3pbc1 ~~ #> .int1pbc3 0.000 #> .int3pbc2 ~~ #> .int1pbc3 0.000 #> .int2pbc1 ~~ #> .int3pbc2 0.000 #> .int3pbc3 0.000 #> .int3pbc1 ~~ #> .int2pbc2 0.000 #> .int2pbc2 ~~ #> .int3pbc3 0.000 #> .int3pbc1 ~~ #> .int2pbc3 0.000 #> .int3pbc2 ~~ #> .int2pbc3 0.000 #> .int1pbc1 ~~ #> .int1pbc2 0.126 0.009 14.768 0.000 #> .int1pbc3 0.102 0.007 13.794 0.000 #> .int2pbc1 0.104 0.007 14.608 0.000 #> .int3pbc1 0.091 0.006 14.109 0.000 #> .int1pbc2 ~~ #> .int1pbc3 0.095 0.007 13.852 0.000 #> .int2pbc2 0.128 0.007 19.320 0.000 #> .int3pbc2 0.119 0.006 19.402 0.000 #> .int1pbc3 ~~ #> .int2pbc3 0.110 0.006 19.911 0.000 #> .int3pbc3 0.097 0.005 19.415 0.000 #> .int2pbc1 ~~ #> .int2pbc2 0.152 0.008 18.665 0.000 #> .int2pbc3 0.138 0.007 18.779 0.000 #> .int3pbc1 0.082 0.006 13.951 0.000 #> .int2pbc2 ~~ #> .int2pbc3 0.121 0.007 18.361 0.000 #> .int3pbc2 0.104 0.005 19.047 0.000 #> .int2pbc3 ~~ #> .int3pbc3 0.087 0.005 19.180 0.000 #> .int3pbc1 ~~ #> .int3pbc2 0.139 0.007 21.210 0.000 #> .int3pbc3 0.123 0.006 21.059 0.000 #> .int3pbc2 ~~ #> .int3pbc3 0.114 0.005 21.021 0.000 #> ATT ~~ #> INTPBC 0.086 0.024 3.519 0.000 #> SN ~~ #> INTPBC 0.055 0.025 2.230 0.026 #> PBC ~~ #> INTPBC 0.087 0.024 3.609 0.000 #> #> Variances: #> Estimate Std.Err z-value P(>|z|) #> .att1 0.167 0.007 23.528 0.000 #> .att2 0.150 0.006 24.693 0.000 #> .att3 0.160 0.006 26.378 0.000 #> .att4 0.163 0.006 27.649 0.000 #> .att5 0.159 0.006 24.930 0.000 #> .sn1 0.178 0.015 12.110 0.000 #> .sn2 0.156 0.012 13.221 0.000 #> .pbc1 0.145 0.008 18.440 0.000 #> .pbc2 0.160 0.007 21.547 0.000 #> .pbc3 0.154 0.007 23.716 0.000 #> .int1 0.158 0.009 18.152 0.000 #> .int2 0.160 0.008 20.345 0.000 #> .int3 0.167 0.007 23.414 0.000 #> .b1 0.186 0.018 10.058 0.000 #> .b2 0.135 0.017 8.080 0.000 #> .int1pbc1 0.266 0.013 20.971 0.000 #> .int2pbc1 0.292 0.012 24.421 0.000 #> .int3pbc1 0.251 0.010 26.305 0.000 #> .int1pbc2 0.290 0.012 24.929 0.000 #> .int2pbc2 0.269 0.010 26.701 0.000 #> .int3pbc2 0.253 0.009 29.445 0.000 #> .int1pbc3 0.223 0.009 24.431 0.000 #> .int2pbc3 0.234 0.008 27.633 0.000 #> .int3pbc3 0.203 0.007 29.288 0.000 #> ATT 0.998 0.037 27.138 0.000 #> SN 0.987 0.039 25.394 0.000 #> PBC 0.962 0.035 27.260 0.000 #> .INT 0.490 0.020 24.638 0.000 #> .BEH 0.455 0.023 20.068 0.000 #> INTPBC 1.020 0.041 24.612 0.000 #> if (FALSE) { # \\dontrun{ # The Constrained Approach estTpbConstrained <- modsem_pi(tpb, data = TPB, method = \"ca\") summary(estTpbConstrained) } # }"},{"path":"/reference/modsemify.html","id":null,"dir":"Reference","previous_headings":"","what":"Generate parameter table for lavaan syntax — modsemify","title":"Generate parameter table for lavaan syntax — modsemify","text":"Generate parameter table lavaan syntax","code":""},{"path":"/reference/modsemify.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Generate parameter table for lavaan syntax — modsemify","text":"","code":"modsemify(syntax)"},{"path":"/reference/modsemify.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Generate parameter table for lavaan syntax — modsemify","text":"syntax model syntax","code":""},{"path":"/reference/modsemify.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Generate parameter table for lavaan syntax — modsemify","text":"data.frame columns lhs, op, rhs, mod","code":""},{"path":"/reference/modsemify.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Generate parameter table for lavaan syntax — modsemify","text":"","code":"library(modsem) m1 <- ' # Outer Model X =~ x1 + x2 +x3 Y =~ y1 + y2 + y3 Z =~ z1 + z2 + z3 # Inner model Y ~ X + Z + X:Z ' modsemify(m1) #> lhs op rhs mod #> 1 X =~ x1 #> 2 X =~ x2 #> 3 X =~ x3 #> 4 Y =~ y1 #> 5 Y =~ y2 #> 6 Y =~ y3 #> 7 Z =~ z1 #> 8 Z =~ z2 #> 9 Z =~ z3 #> 10 Y ~ X #> 11 Y ~ Z #> 12 Y ~ X:Z"},{"path":"/reference/multiplyIndicatorsCpp.html","id":null,"dir":"Reference","previous_headings":"","what":"Multiply indicators — multiplyIndicatorsCpp","title":"Multiply indicators — multiplyIndicatorsCpp","text":"Multiply indicators","code":""},{"path":"/reference/multiplyIndicatorsCpp.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Multiply indicators — multiplyIndicatorsCpp","text":"","code":"multiplyIndicatorsCpp(df)"},{"path":"/reference/multiplyIndicatorsCpp.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Multiply indicators — multiplyIndicatorsCpp","text":"df data DataFrame","code":""},{"path":"/reference/multiplyIndicatorsCpp.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Multiply indicators — multiplyIndicatorsCpp","text":"NumericVector","code":""},{"path":"/reference/oneInt.html","id":null,"dir":"Reference","previous_headings":"","what":"oneInt — oneInt","title":"oneInt — oneInt","text":"simulated dataset one interaction effect","code":""},{"path":"/reference/parameter_estimates.html","id":null,"dir":"Reference","previous_headings":"","what":"Extract parameterEstimates from an estimated model — parameter_estimates","title":"Extract parameterEstimates from an estimated model — parameter_estimates","text":"Extract parameterEstimates estimated model","code":""},{"path":"/reference/parameter_estimates.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Extract parameterEstimates from an estimated model — parameter_estimates","text":"","code":"parameter_estimates(object, ...)"},{"path":"/reference/parameter_estimates.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Extract parameterEstimates from an estimated model — parameter_estimates","text":"object object class modsem_pi, modsem_da, modsem_mplus ... Additional arguments passed functions","code":""},{"path":"/reference/plot_interaction.html","id":null,"dir":"Reference","previous_headings":"","what":"Plot Interaction Effects — plot_interaction","title":"Plot Interaction Effects — plot_interaction","text":"Plot Interaction Effects","code":""},{"path":"/reference/plot_interaction.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Plot Interaction Effects — plot_interaction","text":"","code":"plot_interaction( x, z, y, xz = NULL, vals_x = seq(-3, 3, 0.001), vals_z, model, alpha_se = 0.15, ... )"},{"path":"/reference/plot_interaction.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Plot Interaction Effects — plot_interaction","text":"x name variable x-axis z name moderator variable y name outcome variable xz name interaction term. interaction term specified, created using x z. vals_x values x variable plot, values smoother std.error-area . NOTE: vals_x measured relative mean x. correct values show plot. vals_z values moderator variable plot. separate regression NOTE: vals_z measured relative mean z. correct values show plot. line (y ~ x | z) plotted value moderator variable model object class modsem_pi, modsem_da, modsem_mplus alpha_se alpha level std.error area ... Additional arguments passed functions","code":""},{"path":"/reference/plot_interaction.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Plot Interaction Effects — plot_interaction","text":"ggplot object","code":""},{"path":"/reference/plot_interaction.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Plot Interaction Effects — plot_interaction","text":"","code":"library(modsem) if (FALSE) { # \\dontrun{ m1 <- \" # Outer Model X =~ x1 X =~ x2 + x3 Z =~ z1 + z2 + z3 Y =~ y1 + y2 + y3 # Inner model Y ~ X + Z + X:Z \" est1 <- modsem(m1, data = oneInt) plot_interaction(\"X\", \"Z\", \"Y\", \"X:Z\", -3:3, c(-0.2, 0), est1) tpb <- \" # Outer Model (Based on Hagger et al., 2007) ATT =~ att1 + att2 + att3 + att4 + att5 SN =~ sn1 + sn2 PBC =~ pbc1 + pbc2 + pbc3 INT =~ int1 + int2 + int3 BEH =~ b1 + b2 # Inner Model (Based on Steinmetz et al., 2011) # Causal Relationsships INT ~ ATT + SN + PBC BEH ~ INT + PBC # BEH ~ ATT:PBC BEH ~ PBC:INT # BEH ~ PBC:PBC \" est2 <- modsem(tpb, TPB, method = \"lms\") plot_interaction(x = \"INT\", z = \"PBC\", y = \"BEH\", xz = \"PBC:INT\", vals_z = c(-0.5, 0.5), model = est2) } # }"},{"path":"/reference/plot_jn.html","id":null,"dir":"Reference","previous_headings":"","what":"Plot Interaction Effect Using the Johnson-Neyman Technique — plot_jn","title":"Plot Interaction Effect Using the Johnson-Neyman Technique — plot_jn","text":"function plots simple slopes interaction effect across different values moderator variable using Johnson-Neyman technique. identifies regions effect predictor outcome statistically significant.","code":""},{"path":"/reference/plot_jn.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Plot Interaction Effect Using the Johnson-Neyman Technique — plot_jn","text":"","code":"plot_jn( x, z, y, xz = NULL, model, min_z = -3, max_z = 3, sig.level = 0.05, alpha = 0.2, detail = 1000, sd.line = 2, ... )"},{"path":"/reference/plot_jn.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Plot Interaction Effect Using the Johnson-Neyman Technique — plot_jn","text":"x name predictor variable (character string). z name moderator variable (character string). y name outcome variable (character string). xz name interaction term. specified, created using x z. model fitted model object class modsem_da, modsem_mplus, modsem_pi, lavaan. min_z minimum value moderator variable z used plot (default -3). relative mean z. max_z maximum value moderator variable z used plot (default 3). relative mean z. sig.level significance level confidence intervals (default 0.05). alpha alpha setting used `ggplot` (.e., opposite opacity) detail number generated data points use plot (default 1000). can increase value smoother plots. sd.line thick black line showing +/- sd.line * sd(z). NOTE: line truncated min_z max_z sd.line falls outside [min_z, max_z]. ... Additional arguments (currently used).","code":""},{"path":"/reference/plot_jn.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Plot Interaction Effect Using the Johnson-Neyman Technique — plot_jn","text":"ggplot object showing interaction plot regions significance.","code":""},{"path":"/reference/plot_jn.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Plot Interaction Effect Using the Johnson-Neyman Technique — plot_jn","text":"function calculates simple slopes predictor variable x outcome variable y different levels moderator variable z. uses Johnson-Neyman technique identify regions z effect x y statistically significant. extracts necessary coefficients variance-covariance information fitted model object. function computes critical t-value solves quadratic equation derived t-statistic equation find Johnson-Neyman points. plot displays: estimated simple slopes across range z. Confidence intervals around slopes. Regions effect significant (shaded areas). Vertical dashed lines indicating Johnson-Neyman points. Text annotations providing exact values Johnson-Neyman points.","code":""},{"path":"/reference/plot_jn.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Plot Interaction Effect Using the Johnson-Neyman Technique — plot_jn","text":"","code":"if (FALSE) { # \\dontrun{ library(modsem) m1 <- ' visual =~ x1 + x2 + x3 textual =~ x4 + x5 + x6 speed =~ x7 + x8 + x9 visual ~ speed + textual + speed:textual ' est <- modsem(m1, data = lavaan::HolzingerSwineford1939, method = \"ca\") plot_jn(x = \"speed\", z = \"textual\", y = \"visual\", model = est, max_z = 6) } # }"},{"path":"/reference/standardized_estimates.html","id":null,"dir":"Reference","previous_headings":"","what":"Get standardized estimates — standardized_estimates","title":"Get standardized estimates — standardized_estimates","text":"Get standardized estimates","code":""},{"path":"/reference/standardized_estimates.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get standardized estimates — standardized_estimates","text":"","code":"standardized_estimates(object, ...)"},{"path":"/reference/standardized_estimates.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get standardized estimates — standardized_estimates","text":"object object class modsem_da, modsem_mplus, parTable class data.frame ... Additional arguments passed functions","code":""},{"path":"/reference/standardized_estimates.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Get standardized estimates — standardized_estimates","text":"modsem_da, modsem_mplus objects, interaction term standardized var(xz) = 1. interaction term actual variable model, meaning variance. must therefore calculated parameters model. Assuming normality zero-means, variance calculated var(xz) = var(x) * var(z) + cov(x, z)^2. Thus setting variance interaction term 1 'correct' correlation x z zero. means standardized estimates interaction term different using lavaan, since interaction term actual latent variable model, standardized variance 1.","code":""},{"path":"/reference/summary.html","id":null,"dir":"Reference","previous_headings":"","what":"summary for modsem objects — summary.modsem_da","title":"summary for modsem objects — summary.modsem_da","text":"summary modsem objects summary modsem objects summary modsem objects","code":""},{"path":"/reference/summary.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"summary for modsem objects — summary.modsem_da","text":"","code":"# S3 method for class 'modsem_da' summary( object, H0 = TRUE, verbose = interactive(), r.squared = TRUE, adjusted.stat = FALSE, digits = 3, scientific = FALSE, ci = FALSE, standardized = FALSE, loadings = TRUE, regressions = TRUE, covariances = TRUE, intercepts = !standardized, variances = TRUE, var.interaction = FALSE, ... ) # S3 method for class 'modsem_mplus' summary( object, scientific = FALSE, standardize = FALSE, ci = FALSE, digits = 3, loadings = TRUE, regressions = TRUE, covariances = TRUE, intercepts = TRUE, variances = TRUE, ... ) # S3 method for class 'modsem_pi' summary(object, ...)"},{"path":"/reference/summary.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"summary for modsem objects — summary.modsem_da","text":"object modsem object summarized H0 null model estimated (used comparison) verbose print progress estimation null model r.squared calculate R-squared adjusted.stat sample size corrected/adjustes AIC BIC reported? digits number digits print scientific print p-values scientific notation ci print confidence intervals standardized print standardized estimates loadings print loadings regressions print regressions covariances print covariances intercepts print intercepts variances print variances var.interaction FALSE (default) variances interaction terms removed (present) ... arguments passed lavaan::summary() standardize standardize estimates","code":""},{"path":"/reference/summary.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"summary for modsem objects — summary.modsem_da","text":"","code":"if (FALSE) { # \\dontrun{ m1 <- \" # Outer Model X =~ x1 + x2 + x3 Y =~ y1 + y2 + y3 Z =~ z1 + z2 + z3 # Inner model Y ~ X + Z + X:Z \" est1 <- modsem(m1, oneInt, \"qml\") summary(est1, ci = TRUE, scientific = TRUE) } # }"},{"path":"/reference/trace_path.html","id":null,"dir":"Reference","previous_headings":"","what":"Estimate formulas for (co-)variance paths using Wright's path tracing rules — trace_path","title":"Estimate formulas for (co-)variance paths using Wright's path tracing rules — trace_path","text":"function estimates path x y using path tracing rules. Note works structural parameters, \"=~\" ignored, unless measurement.model = TRUE. want use measurement model, \"~\" mod column pt.","code":""},{"path":"/reference/trace_path.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Estimate formulas for (co-)variance paths using Wright's path tracing rules — trace_path","text":"","code":"trace_path( pt, x, y, parenthesis = TRUE, missing.cov = FALSE, measurement.model = FALSE, maxlen = 100, ... )"},{"path":"/reference/trace_path.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Estimate formulas for (co-)variance paths using Wright's path tracing rules — trace_path","text":"pt data frame columns lhs, op, rhs, mod, modsemify x Source variable y Destination variable parenthesis TRUE, output enclosed parenthesis missing.cov TRUE, covariances missing model syntax added measurement.model TRUE, function use measurement model maxlen Maximum length path aborting ... Additional arguments passed trace_path","code":""},{"path":"/reference/trace_path.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Estimate formulas for (co-)variance paths using Wright's path tracing rules — trace_path","text":"string estimated path (simplified possible)","code":""},{"path":"/reference/trace_path.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Estimate formulas for (co-)variance paths using Wright's path tracing rules — trace_path","text":"","code":"library(modsem) m1 <- ' # Outer Model X =~ x1 + x2 +x3 Y =~ y1 + y2 + y3 Z =~ z1 + z2 + z3 # Inner model Y ~ X + Z + X:Z ' pt <- modsemify(m1) trace_path(pt, x = \"Y\", y = \"Y\", missing.cov = TRUE) # variance of Y #> [1] \"(X~~X * Y~X ^ 2 + 2 * X~~Z * Y~X * Y~Z + Y~Z ^ 2 * Z~~Z + Y~~Y)\""},{"path":"/reference/var_interactions.html","id":null,"dir":"Reference","previous_headings":"","what":"Extract or modify parTable from an estimated model with estimated variances of interaction terms — var_interactions","title":"Extract or modify parTable from an estimated model with estimated variances of interaction terms — var_interactions","text":"Extract modify parTable estimated model estimated variances interaction terms","code":""},{"path":"/reference/var_interactions.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Extract or modify parTable from an estimated model with estimated variances of interaction terms — var_interactions","text":"","code":"var_interactions(object, ...)"},{"path":"/reference/var_interactions.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Extract or modify parTable from an estimated model with estimated variances of interaction terms — var_interactions","text":"object object class modsem_da, modsem_mplus, parTable class data.frame ... Additional arguments passed functions","code":""},{"path":"/reference/vcov_modsem_da.html","id":null,"dir":"Reference","previous_headings":"","what":"Wrapper for vcov — vcov_modsem_da","title":"Wrapper for vcov — vcov_modsem_da","text":"wrapper vcov, used modsem::vcov_modsem_da, since vcov namespace modsem, stats","code":""},{"path":"/reference/vcov_modsem_da.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Wrapper for vcov — vcov_modsem_da","text":"","code":"vcov_modsem_da(object, ...)"},{"path":"/reference/vcov_modsem_da.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Wrapper for vcov — vcov_modsem_da","text":"object fittet model inspect ... additional arguments","code":""}]