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

 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.

See Also

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

Examples

 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)