pls.pathmox: Pathmox Segmentation Trees in Partial Least Squares...

View source: R/pls.pathmox.R

pls.pathmoxR Documentation

Pathmox Segmentation Trees in Partial Least Squares Structural Equation Modeling (PLS-SEM)

Description

pls.pathmox calculates a binary segmentation tree in the context of partial least squares structural equation modeling (PLS-SEM) following the PATHMOX algorithm. It detects heterogeneity in PLS-SEM models when the segmentation variables (categorical variables), external to the model, are available, and when the objective of the research is exploratory. pls.pathmox function returns the most significant different models associated with the terminal nodes of the tree. It also returns a ranking according to importance of the categorical variables used in the split process. pls.pathmox also enables the hybrid multigroup analysis (Lamberti, 2021) to be run. In fact, the function returns an object, .hybrid, containing the datasets associated with the terminal nodes prepared to be treated with the cSEM package (Rademaker and Schuberth, 2020). It thus enables the MICOM and MGA procedures to be run (Hair et al., 2017; Henseler et al., 2016; Henseler et al., 2009).

Usage

pls.pathmox(
  .model,
  .data,
  .catvar,
  .scheme = "path",
  .consistent = TRUE,
  .alpha = 0.05,
  .deep = 2,
  .size = 0.1,
  .size_candidate = 50,
  .tree = TRUE
)

Arguments

.model

A description of the user-specified model. The model is described using the lavaan syntax. Structural and measurement models are defined by enclosure between double quotes. The directional link between constructs is defined using the ("~") operator. On the left-hand side of the operator is the dependent construct and on the right-hand side are the explanatory constructs, separated by the ("+") operator. As for the outer model, constructs are defined by listing their corresponding MVs after the operator ("=~") if latent variable is modelled as a common factor, or the operator("<~") if latent variable is modelled as a composite. On the left-hand side of the operator, is the construct and on the right-hand side are the MVs separated by the ("+") operator. Variable labels cannot contain (".").

.data

A matrix or dataframe containing the manifest variables.

.catvar

A single factor or set of factors organized as a dataframe containing the categorical variables used as sources of heterogeneity.

.scheme

A string indicating the type of inner weighting scheme. Possible values are "centroid", "factorial", or "path". By default .scheme is equal to "path".

.consistent

Logical. Should composite/proxy correlations be disattenuated to yield consistent loadings and path estimates if at least one of the construct is modeled as a common factor. Defaults to TRUE.

.alpha

A decimal value indicating the minimum threshold significance for the partitioning algorithm. By default .alpha is equal to 0.05.

.deep

An integer indicating the maximum tree depth. Must be an integer equal to or greater than 1. By default .deep is equal to 2.

.size

A decimal value indicating the minimum admissible sample size for a node. It is equal to 0.10 by default meaning that the minimum sample size of the node is equal to the 10$ of the total number of observations.

.size_candidate

An integer indicating the minimum admissible sample size for a candidate node. It is equal to 50 observations by default.

.tree

A string indicating if the tree plot must be shown. By default, it is equal to TRUE.

Details

pls.pathmox uses the classical lavaan syntax to define inner and outer models and mode. The user can choose to perform the analysis for a single categorical variable or a set of factors. In the latter case, categorical variables must be organized as a dataframe. Scheme is equal to path by default following other PLS-SEM softwares (SMART-PLS (Ringle at al., 2015), cSEM R package (Rademaker and Schuberth, 2020)), but can be modified by the user to "centroid" or "factorial". Stops parameters (.alpha (threshold significance for the partitioning algorithm), .deep (maximum tree depth), and .size (minimum admissible sample size for a node)) are fixed respectively to .alpha = 0.05, .deep = 2, and .size = 0.10 according to Lamberti et al. (2016). However, again the user can modify these parameters according to the specific objectives of the analysis. pls.pathmox also defines a minimum admissible size for a candidate node that restricts the search of the optimal split to that partitions that produce nodes with an adequate number of observations. This parameter (.size_candidate) is fixed to 50 observations by default. PLS-SEM model coefficients used in the split process are estimated by applying the consistent PLS-SEM algorithm proposed by Dijkstra and Henseler (2015). However, the user can choose to run the analysis by using the classical algorithm by setting to FASLE the paramenter .consistent. pls.pathmox also returns an object containing the datasets associated with the terminal nodes (object$hybrid) prepared to be treated with the cSEM package (Rademaker and Schuberth, 2020). This means that, once the pathmox finalizes the search for the most significant different groups associated with the most significant different PLS-SEM models, the user can perform a detailed analysis for each group using the cSEM package, or can run the MICOM and MGA procedures (Hair et al. 2017; Henseler et al. 2016) on the terminal nodes.

