estimator: Parameter estimation of a model matrix

Description Usage Arguments Details Value Functions Author(s) References Examples

Description

Estimates the parameters of a model matrix (inner, reflective, or formative).

Usage

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
estimator.ols(S, modelMatrix, W, ..., C = NULL, IC = NULL, n = NULL)

estimator.tsls(S, modelMatrix, W, ..., C)

estimator.plscLoadings(S, modelMatrix, W, ...)

estimator.efaLoadings(S, modelMatrix, W, ..., fm = "minres")

estimator.cfaLoadings(S, modelMatrix, W, ...)

estimator.plsreg(S, modelMatrix, W, ..., C)

Arguments

S

Covariance matrix of the data.

modelMatrix

A model matrix with dependent variables on rows, independent variables on colums, and non-zero elements indicating relationships. Can be either inner, reflective, or formative matrix.

W

Weight matrix, where the indicators are on colums and composites are on the rows.

...

All other arguments are either ignored or passed through to third party estimation functions.

C

Correlation matrix of the composites.

IC

Correlation matrix of the composites and indicators.

n

sample size, used for calculating standard errors.

fm

factoring method for estimating the factor loadings. Passed through to fa.

Details

Parameter estimation functions estimate the parameters of a model matrix (inner, reflective, or formative). These functions can be used as parametersInner, parametersReflective, and parametersFormative arguments for parameterEstim.separate.

When two-stage least squares regression is applied with estimator.tsls, all exogenous variables are used as instrumental variables. There is currently no check of whether the number of instrumental variables is sufficient for estimation.

estimator.plscLoadings estimates the loadings by scaling the weights W with the correction factor c presented by Dijkstra (2011). This produces a MINRES estimator, which constraints the loadings to be proportional to the weights. The PLSc code is loosely based on code contributed by Wenjing Huang and developed with the guidance by Theo Dijkstra.

estimator.plscLoadings estimates loadings with an unconstrained single factor model, which requires at least three indicators per block. The loadings of single indicator factors are estimated as 1 and two indicator factors as estimated by the square root of the indicator correlation.

Providing C or IC allows for using disattenuated or otherwise adjusted correlation matrices. If not provided, these matrices are calculated using S and W.

A part of the code for estimator.plsreg is adopted from the plspm package, licensed under GPL3.

Value

A matrix with estimated parameters or a list of two matrices containing estimates and standard errors.

Functions

Author(s)

Mikko Rönkkö, Wenjing Huang, Theo Dijkstra

Mikko Rönkkö, Gaston Sanchez, Laura Trinchera, Giorgio Russolillo

References

Huang, W. (2013). PLSe: Efficient Estimators and Tests for Partial Least Squares (Doctoral dissertation). University of California, Los Angeles.

Dijkstra, T. K. (2011). Consistent Partial Least Squares estimators for linear and polynomial factor models. A report of a belated, serious and not even unsuccessful attempt. Comments are invited. Retrieved from http://www.rug.nl/staff/t.k.dijkstra/consistent-pls-estimators.pdf

Sanchez, G. (2013). PLS Path Modeling with R. Retrieved from http://www.gastonsanchez.com/PLS Path Modeling with R.pdf

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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
# Run the education example from the book

# Sanchez, G. (2013) PLS Path Modeling with R
# Trowchez Editions. Berkeley, 2013. 
# http://www.gastonsanchez.com/PLS Path Modeling with R.pdf

education <- read.csv("http://www.gastonsanchez.com/education.csv")

Support <- c(0, 0, 0, 0, 0, 0)
Advising <- c(0, 0, 0, 0, 0, 0)
Tutoring <- c(0, 0, 0, 0, 0, 0)
Value <- c(1, 1, 1, 0, 0, 0)
# Omit two paths (compared to the model in the book) to achieve 
# identification of the 2SLS analysis
Satisfaction <- c(0, 0, 1, 1, 0, 0)
Loyalty <- c(0, 0, 0, 0, 1, 0)

inner <- rbind(Support, Advising, Tutoring, Value, Satisfaction, Loyalty)


reflective <- diag(6)[c(rep(1,4),
                        rep(2,4),
                        rep(3,4),
                        rep(4,4),
                        rep(5,3),
                        rep(6,4)),]
formative <- matrix(0, 6, 23)

colnames(inner) <- colnames(reflective) <- rownames(formative) <- rownames(inner)
rownames(reflective) <- colnames(formative) <- colnames(education)[2:24]

education.model <- list(inner = inner,
              reflective = reflective,
              formative = formative)

# Reverse code two variables
education[,c("sup.under","loy.asha")] <- - education[,c("sup.under","loy.asha")]

S <- cor(education[,2:24])

# PLSc with OLS regression

education.out <- matrixpls(S,education.model,
                      disattenuate = TRUE,
                      parametersReflective = estimator.plscLoadings)

# PLSc with 2SLS regresssion

education.out2 <- matrixpls(S,education.model,
                      disattenuate = TRUE,
                      parametersReflective = estimator.plscLoadings,
                      parametersInner = estimator.tsls)


# Disattenuated regression with unit-weighted scales and exploratory factor analysis
# reliability estimates (with unconstrained MINRES estimator)

education.out3 <- matrixpls(S,education.model,
                       disattenuate = TRUE,
                       weightFun = weightFun.fixed,
                       parametersReflective = estimator.efaLoadings)

# Disattenuated GSCA with 2SLS regression after disattenuated based on 
# confirmatory factor analysis reliability estimates


education.out4 <- matrixpls(S,education.model,
                       disattenuate = TRUE,
                       innerEstim = innerEstim.gsca,
                       outerEstim = outerEstim.gsca,
                       parametersInner = estimator.tsls,
                       parametersReflective = estimator.cfaLoadings)


# Compare the results

cbind(PLSc = education.out, PLSc_2sls = education.out2, 
      DR = education.out3, GSCAc = education.out4)

# Compare the reliability estimates

cbind(PLSc = attr(education.out,"Q"), PLSc_2sls = attr(education.out2,"Q"), 
      DR = attr(education.out3,"Q"), GSCAc = attr(education.out4,"Q"))

matrixpls documentation built on April 28, 2021, 5:07 p.m.