Learn R Programming

matrixpls (version 0.4.0)

inner.GSCA: GSCA inner estimation

Description

This implements the first step of the GSCA estimation describe by Hwang & Takane (2004). GSCA inner estimation should be used only with GSCA outer estimation.

Usage

inner.GSCA(S, W, inner.mod, ...)

Arguments

S
Covariance matrix of the data.
W
Weight matrix, where the indicators are on colums and composites are on the rows.
inner.mod
A square matrix specifying the relationships of the composites in the model.
...
Other parameters are ignored

Value

  • A matrix of unscaled inner weights E with the same dimesions as inner.mod.

Details

The first step of GSCA estimation method, as describe by Hwang & Takane (2004), involves estimating all model regressions, including also the relationships from composites toward indicators in the first step.

The implementation of GSCA in matrixpls differs from the Hwang & Takane (2004) version in that during the first step, only regressions between composites are estimated. The reason for this is that the relationhips from the composites to indicators are simple regressions that are simply the covariances between the indicators and compositess. Since these covariances need to be calculated in the second step, it is more efficient to not calculate them during the first step.

This algorithm is therefore identical to the PLS path weighting scheme with the exception that correlations are not used for inverse relationships and there is no falling back to identity scheme for composites that are not connected to other composites.

References

Hwang, H., & Takane, Y. (2004). Generalized structured component analysis. Psychometrika, 69(1), 81–99. doi:10.1007/BF02295841

See Also

Other inner estimators: inner.centroid; inner.factor; inner.identity; inner.path

Examples

Run this code
# Run the example from plspm package using GSCA estimation

if(require(plspm)) {
  
  # Run the customer satisfaction examle form plspm
  
  # load dataset satisfaction
  data(satisfaction)
  # inner model matrix
  IMAG = c(0,0,0,0,0,0)
  EXPE = c(1,0,0,0,0,0)
  QUAL = c(0,1,0,0,0,0)
  VAL = c(0,1,1,0,0,0)
  SAT = c(1,1,1,1,0,0)
  LOY = c(1,0,0,0,1,0)
  inner = rbind(IMAG, EXPE, QUAL, VAL, SAT, LOY)
  colnames(inner) <- rownames(inner)
  
  # Reflective model
  list(1:5, 6:10, 11:15, 16:19, 20:23, 24:27)
  
  reflective<- matrix(
    c(1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1),
    27,6, dimnames = list(colnames(satisfaction)[1:27],colnames(inner)))
  
  # empty formative model
  
  formative <- matrix(0, 6, 27, dimnames = list(colnames(inner), colnames(satisfaction)[1:27]))
  
  # Estimation using covariance matrix and the GSCA estimators
  
  print(matrixpls(cov(satisfaction[,1:27]),  model = list(inner = inner,
                                                    reflective = reflective,
                                                    formative = formative),
            outerEstimators = outer.GSCA,
            innerEstimator = inner.GSCA))
  
} else{
  print("This example requires the plspm package")
}

Run the code above in your browser using DataLab