Learn R Programming

plspm (version 0.2-2)

rebus.pls: Response Based Unit Segmentation (REBUS) Algorithm - complete -

Description

REBUS-PLS is an iterative algorithm for performing response based clustering in a PLS-PM framework. This function allows to perform all the steps of the REBUS-PLS Algorithm.

Usage

rebus.pls(pls, Y = NULL, stop.crit = 0.005, iter.max = 100)

Arguments

pls
Object of class "plspm" returned by plspm.
Y
Optional dataset (matrix or data frame) used when argument dataset=NULL inside pls.
stop.crit
Number indicating the stop criterion for the iterative algorithm. The author suggests using the threshold of less than 0.05% of units changing class from one iteration to the other as stopping rule.
iter.max
An integer indicating the maximum number of iterations. Default value = 100.

Value

  • An object of class "rebus", basically a list with the following elements:
  • loadingsMatrix of standardized loadings (i.e. correlations with LVs.) for each local model.
  • path.coefsMatrix of path coefficients for each local model.
  • qualityMatrix containing the average communalities, the average redundancies, the R2 values, and the GoF values for each local model.
  • segmentsVector defining for each unit the class membership.
  • origdata.clasThe numeric matrix with original data and with a new column defining class membership of each unit.

Details

REBUS-PLS is an iterative algorithm that starting from the global model allows us to detect local models performing better than the global model. The algorithm is composed by 9 steps: Step 1: The first step of the REBUS-PLS algorithm involves computing the global model on all the observed units, by performing a simple PLS Path Modeling analysis (plspm). Steps 2 and 3: In the second step, the communality and the structural residuals of each unit from the global model are obtained. The number of classes (K) to be taken into account during the successive iterations and the initial composition of the classes are obtained by performing a Hierarchical Cluster Analysis on the computed residuals (both from the measurement and the structural models). Step 4: Choose the number of classes (K) to take into account according to the dendrogram obtained at Step 3. Step 5: Once the number of classes to consider is chosen, the initial composition of the classes are obtained according to results of the Hierarchical Cluster Analysis. Step 6: A PLS Path Modeling analysis is performed on each formed class and K provisional local models are estimated. The group-specific parameters computed at the previous step are used to compute the communality and the structural residuals of each unit from each local model. Step 7: The Closeness Measure (CM) of each unit from each local model is computed. Step 8: Each unit is, therefore, assigned to the closest local model, i.e. to the model from which each unit shows the smallest CM value. Step 9: Once the composition of the classes is updated, K new local models are estimated. Step 5-9 have to be iterate until there is convergence on class composition. The author suggests using the threshold of less than 0.05% of units changing class from one iteration to the other as stopping rule. In addition, a threshold of 6 units per class is fixed. If there is a class with less than 6 units, the algorithm stops. This function allows us to perform in a unique function all the steps of the REBUS-PLS Algorithm. In particular, firstly it computes the communality and structural residuals from the global model and performs a Hierarchical Cluster Analysis on this residuals (by applying res.clus function). Then it shows the obtained dendrogram and asks the user to choose the number of clusters to be take into account.This value need to be an integer value higher than 1. Once the number of classes is chosen, this function performs the iteration steps of the REBUS-PLS Algorithm and directly provides the final class membership for each unit, summary results for the final local models, and the Group Quality Index (GQI) (Trinchera, 2007) ((by applying it.reb function). Once the convergence is achieved you should: (i) Estimate the final local models (ii) Validate the Group Quality Index Both these last two steps can be performed by running local.models. N.B. Once the global model is computed it is possible to obtain the same results as the ones obtained by running rebus.pls function, by running the function res.clus and then the function it.reb. If you want to test REBUS-PLS on several number of classes you need to run it.reb function several times by changing nk. This allows you to avoid computing the residuals each time from the global model.

References

Esposito Vinzi, V., Trinchera, L., Squillacciotti, S., and Tenenhaus, M. (2008) REBUS-PLS: A Response-Based Procedure for detecting Unit Segments in PLS Path Modeling. Applied Stochastic Models in Business and Industry (ASMBI), 24, pp. 439-458. Trinchera, L. (2007) Unobserved Heterogeneity in Structural Equation Models: a new approach to latent class detection in PLS Path Modeling. Ph.D. Thesis, University of Naples "Federico II", Naples, Italy. http://www.fedoa.unina.it/view/people/Trinchera,_Laura.html

See Also

plspm, res.clus, resclus.plot, it.reb, rebus.test, local.models

Examples

Run this code
## example of rebus analysis with simulated data
  data(sim.data)
  ## First compute GLOBAL model
  sim.inner <- matrix(c(0,0,0,0,0,0,1,1,0),3,3,byrow=TRUE)
  dimnames(sim.inner) <- list(c("Price","Quality","Satisfaction"),
                            c("Price","Quality","Satisfaction"))
  sim.outer <- list(c(1,2,3,4,5),c(6,7,8,9,10),c(11,12,13)) 
  sim.mod <- c("A","A","A")  ## reflective indicators
  sim.global <- plspm(sim.data, inner=sim.inner, 
                      outer=sim.outer, modes=sim.mod)
  sim.global
  ## run rebus.pls function on the sim.data and choose the number of classes
  ## to be taken into account according to the displayed dendrogram.
  rebus.sim <- rebus.pls(sim.global, stop.crit = 0.005, iter.max = 100)
  ## You can also compute complete outputs 
  ## for local models by running:
  local.rebus <- local.models(sim.global, rebus.sim)
  ##
  ## ONCE COMPUTED THE GLOBAL MODEL IT IS POSSIBLE TO OBTAIN THE SAME RESULTS AS THE ONES
  ## OBTAINED BY RUNNING rebus.pls FUNCTION BY RUNNING THE FUNCTION res.clus
  ## AND THEN THE FUNCTION it.reb.
  ##
  ## Example:
  ## Once the global model is calculated you need to perform cluster analysis on residuals of the global model:
  sim.res.clus <- res.clus(sim.global)
  ## and then run the iteration algorithm:
  rebus.sim.twofunc <- it.reb(sim.global, sim.res.clus, nk=2, 
                     stop.crit=0.005, iter.max=100)
  ##
  ## rebus.sim = rebus.sim.twofunc

Run the code above in your browser using DataLab