rebus.pls(pls, stop.crit = 0.005, iter.max = 100)
"plspm"
returned by plspm
."rebus"
, basically a list with the following elements: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 dendograme obtained
at Step 3.
Step 5: Once the number of classes to consider is choosen, 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 dendograme and ask to the user to choose the number of cluster
to be take into account.This value need to be an integer value higher than 1.
Once the number of classes to consider is choosen, 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 compute 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
.
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 not compute each time residuals from the
global model.plspm
, res.clus
, it.reb
, rebus.test
, local.models
## example of rebus analysis with simulated data
data(sim.data)
## First compute GLOBAL model
sim.mat <- matrix(c(0,0,0,0,0,0,1,1,0),3,3,byrow=TRUE)
dimnames(sim.mat) <- list(c("Price","Quality","Satisfaction"),
c("Price","Quality","Satisfaction"))
sim.sets <- 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, sim.mat, sim.sets, 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 compute the global model you need to compute 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