# sempls: Structural Equation Modeling by Partial Least Squares In semPLS: Structural Equation Modeling Using 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

 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41``` ```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, ...) ## S3 method for class 'sempls' plot(x, ...) ## S3 method for class 'sempls' densityplot(x, data, use=c("fscores", "prediction", "residuals"), ...) pathCoeff(object, ...) ## S3 method for class 'sempls' pathCoeff(object, ...) ## S3 method for class 'pathCoeff' print(x, na.print=".", digits=2, abbreviate=FALSE, ...) totalEffects(object) ## S3 method for class 'sempls' totalEffects(object) ## S3 method for class 'totalEffects' print(x, na.print=".", digits=2, abbreviate=FALSE,...) plsWeights(object) ## S3 method for class 'sempls' plsWeights(object) ## S3 method for class 'plsWeights' print(x, na.print=".", digits=2, abbreviate=FALSE, ...) 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, changing this value to `TRUE` does not affect the results. `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 `"C"`, `"pw"` or `"pathWeighting"` for the path weighting scheme. `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, `?cor`, can be consulted. `method` A `character` naming the method to calculate the correlations. Possible values are: `"pearson"` , the default, `"kendall"`, `"spearman"`. For more details on the method, the R help, `?cor`, can be consulted. Note, that despite of the `method` argument, pearson correlations are always used for the inner approximation (step 2). `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 the measurement model, `"outer"` for the outer loadings and `"cross"` for the cross loadings. `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:

 `coefficients` A `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_coefficient` The `matrix` of path coefficients. `outer_loadings` The `matrix` of outer loadings. `cross_loadings` The `matrix` of cross loadings. `total_effects` The `matrix` of total effects. `inner_weights` The `matrix` of inner weights. `outer_weights` The `matrix` of outer weights. `factor_scores` A `data.frame` containing the estimated factor scores for the LVs. `data` A `data.frame` containing the preprocessed obseravtions of the MVs. `incomplete` The index of the incomplete observations. `...` All the other values are just storing information used in the `call`.

`plsm`, `read.splsm`, `rSquared`, `pathDiagram`, `bootsempls`, `plsm2sem`, `sem`
 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55``` ```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(l, 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. ## Not run: 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) ## End(Not run) ```