Open GreyMerchant opened 4 years ago
Hi GreyMerchant
Thanks for the interest. In PLS composites can only be measured as mode_a or mode_b. PLS does not allow for truly reflective constructs as estimated in cb-sem. (A posthoc adjustment can be made, and is for reflective() constructs in order to reproduce results for cb-sem using pls) However, if you wish to change your model spec to have mode_a composites, you can simply replace the reflective() function with the composite() function in constructs().
Please note that composites() takes an additional parameter weights which is default set to mode_A.
Once the model is estimated, you can use mobi_pls$outer_loadings and mobi_pls$outer_weights to access the relevant parameters.
SmartPLS uses “reflective” and mode A interchangeably. We disagree slightly with this formulation. However SEMinR will produce the same estimated parameters using composites(..., weights = mode_A) as SmartPLS does using reflective.
I hope this helps. Do let me know if you need any further details.
Kind regards, Nick
Get Outlook for iOShttps://aka.ms/o0ukef
From: GreyMerchant notifications@github.com Sent: Tuesday, May 5, 2020 10:35:01 PM To: NicholasDanks/seminr seminr@noreply.github.com Cc: Subscribed subscribed@noreply.github.com Subject: [NicholasDanks/seminr] Applying weights (mode_A) to composite instead of reflective? (#1)
Hello there,
Thank you for this great package! So the code below runs as I expected. I do however want to be able to run the reflective with weights = mode_A but I see that is only available for the composite(). Is there some way I can do this on reflective at all?
Essentially, I am trying to match seminr as closely as possible to actual SmartPLS.
library(seminr)
mobi_mm <- constructs( reflective("Image", multi_items("IMAG", 1:5)), #correlation weight reflective("Expectation", multi_items("CUEX", 1:3)), reflective("Quality", multi_items("PERQ", 1:7)), reflective("Value", multi_items("PERV", 1:2)), reflective("Satisfaction", multi_items("CUSA", 1:3)), reflective("Complaints", single_item("CUSCO")), reflective("Loyalty", multi_items("CUSL", 1:3)) )
mobi_sm <- relationships( paths(from = "Image", to = c("Expectation", "Satisfaction", "Loyalty")), paths(from = "Expectation", to = c("Quality", "Value", "Satisfaction")), paths(from = "Quality", to = c("Value", "Satisfaction")), paths(from = "Value", to = c("Satisfaction")), paths(from = "Satisfaction", to = c("Complaints", "Loyalty")), paths(from = "Complaints", to = "Loyalty") )
mobi_pls <- estimate_pls(data = mobi, measurement_model = mobi_mm, structural_model = mobi_sm, inner_weights = path_weighting)
summary(mobi_pls)
mobi_pls$outer_loadings
— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHubhttps://github.com/NicholasDanks/seminr/issues/1, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AECEM47YNGOIJBHCVJZZQH3RQAPZLANCNFSM4MZUDXBQ.
Hi,
Thanks so much for your reply. I have also picked up on this "SmartPLS uses “reflective” and mode A interchangeably" and it makes it very confusing throughout trying to get runs to match.
I was able to match SEMinR with composites(..., weights = mode_A) against SmartPLS reflective with mode A per latent factor.
library(seminr)
# Composite run (latent -> items) -----------------------------------------
mobi_mm <- constructs(
composite("Image", multi_items("IMAG", 1:5), weights = mode_A), #correlation weight
composite("Expectation", multi_items("CUEX", 1:3), weights = mode_A),#
composite("Quality", multi_items("PERQ", 1:7), weights = mode_A),
composite("Value", multi_items("PERV", 1:2), weights = mode_A),
composite("Satisfaction", multi_items("CUSA", 1:3), weights = mode_A),
composite("Complaints", single_item("CUSCO"), weights = mode_A),
composite("Loyalty", multi_items("CUSL", 1:3), weights = mode_A)
)
mobi_sm <- relationships(
paths(from = "Image", to = c("Expectation", "Satisfaction", "Loyalty")),
paths(from = "Expectation", to = c("Quality", "Value", "Satisfaction")),
paths(from = "Quality", to = c("Value", "Satisfaction")),
paths(from = "Value", to = c("Satisfaction")),
paths(from = "Satisfaction", to = c("Complaints", "Loyalty")),
paths(from = "Complaints", to = "Loyalty")
)
mobi_pls <- estimate_pls(data = mobi,
measurement_model = mobi_mm,
structural_model = mobi_sm,
inner_weights = path_weighting)
summary(mobi_pls)
mobi_pls$outer_loadings
The below is what I am trying to match. How would I go about matching it? How would one do the adjustment? And or know how they are performing it? Cb-sem? Covariate based sem?
Hello there,
Thank you for this great package! So the code below runs as I expected. I do however want to be able to run the reflective with weights = mode_A but I see that is only available for the composite(). Is there some way I can do this on reflective at all?
Essentially, I am trying to match
seminr
as closely as possible to actual SmartPLS.