-
Notifications
You must be signed in to change notification settings - Fork 18
PLS-SEM GitHub issues #284
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
@kylelang, can you review? I worked with @FloSchuberth to address all the issues, he is the developer of the underlying R-package. |
I'll take a look next week. |
@kylelang How are we doing with this? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorry about the delay. At least on my system, half of these fixes work, but there are still problems with the benchmark options and the multiple group construct scores. See my itemized comments below.
fixes https://github.com/jasp-stats/INTERNAL-jasp/issues/2725
- Agree
fixes https://github.com/jasp-stats/jasp-test-release/issues/2829
- Technically, this fixes the bug, but the solution doesn't feel very satisfying.
- The new error message doesn't explain why covariances aren't allowed.
- It's pretty strange to suggest naively replacing all covariances with regression paths.
- If the user understands their model and has specified covariances for a reason, they'll think you're crazy.
fixes https://github.com/jasp-stats/INTERNAL-jasp/issues/2772
- I can't evaluate this change. I wasn't aware of the original problem, and the linked issue doesn't document the putative bug.
fixes https://github.com/jasp-stats/INTERNAL-jasp/issues/2771
- Same as above.
fixes https://github.com/jasp-stats/INTERNAL-jasp/issues/2729
- The original bug is no longer possible since the offensive option has been removed, but a new bug has taken up residence.
- Setting the benchmark option to "all" now crashes the analysis with an archaic R error.
- You can reproduce the new bug by following the same steps that triggered the original bug but setting the benchmark option to "all".
- MRE
fixes https://github.com/jasp-stats/INTERNAL-jasp/issues/2727
- This one still seems to be determinedly broken, although now in new and exciting ways.
- Asking to save the construct scores in a multiple group model will cause the analysis to rerun in an infinite loop.
- The behavior feels like a broken JASP container dependency.
- MRE.
fixes https://github.com/jasp-stats/INTERNAL-jasp/issues/2726
- Agree
fixes https://github.com/jasp-stats/INTERNAL-jasp/issues/2728
- Agree
@FloSchuberth had some insight as to why it was not a good idea to allow these covariances. I think we may need a better error message. This had something with multiple models, but I removed the option to specify multiple models, because there was little benefit for this specific analysis. this was changing the format of some p-values in tables.
Fixed that now.
|
Considering the covariances. In PLS-PM you cannot specify covariances as you can do in SEM. PLS-PM is a two-step procedure. In the first step, the correlations between the constructs are estimated. This is similar to fitting a CFA model (similar because by default PLS-PM works with composites). In the second step, this correlation matrix is used as input for OLS to estimate the structural model. Therefore, it is not possible to specify covariances as we can do in SEM. Does that help? |
This makes sense. Does the same restriction apply to correlated residuals for reflective factors in the model? That is, are all covariances impossible in a PLS-SEM, or is it only covariances in the structural model that aren't allowed? If some covariances are possible, triggering an error anytime the syntax contains |
@kylelang: Traditionally, correlated errors are not possible in PLS-PM. The reason for this is that PLS just creates composites as proxies for the latent variables. To address this issue consistent partial least squares (PLSc) has been developed. You can think about PLSc as an approach similar to factor score regression. PLSc can consistently estimate factor laodings and path coefficients of models following the so-called basic design, i.e., models with no cross-loadings, no correlated errors, no feedback loops etc. Recently, we proposed a way how PLSc can be applied to models where random measurement errors are correlated within a block of indicators (indicators that belong to the same latent variable; https://www.emerald.com/insight/content/doi/10.1108/intr-12-2017-0525/full/html). This approach is also implemented in cSEM. Therefore, in principle it is possible to use the ~~ operator in some situations. However, to the best of my knowledge cSEM is the only software where this approach is implemented. Moreover, I believe that correlated errors are not much of interest to the normal PLS user. Long story short: Not all covariances are impossible since correlated error terms between indicators belonging to one latent variable can be taken into account. This approach is also implemented in cSEM. |
Thanks for clarifying Flo. The question that remains is if we want to allow that then only for residuals, or prevent it for everything. |
@juliuspfadt I think when we discussed the implementation of PLS-PM in JASP we decided to prohibit specifying covariances for the sake of keeping things simple. I have no preferences. However, if you allow for these covariances, they should also be reported in the parameter table, |
So right now I am trying to get the preloadData stuff to work, but there are some hiccups. Eventually, I hope this will help me fix the infinite loop error. I am also trying to get the residual covariances into a table, but I am not certain where in the output I would find them @FloSchuberth ? |
It seems I could just take them out of Estimates$Residual_correlation at the index of the two variables that are involved? But does that mean all residual correlations are estimated anyways at all times? |
b988267
to
9c020be
Compare
@juliuspfadt: If you specify measurement error correlations, i.e., you specify a latent variable using = |
fd600d1
to
aab463a
Compare
fixes https://github.com/jasp-stats/INTERNAL-jasp/issues/2725
fixes https://github.com/jasp-stats/jasp-test-release/issues/2829
fixes https://github.com/jasp-stats/INTERNAL-jasp/issues/2772
fixes https://github.com/jasp-stats/INTERNAL-jasp/issues/2771
fixes https://github.com/jasp-stats/INTERNAL-jasp/issues/2729
fixes https://github.com/jasp-stats/INTERNAL-jasp/issues/2727
fixes https://github.com/jasp-stats/INTERNAL-jasp/issues/2726
fixes https://github.com/jasp-stats/INTERNAL-jasp/issues/2728