Learn R Programming

semPLS (version 1.0-6)

sempls: Structural Equation Modeling by Partial Least Squares

Description

sempls fits structural equation models by the patial least squares (PLS) method. The estimation is based on the raw data and requires no distributional assumptions.

Usage

sempls(model, ...)

## S3 method for class 'plsm': sempls(model, data, maxit=20, tol=1e-7, scaled=TRUE, sum1=FALSE, wscheme="centroid", pairwise=FALSE, method=c("pearson", "kendall", "spearman"), convCrit=c("relative", "square"), verbose=TRUE, ...)

## S3 method for class 'sempls': print(x, digits=2, \ldots) ## S3 method for class 'sempls': plot(x, \ldots) ## S3 method for class 'sempls': densityplot(x, data, use=c("fscores", "prediction", "residuals"), ...)

pathCoeff(object, ...) ## S3 method for class 'sempls': pathCoeff(object, \ldots) ## S3 method for class 'pathCoeff': print(x, na.print=".", digits=2, abbreviate=FALSE, \ldots)

totalEffects(object) ## S3 method for class 'sempls': totalEffects(object) ## S3 method for class 'totalEffects': print(x, na.print=".", digits=2, abbreviate=FALSE,\ldots)

plsWeights(object) ## S3 method for class 'sempls': plsWeights(object) ## S3 method for class 'plsWeights': print(x, na.print=".", digits=2, abbreviate=FALSE, \ldots)

plsLoadings(object) ## S3 method for class 'sempls': plsLoadings(object) ## S3 method for class 'plsLoadings': print(x, type=c("discriminant", "outer", "cross"), cutoff=NULL, reldiff=0.2, na.print=".", digits=2, abbreviate=FALSE, ...)

Arguments

model
An object inheriting from class plsm as returned from plsm or read.splsm.
...
Arguments to be passed down.
data
A data.frame containing the observed variables (MVs). The storage mode for all the MVs included in the model must be numeric.
maxit
A numeric value, which determines the maximum number of iterations performed by the PLS algorithm. The default is $20$ iterations.
tol
A numeric value, specifying the tolerance for the maximum relative differences in the outer weights. The default value is $10^{-7}$.
scaled
A logical value indicating, whether the observed data shall be scaled to zero mean and unit variance. The default is TRUE.
sum1
A logical value indicating, whether the outer weights foreach latent variable (LV) shall be standardized to sum up to one. The default is FALSE. Since the factor scores are scaled in each step of the PLS algorithm, ch
wscheme
A character naming the weighting scheme to use. Possible values are:
  • "A"or"centroid"for the centroid scheme, the default,
  • "B"or"factorial"for the factorial scheme and
pairwise
A logical value indicating, whether correlations shall be calculated pairwise. If the observed data does not contain missing values, the results are not affected. The default is FALSE. For more details the R help,
method
A character naming the method to calculate the correlations. Possible values are:
  • "pearson", the default,
  • "kendall",
  • "spearman".
For more details on the met
convCrit
The convergence criteria to use:
  • "relative", the default,
  • "square".
verbose
Logical: If FALSE no status messages are printed.
object
An object of class sempls.
x
An object of the according class.
type
If the argument what="loadings", type describes the loadings to be extracted -- those are:
  • "discriminant", the default, contrasts outer against cross loadings to check for discrimant validity of
cutoff
A numerical value at which to cutoff the loadings -- this means loadings smaller than the cutoff value will not be printed.
reldiff
The argument is only effectiv when type="discriminant". It is a numeric value, specifying the relative difference between outer and cross loadings at which cross loadings will still be printed.
na.print
A character substituting values not to be printed.
digits
minimal number of _significant_ digits, see print.default.
use
The values for which the density plots are created. If
  • "fscores": the factor scores are used,
  • "prediction": the estimated factor scores are used,
  • "residuals": the residuals are used.
  • <
abbreviate
A logical indicating whether dimnames should be abbreviated. For Details see abbreviate. The default is FALSE.

Value

  • sempls returns an object of class sempls, with the following elements:
  • coefficientsA data.frame containing the estimates for all the arcs in the path model, those are the outer loadings for mode A type LVs and outer weights for mode B type LVs and path coefficients for those belonging to the structural model.
  • path_coefficientThe matrix of path coefficients.
  • outer_loadingsThe matrix of outer loadings.
  • cross_loadingsThe matrix of cross loadings.
  • total_effectsThe matrix of total effects.
  • inner_weightsThe matrix of inner weights.
  • outer_weightsThe matrix of outer weights.
  • factor_scoresA data.frame containing the estimated factor scores for the LVs.
  • dataA data.frame containing the preprocessed obseravtions of the MVs.
  • incompleteThe index of the incomplete observations.
  • ...All the other values are just storing information used in the call.

See Also

plsm, read.splsm, rSquared, pathDiagram, bootsempls, plsm2sem, sem

Examples

Run this code
data(ECSImobi)
ecsi <- sempls(model=ECSImobi, data=mobi, wscheme="pathWeighting")
ecsi

## create plots
densityplot(ecsi)
densityplot(ecsi, use="prediction")
densityplot(ecsi, use="residuals")

## Values of 'sempls' objects
names(ecsi)
ecsi$outer_weights
ecsi$outer_loadings
ecsi$path_coefficients
ecsi$total_effects


### using convenience methods to sempls results
## path coefficients
pathCoeff(ecsi)

## total effects
totalEffects(ecsi)

## get loadings and check for discriminant validity
(l <- plsLoadings(ecsi))
# outer loadings
print(l, type="outer", digits=2)
# outer loadings greater than 0.5
print(l,type="outer", cutoff=0.5, digits=2)
# cross loadings greater than 0.5
print(ecsi, type="cross", cutoff=0.5, digits=2)


### R-squared
rSquared(ecsi)


### Create .dot representation of the path diagram and
### create .pdf file if graphviz is available.
pathDiagram(ecsi, file="ecsiPLS1", edge.labels="both",
            output.type="graphics", digits=3, graphics.fmt = "pdf")

# include R-squared values
pathDiagram(ecsi, file="ecsiPLS2", edge.labels="both",
            output.type="graphics", digits=3, graphics.fmt = "pdf",
            rSquared=rSquared(ecsi))

# only the structural model
pathDiagram(ecsi, file="ecsiPLS3", edge.labels="both",
            output.type="graphics", digits=3, graphics.fmt = "pdf",
            rSquared=rSquared(ecsi), full=FALSE)

Run the code above in your browser using DataLab