Value

An object of class "plstree". This is a list with the following results:

MOX

dataframe containing the results of the segmentation tree.

terminal_paths

dataframe containing PLS-SEM model terminal nodes (path coeff. & R^2).

var_imp

dataframe containing the categorical variable ranking by importance.

Fg.r

dataframe containing the results of the F-global test for each node partition.

Fc.r

list of dataframes containing the results of the F-coefficient test for each node.

hybrid

list of datasets associated with the terminal node prepared for MGA with cSEM R package.

other

Other parameters and results.

Author(s)

Giuseppe Lamberti

References

Klesel, M., Schuberth, F., Niehaves, B., and Henseler, J. (2022). Multigroup analysis in information systems research using PLS-PM: A systematic investigation of approaches. ACM SIGMIS Database: the DATABASE for Advances in Information Systems, 53(3), 26-48. \Sexpr[results=rd]{tools:::Rd_expr_doi("10.1145/3551783.3551787")}

Hair, J. F., Risher, J. J., Sarstedt, M., and Ringle, C. M. (2019). When to use and how to report the results of PLS-SEM. European business review, 31(1), 2-24. \Sexpr[results=rd]{tools:::Rd_expr_doi("10.1108/EBR-11-2018-0203")}

Hair, J. F., Sarstedt, M., Ringle, C. M., and Gudergan, S. P. (2017). Advanced issues in partial least squares structural equation modeling. SAGE publications: Los Angeles

Henseler, J., Ringle, C. M., and Sarstedt, M. (2016). Testing measurement invariance of composites using partial least squares. International marketing review, 33(3), 405-431. \Sexpr[results=rd]{tools:::Rd_expr_doi("10.1108/IMR-09-2014-0304")}

Ringle, C. M., and Sinkovics, R. R. (2009). The use of partial least squares path modeling in international marketing. Advances in International Marketing, 20, 277-319. \Sexpr[results=rd]{tools:::Rd_expr_doi("10.1108/S1474-7979(2009)0000020014")}

Dijkstra, T. K., and Henseler, J. (2015). Consistent partial least squares path modeling. MIS quarterly, 39(2), 297-316. \Sexpr[results=rd]{tools:::Rd_expr_doi("10.25300/MISQ/2015/39.2.02")}

Lamberti, G. (2021). Hybrid multigroup partial least squares structural equation modelling: an application to bank employee satisfaction and loyalty. Quality and Quantity, \Sexpr[results=rd]{tools:::Rd_expr_doi("10.1007/s11135-021-01096-9")}

Lamberti, G., Aluja, T. B., and Sanchez, G. (2017). The Pathmox approach for PLS path modeling: Discovering which constructs differentiate segments. Applied Stochastic Models in Business and Industry, 33(6), 674-689. \Sexpr[results=rd]{tools:::Rd_expr_doi("10.1007/s11135-021-01096-9")}

Lamberti, G., Aluja, T. B., and Sanchez, G. (2016). The Pathmox approach for PLS path modeling segmentation. Applied Stochastic Models in Business and Industry, 32(4), 453-468. \Sexpr[results=rd]{tools:::Rd_expr_doi("10.1002/asmb.2168")}

Lamberti, G. (2015). Modeling with Heterogeneity, PhD Dissertation.

Rademaker, M. E., and Schuberth, F. (2020). cSEM: Composite-Based Structural Equation Modeling. Available at https://CRAN.R-project.org/package=cSEM.

Ringle, C.M., Wende, S. and Becker, J.M. (2015). SmartPLS 3. Boenningstedt: SmartPLS. Retrieved from https://www.smartpls.com.

Sanchez, G. (2009). PATHMOX Approach: Segmentation Trees in Partial Least Squares Path Modeling, PhD Dissertation.

Sanchez, G., and Aluja, T. B. (2006). PATHMOX: A PLS-PM Segmentation Algorithm, in Proceedings of the IASC Symposium on Knowledge Extraction by Modelling, International Association for Statistical Computing Island of Capri, Italy 4-6 September.

See Also

print.plstree, summary.plstree, bar_terminal, bar_impvar and plot.plstree

Examples

 ## Not run: 
# Example of PATHMOX approach in customer satisfaction analysis 
# (Spanish financial company).
# Model with 5 LVs (4 common factor: Image (IMAG), Value (VAL), 
# Satisfaction (SAT), and Loyalty (LOY); and 1 composite construct: 
# Quality (QUAL)

# Load library and dataset csibank
library(genpathmx)
data("csibank")

# Define the model using the laavan syntax. Use a set of regression formulas that define 
# first the structural model and then the measurement model

CSImodel <- "
# Structural model
VAL  ~ QUAL
SAT  ~ IMAG  + QUAL + VAL
LOY  ~ IMAG + SAT

# Measurement model
# composite
QUAL <~ qual1 + qual2 + qual3 + qual4 + qual5 + qual6 + qual7 
     
# common factor
IMAG =~ imag1 + imag2 + imag3 + imag4 + imag5 + imag6 
VAL  =~ val1  + val2  + val3  + val4
SAT  =~ sat1  + sat2  + sat3           
LOY  =~ loy1  + loy2  + loy3          

"

# Identify the categorical variable to be used as input variables 
# in the split process
CSIcatvar = csibank[,1:5]

# Check if variables are well specified (they have to be factors 
# and/or ordered factors)
str(CSIcatvar)

# Transform Age and Education into ordered factors
CSIcatvar$Age = factor(CSIcatvar$Age, levels = c("<=25", 
                                     "26-35", "36-45", "46-55", 
                                     "56-65", ">=66"),ordered = T)

CSIcatvar$Education = factor(CSIcatvar$Education, 
                            levels = c("Unfinished","Elementary", "Highschool",
                            "Undergrad", "Graduated"),ordered = T)
       
# Run Pathmox analysis (Lamberti et al., 2016; 2017)
csi.pathmox = pls.pathmox(
 .model = CSImodel ,
 .data  = csibank,
 .catvar= CSIcatvar,
 .alpha = 0.05,
 .deep = 2
)                     
                      
# Visualize results by summary
# summary(csi.pathmox)

# Run pathmox on one single variable
age = csibank[,2]

#' # Transform Age into an ordered factor
age = factor(age, levels = c("<=25", 
                                     "26-35", "36-45", "46-55", 
                                     "56-65", ">=66"),ordered = T)
csi.pathmox.age = pls.pathmox(
 .model = CSImodel ,
 .data  = csibank,
 .catvar= age,
 .alpha = 0.05,
 .deep = 1
)  

# Run hybrid multigroup analysis (Lamberti, 2021) using 
# the cSEM package (Rademaker and Schuberth, 2020)
# Install and load cSEM library
# Install.packages("cSEM")
# library(cSEM)

# Run cSEM Model for Pathmox terminal nodes

csilocalmodel = csem(
 .model = CSImodel,
 .data = csi.pathmox.age$hybrid)

# Check invariance and run MGA analysis (Hair et al., 2019)

testMICOM(csilocalmodel, .R = 60)

to_compare <- "
#' # Structural model
VAL  ~ QUAL
SAT  ~ IMAG  + QUAL + VAL
LOY  ~ IMAG + SAT
"

testMGD(csilocalmodel, .parameters_to_compare = to_compare, 
.R_bootstrap = 60,.approach_mgd = "Henseler")


## End(Not run)


genpathmox documentation built on Oct. 26, 2023, 5:08 p.m.