Encoding: | UTF-8 |
Title: | Model Implied Instrumental Variable (MIIV) Estimation of Structural Equation Models |
Version: | 0.5.8 |
Description: | Functions for estimating structural equation models using instrumental variables. |
URL: | https://github.com/zackfisher/MIIVsem |
BugReports: | https://github.com/zackfisher/MIIVsem/issues |
Depends: | R (≥ 2.10) |
Imports: | stats, utils, lavaan, numDeriv, Matrix, car, boot |
License: | GPL-2 |
LazyData: | true |
ByteCompile: | true |
RoxygenNote: | 7.1.1 |
NeedsCompilation: | no |
Packaged: | 2021-07-11 17:30:26 UTC; lola |
Author: | Zachary Fisher [aut, cre], Kenneth Bollen [aut], Kathleen Gates [aut], Mikko Rönkkö [aut] |
Maintainer: | Zachary Fisher <fish.zachary@gmail.com> |
Repository: | CRAN |
Date/Publication: | 2021-07-13 12:30:02 UTC |
Model Implied Instrumental Variable Estimation of Structural Equation Models
Description
MIIVsem is a package for estimating structural equation models using model-implied instrumental variables (MIIVs).
Author(s)
Maintainer: Zachary Fisher fish.zachary@gmail.com
Authors:
Kenneth Bollen
Kathleen Gates
Mikko Rönkkö
See Also
Useful links:
Industrialization-Democracy Data
Description
A dataset from Bollen (1989) containing measures of political democracy and industrialization for 75 developing countries in 1960 and 1965. The variables are as follows:
Usage
bollen1989a
Format
A data frame with 75 rows and 9 variables
Details
y1. freedom of the press, 1960
y2. freedom of political opposition, 1960
y3. fairness of elections, 1960
y4. effectiveness of elected legislature, 1960
y5. freedom of the press, 1965
y6. freedom of political opposition, 1965
y7. fairness of elections, 1965
y8. effectiveness of elected legislature, 1965
x1. natural log of GNP per capita, 1960
x2. natural log of energy consumption per capita, 1960
x3. arcsin of square root of percentage of labor force in industry, 1960
References
Bollen, K. A. (1989). Structural equation models. New York: Wiley-Interscience.
Examples
## Not run:
model <- '
Eta1 =~ y1 + y2 + y3 + y4
Eta2 =~ y5 + y6 + y7 + y8
Xi1 =~ x1 + x2 + x3
Eta1 ~ Xi1
Eta2 ~ Xi1
Eta2 ~ Eta1
y1 ~~ y5
y2 ~~ y4
y2 ~~ y6
y3 ~~ y7
y4 ~~ y8
y6 ~~ y8 devtools::build_win()
'
## End(Not run)
Union sentiment data
Description
A dataset from McDonald and Clelland (1984) reanalyzed by Bollen (1989) containing data on union sentiment of southern nonunion textile workers.
Usage
bollen1989b
Format
A data frame with 173 rows and 5 variables
Details
deferenc. deference (submissiveness) to managers
laboract. support for labor activism
unionsen. sentiment towards unions
yrsmill. log of years spent in textile mill
age. centered age
References
Bollen, K. A. 1989. Structural Equations with Latent Variables. New York: Wiley
McDonald, A, J., & Clelland, D. A. (1984). Textile Workers and Union Sentiment. Social Forces, 63(2), 502–521.
Examples
## Not run:
model <- '
unionsen ~ deferenc + laboract + yrsmill
deferenc ~ age
laboract ~ age + deferenc
yrsmill ~~ age
'
## End(Not run)
Subjective class data
Description
The following data is from Bollen (1989) using data from Kluegel et al. (1977). These data include measures of actual income (inc) and occupational prestige (occ), measures of respondents' subjective assessments of income (subinc), occupational prestige (subocc), and overall SES status (subgen).
Usage
bollen1989c
Format
A data frame with 432 rows and 5 variables
Details
occ. actual occupational prestige
inc. actual income
subocc. respondents' subjective assessments of prestige
subinc. respondents' subjective assessments of income
subgen. respondents' subjective assessments of SES status
References
Bollen, K. A. 1989. Structural Equations with Latent Variables. New York: Wiley
Kluegel, J. R., Singleton, R., & Starnes, C. E. (1977). Subjective Class Identification: A Multiple Indicator Approach. American Sociological Review, 42(4), 599–611.
Examples
## Not run:
model <- '
subinc ~ inc + subocc
subocc ~ occ + subinc
subgen ~ subinc + subocc
subinc ~~ subocc + subgen
subocc ~~ subgen
inc ~~ occ
'
## End(Not run)
Perceived accessibility data
Description
Data come from a survey that was conducted in rural clusters of Tanzania in 1993. The goal was to collect information on the perceived accessibility of a specific family planning facility that serviced each cluster. Six informants were chosen: 3 female and 3 male. New informants were chosen for each cluster. Each informant was independently asked to rate the accessibility of the facility, and how easy it was to get to the facility. More specifically the women informants were asked to rate how women of childbearing age perceived the accessibility and easiness and men were asked to rate how accessible and easy men perceived access to the clinic to be. Higher values indicate greater accessibility and ease of travel. The female informants' ratings are 1 to 3 and the male informants' ratings are 4 to 6.
Usage
bollen1996
Format
A data frame with 220 rows and 12 variables
Details
access1.
access2.
access3.
access4.
access5.
access6.
easy1.
easy2.
easy3.
easy4.
easy5.
easy6.
References
Bollen, K. A., Speizer, I. S., & Mroz, T. A. (1996). Family Planning Facilities in Rural Tanzania: His and Her Perceptions of Time and Distance.
Examples
## Not run:
model <- '
femaleAccess =~ access1 + access2 + access3
maleAccess =~ access4 + access5 + access6
femaleEasy =~ easy1 + easy2 + easy3
maleEasy =~ easy4 + easy5 + easy6
'
## End(Not run)
build the missing data model syntax
Description
build the missing data model syntax
Usage
buildMissingSyntax(pt)
build the restriction matrix
Description
Function returns a list r
with information regarding
coefficient restrictions and estimation. The field R
contains a restriction matrix for imposing cross-coefficient
restrictions. If no cross-coefficient restrictions are present
R
is set to NULL
. The vector q
contains
a vector of lagrangean multipliers. The vector constrained
gives the constrained coefficients in convenient form.
Usage
buildRestrictMat(d)
Arguments
d |
A list containing equation information. |
build the sum of squares and cross products matrix
Description
Build sum of squares and crossproducts matrix (SSCP). From the means, covariances, and n's you can recover the raw sum-of-squares and products matrix for all the variables. Say the matrix of all the variables is X, with mean vector bar(x), and covariance matrix S, based on sample-size n. Then the SSCP matrix is X'X = (n - 1)S + n bar(x) bar(x)'. You then need to add the row/column for the constant, which is just n in the 1, 1 position and n bar(x) elsewhere.
Usage
buildSSCP(sample.cov, sample.mean, sample.nobs)
Arguments
sample.cov |
Numeric matrix. A sample variance-covariance matrix. The rownames and colnames must contain the observed variable names. |
sample.mean |
A sample mean vector. |
sample.nobs |
Number of observations in the full data frame. |
build the variance covariance point estimates model syntax
Description
build the variance covariance point estimates model syntax
Usage
buildVarCovSyntax(pt)
identify best scaling indicator
Description
identify best scaling indicator
Usage
chooseSI(model, data, scaling, lag = FALSE)
estimate the 2SLS point estimates
Description
estimate the 2SLS point estimates
Usage
est2SLSCoef(d = d, r = NULL, poly.mat = NULL, sscp.mat = NULL)
estimate the 2SLS coefficient covariance matrix
Description
estimate the 2SLS coefficient covariance matrix
Usage
est2SLSCoefCov(
d,
poly.mat = NULL,
cov.mat = NULL,
mean.vec = NULL,
acov = NULL,
acov.sat = NULL,
r = NULL
)
estimate the 2SLS equation specific sigma squared
Description
estimate the 2SLS equation specific sigma squared
Usage
est2SLSSigmaSq(d, cov.mat)
Calculate the residual covariance matrix
Description
Calculate the residual covariance matrix
Usage
estResidualCov(d, sample.cov)
estimate the SEs using two-stage ML
Description
estimate the SEs using two-stage ML
Usage
estTwoStageML(g, v, eqns, pt)
estimate the variance and covariance parameters
Description
estimate the variance and covariance parameters
Usage
estVarCovarCoef(
data,
g,
eqns,
pt,
ordered,
vc.coef.estimator = "ML",
vc.coef.missing = "FIML"
)
return a dataframe of parameter estimates for a fitted model.
Description
return a dataframe of parameter estimates for a fitted model.
Usage
estimatesTable(x, v = NULL, sarg = FALSE)
Arguments
x |
An object of class miive |
v |
A list containing variance snd covariance parameter information. |
sarg |
Logical. Should Sargan test results be included. |
provides factor scores for miiv model
Description
provides factor scores for miiv model
Usage
factorScores(model, data, lv_scores, lv_estimator)
Attractiveness and academic ability
Description
This data comes from a study by Felson and Borhnstedt (1979) of perceived attractiveness and academic ability in teenagers, sixth through ninth grade. The six variables are perception of academic ability (academic), perception of physical attractiveness (attract), grade point average (gpa), height, weight, and a strangers' rating of attractiveness (rating).
Usage
felson1979
Format
A data frame with 209 rows and 7 variables
Details
acad.
athl.
attract.
gpa.
height.
weight.
rating.
References
Felson, R.B. & Bohrnstedt, G.W. (1979). "Are the good beautiful or the beautiful good?" The relationship between children's perceptions of ability and perceptions of physical attractiveness. Social Psychology Quarterly, 42, 386–392.
Examples
## Not run:
model <- '
acad ~ gpa + attract
attract ~ height + weight + rating + acad
'
## End(Not run)
fill the parameter table
Description
fill the parameter table
Usage
fillParTable(eqns, pt, v = NULL)
provides model lists for latent variable gimme
Description
provides model lists for latent variable gimme
Usage
getModelList(
data,
model,
scaling = "first.indicator",
lag = FALSE,
dfm = FALSE
)
Model-implied instrumental variable (MIIV) estimation
Description
Estimate structural equation models using model-implied instrumental variables (MIIVs).
Usage
miive(
model = model,
data = NULL,
instruments = NULL,
sample.cov = NULL,
sample.mean = NULL,
sample.nobs = NULL,
sample.cov.rescale = TRUE,
estimator = "2SLS",
se = "standard",
bootstrap = 1000L,
boot.ci = "norm",
missing = "listwise",
est.only = FALSE,
var.cov = FALSE,
miiv.check = TRUE,
ordered = NULL,
sarg.adjust = "none",
overid.degree = NULL,
overid.method = "stepwise.R2"
)
Arguments
model |
A model specified using lavaan model syntax or a
|
data |
A data frame, list or environment or an object coercible
by |
instruments |
This allows user to specify the instruments for
each equation. See Details and the |
sample.cov |
Numeric matrix. A sample variance-covariance matrix. The rownames and colnames attributes must contain all the observed variable names indicated in the model syntax. |
sample.mean |
A sample mean vector. If |
sample.nobs |
Number of observations in the full data frame. |
sample.cov.rescale |
If |
estimator |
Options |
se |
If "standard", asymptotic standard errors are
computed. If |
bootstrap |
Number of bootstrap draws, if bootstrapping is used. The
default is |
boot.ci |
Method for calculating bootstrap confidence intervals.
Options are normal approximation ( |
missing |
Default is |
est.only |
If |
var.cov |
If |
miiv.check |
Default is |
ordered |
A vector of variable names to be treated as ordered factors
in generating the polychoric correlation matrix and subsequent PIV
estimates. See details on |
sarg.adjust |
Adjusment methods used to adjust the p-values associated
with the Sargan test due to multiple comparisons. Defaults is
|
overid.degree |
A numeric value indicating the degree of overidentification to be used in estimation. |
overid.method |
The method by which excess MIIVs should
be pruned to satisfy the |
Details
model
The following model syntax operators are currently supported: =~, ~, ~~ and *. See below for details on default behavior, descriptions of how to specify the scaling indicator in latent variable models, and how to impose equality constraints on the parameter estimates.
Example using Syntax Operators
In the model below, 'L1 =~ Z1 + Z2 + Z3' indicates the latent variable L1 is measured by 3 indicators, Z1, Z2, and Z3. Likewise, L2 is measured by 3 indicators, Z4, Z5, and Z6. The statement 'L1 ~ L2' specifies latent variable L1 is regressed on latent variable L2. 'Z1 ~~ Z2' indicates the error of Z2 is allowed to covary with the error of Z3. The label LA3 appended to Z3 and Z6 in the measurement model constrains the factor loadings for Z3 and Z6 to equality. For additional details on constraints see Equality Constraints and Parameter Restrictions.
model <- ' L1 =~ Z1 + Z2 + LA3*Z3 L2 =~ Z4 + Z5 + LA3*Z6 L1 ~ L2 Z2 ~~ Z3 '
Scaling Indicators
Following the lavaan model syntax, latent variables are defined using the =~ operator. For first order factors, the scaling indicator chosen is the first observed variable on the RHS of an equation. For the model below
Z1
would be chosen as the scaling indicator forL1
andZ4
would be chosen as the scaling indicator forL2
.model <- ' L1 =~ Z1 + Z2 + Z3 L2 =~ Z4 + Z5 + Z6 '
Equality Constraints and Parameter Restrictions
Within- and across-equation equality constraints on the factor loading and regression coefficients can be imposed directly in the model syntax. To specify equality constraints between different parameters equivalent labels should be prepended to the variable name using the * operator. For example, we could constrain the factor loadings for the two non-scaling indicators of
L1
to equality using the following model syntax.model <- ' L1 =~ Z1 + LA2*Z2 + LA2*Z3 L2 =~ Z4 + Z5 + Z6 '
Researchers also can constrain the factor loading and regression coefficients to specific numeric values in a similar fashion. Below we constrain the regression coefficient of
L1
onL2
to1
.model <- ' L1 =~ Z1 + Z2 + Z3 L2 =~ Z4 + Z5 + Z6 L3 =~ Z7 + Z8 + Z9 L1 ~ 1*L2 + L3 '
Higher-order Factor Models
For example, in the model below, the scaling indicator for the higher-order factor
H1
is taken to beZ1
, the scaling indicator that would have been assigned to the first lower-order factorL1
. The intercepts for lower-order latent variables are set to zero, by defaultmodel <- ' H1 =~ L1 + L2 + L3 L1 =~ Z1 + Z2 + Z3 L2 =~ Z4 + Z5 + Z6 L3 =~ Z7 + Z8 + Z9 '
Model Defaults
In addition to those relationships specified in the model syntax MIIVsem will automatically include the intercepts of any observed or latent endogenous variable. The intercepts for any scaling indicators and lower-order latent variables are set to zero by default. Covariances among exogenous latent and observed variables are included when
var.cov = TRUE
. Where appropriate the covariances of the errors of latent and observed dependent variables are automatically included in the model specification. These defaults correspond to those used by lavaan andauto = TRUE
, except that endogenous latent variable intercepts are estimated by default, and the intercepts of scaling indicators are fixed to zero.Invalid Specifications
Certain model specifications are not currently supported. For example, the scaling indicator of a latent variable is not permitted to cross-load on another latent variable. In the model below
Z1
, the scaling indicator for L1, cross-loads on the latent variableL2
. Executing a search on the model below will result in the warning: miivs: scaling indicators with a factor complexity greater than 1 are not currently supported.model <- ' L1 =~ Z1 + Z2 + Z3 L2 =~ Z4 + Z5 + Z6 + Z1 '
In addition, MIIVsem does not currently support relations where the scaling indicator of a latent variable is also the dependent variable in a regression equation. The model below would not be valid under the current algorithm.
model <- ' L1 =~ Z1 + Z2 + Z3 Z1 ~ Z4 Z4 ~ Z5 + Z6 '
instruments
To utilize this option you must first define a list of instruments using the syntax displayed below. Here, the dependent variable for each equation is listed on the LHS of the ~ operator. In the case of latent variable equations, the dependent variable is the scaling indicator associated with that variable. The instruments are then given on the RHS, separated by + signs. The instrument syntax is then encloses in single quotes. For example,
customIVs <- ' y1 ~ z1 + z2 + z3 y2 ~ z4 + z5 '
After this list is defined, set the
instruments
argument equal to the name of the list of instruments (e.g.customIVs
). Note, thatinstruments
are specified for an equation, and not for a specific endogenous variable. If only a subset of dependent variables are listed in the instruments argument, only those equations listed will be estimated. If external or auxiliary instruments (instruments not otherwise included in the model) are included themiiv.check
argument should be set toFALSE
.sample.cov
The user may provide a sample covariance matrix in lieu of raw data. The rownames and colnames must contain the observed variable names indicated in the model syntax. If
sample.cov
is notNULL
the user must also supply a vector of sample means (sample.mean
), and the number of sample observations (sample.nobs
) from which the means and covariances were calculated. If no vector of sample means is provided intercepts will not be estimated. MIIVsem does not support bootstrap standard errors or polychoric instrumental variable estimtation when the sample moments, rather than raw data, are used as input.sample.mean
A vector of length corresponding to the row and column dimensions of the
sample.cov
matrix. The names ofsample.mean
must match those in thesample.cov
. If the user supplies a covariance matrix but no vector of sample means intercepts will not be estimated.sample.cov.rescale
Default is
TRUE
. If the sample covariance matrix provided by the user should be internally rescaled by multiplying it with a factor (N-1)/N.estimator
The default estimator is
2SLS
. For equations with continuous variables only and no restrictions the estimates are identical to those described in Bollen (1996, 2001). If restrictions are present a restricted MIIV-2SLS estimator is implemented using methods similar to those described by Greene (2003) but adapted for moment based estimation. 2SLS coefficients and overidentifcation tests are constructed using the sample moments for increased computational efficiency.If an equation contains ordered categorical variables, declared in the
ordered
argument, the PIV estimator described by Bollen and Maydeu-Olivares (2007) is implemented. The PIV estimator does not currently support exogenous observed predictors of endogenous categorical variables. See details of theordered
argument for more information about the PIV estimator.se
Whense
is set to"boot"
or"bootstrap"
standard errors are computed using a nonparametric bootstrap assuming an independent random sample. Ifvar.cov = TRUE
nonceonvergence may occur and any datasets with impproper solutions will be recorded as such and discarded. Bootstrapping is implemented using the boot by resampling the observations indata
and refitting the model with the resampled data. The number of bootstrap replications is set using thebootstrap
argument, the default is1000
. Here, the standard errors are based on the standard deviation of successful bootstrap replications. Note, the Sargan test statistic is calculated from the original sample and is not a bootstrap-based estimate. Whense
is set to"standard"
standard errors for the MIIV-2SLS coefficients are calculated using analytic expressions. For equations with categorical endogenous variables, the asymptotic distribution of the coefficients is obtained via a first order expansion where the matrix of partial derivatives is evaluated at the sample polychoric correlations. For some details on these standard errors see Bollen & Maydeu-Olivares (2007, p. 315). Ifvar.cov = TRUE
only point estimates for the variance and covariance estimates are calculated. To obtain standard errors for the variance and covariance parameters we recommend settingse = "bootstrap"
. Analytic standard errors for the variance covariance parameters accounting for the first stage estimation have been derived and will be available in future releases.missing
There are two ways to handle missing data in MIIVsem. First, missing data may be handled by listwise deletion (missing = "listwise"
), In this case any row of data containing missing observation is excluded from the analysis and the sample moments are adjusted accordingly. Estimation then proceeds normally. The second option for handling missing data is through a two-stage proceduresmissing = "twostage"
where consistent estimates of the saturated populations means and covariance are obtained in the first stage. These quantities are often referred to as the "EM means" and "EM covariance matrix." In the second stage the saturated estimates are used to calculate the MIIV-2SLS structural coefficients. Bootstrap standard errors are recommended but will be computationally burdensome due to the cost of calculating the EM-based moments at each bootstrap replication.ordered
For equations containing ordered categorical variables MIIV-2SLS coefficients are estimated using the approach outlined in Bollen & Maydeu-Olivares (2007). The asymptotic distribution of the these coefficients is obtained via a first order expansion where the matrix of partial derivatives is evaluated at the sample polychoric correlations. For some details on these standard errors see Bollen & Maydeu-Olivares (2007, p. 315). Ifvar.cov = TRUE
only point estimates for the variance and covariance estimates are calculated using theDWLS
estimator in lavaan. To obtain standard errors for the variance and covariance parameters we recommend the bootstrap approach. Analytic standard errors for the variance covariance parameters in the presence of endogenous categorical variables will be available in future releases. Currently MIIVsem does not support exogenous variables in equations with categorical endogenous variables.
Sargan's Test of Overidentification
An essential ingredient in the MIIV-2SLS approach is the application of
overidentification tests when a given model specification leads to an excess
of instruments. Empirically, overidentification tests are used to evalulate
the assumption of orthogonality between the instruments and equation
residuals. Rejection of the null hypothesis implies a deficit in the logic
leading to the instrument selection. In the context of MIIV-2SLS this is the
model specification itself. By default, MIIVsem provides Sargan's
overidentification test (Sargan, 1958) for each overidentified equation in
the system. When cross-equation restrictions or missing data are present the
properties of the test are not known. When the system contains many equations
the sarg.adjust
option provides methods to adjust the p-values
associated with the Sargan test due to multiple comparisons. Defaults is
none
. For other options see p.adjust
.
References
Bollen, K. A. (1996). An Alternative 2SLS Estimator for Latent Variable Models. Psychometrika, 61, 109-121.
Bollen, K. A. (2001). Two-stage Least Squares and Latent Variable Models: Simultaneous Estimation and Robustness to Misspecifications. In R. Cudeck, S. Du Toit, and D. Sorbom (Eds.), Structural Equation Modeling: Present and Future, A Festschrift in Honor of Karl Joreskog (pp. 119-138). Lincoln, IL: Scientific Software.
Bollen, K. A., & Maydeu-Olivares, A. (2007). A Polychoric Instrumental Variable (PIV) Estimator for Structural Equation Models with Categorical Variables. Psychometrika, 72(3), 309.
Freedman, D. (1984). On Bootstrapping Two-Stage Least-Squares Estimates in Stationary Linear Models. The Annals of Statistics, 12(3), 827–842.
Greene, W. H. (2000). Econometric analysis. Upper Saddle River, N.J: Prentice Hall.
Hayashi, F. (2000). Econometrics. Princeton, NJ: Princeton University Press
Sargan, J. D. (1958). The Estimation of Economic Relationships using Instrumental Variables. Econometrica, 26(3), 393–415.
Savalei, V. (2010). Expected versus Observed Information in SEM with Incomplete Normal and Nonnormal Data. Psychological Methods, 15(4), 352–367.
Savalei, V., & Falk, C. F. (2014). Robust Two-Stage Approach Outperforms Robust Full Information Maximum Likelihood With Incomplete Nonnormal Data. Structural Equation Modeling: A Multidisciplinary Journal, 21(2), 280–302.
See Also
MIIVsemmiivs
two-stage least square estimator for a system of equations
Description
two-stage least square estimator for a system of equations
Usage
miive.2sls(d, g, r, est.only, se, missing, var.cov, sarg.adjust = "none")
Arguments
d |
a list containing equation information |
g |
a list containing data matrices and characteristics |
r |
a list containing coefficient restrictions |
est.only |
should we only calculate coefficient estimates |
se |
se estimation |
Model-implied instrumental variable (MIIV) search
Description
A key step in the MIIV-2SLS approach is to transform the SEM by replacing the latent variables with their scaling indicators minus their errors. Upon substitution the SEM is transformed from a model with latent variables to one containing observed variables with composite errors. The miivs function automatically makes this transformation. The miivs function will also identify equation-specific model-implied instrumental variables in simultaneous equation models without latent variables.
Usage
miivs(model)
Arguments
model |
A model specified using lavaan model syntax. See the
|
Details
model
A model specified using the model syntax employed by lavaan. The following model syntax operators are currently supported: =~, ~, ~~ and *. See below for details on default behaviors, how to specify the scaling indicator in latent variable models, and how to impose equality constraints on the parameter estimates.
Example using Syntax Operators
In the model below, 'L1 =~ Z1 + Z2 + Z3' indicates the latent variable L1 is measured by 3 indicators, Z1, Z2, and Z3. Likewise, L2 is measured by 3 indicators, Z4, Z5, and Z6. The statement 'L1 ~ L2' specifies latent variable L1 is regressed on latent variable L2. 'Z1 ~~ Z2' indicates the error of Z2 is allowed to covary with the error of Z3. The label LA3 appended to Z3 and Z6 in the measurement model equations constrains the factor loadings for Z3 and Z6 to equality. For additional details on constraints see Equality Constraints and Parameter Restrictions.
model <- ' L1 =~ Z1 + Z2 + LA3*Z3 L2 =~ Z4 + Z5 + LA3*Z6 L1 ~ L2 Z2 ~~ Z3 '
Scaling Indicators
Following the lavaan model syntax, latent variables are defined using the
=~
operator. For first order factors, the scaling indicator chosen is the first observed variable on the RHS of an equation. For the model belowZ1
would be chosen as the scaling indicator forL1
andZ4
would be chosen as the scaling indicator forL2
.model <- ' L1 =~ Z1 + Z2 + Z3 L2 =~ Z4 + Z5 + Z6 '
Equality Constraints and Parameter Restrictions
Within- and across-equation equality constraints on the factor loading and regression coefficients can be imposed directly in the model syntax. To specify equality constraints between different parameters equivalent labels should be prepended to the variable name using the * operator. For example, we could constrain the factor loadings for two non-scaling indicators of latent factor
L1
to equality using the following model syntax.model <- ' L1 =~ Z1 + LA2*Z2 + LA2*Z3 L2 =~ Z4 + Z5 + Z6 '
Researchers can also constrain the factor loadings and regression coefficients to specific numeric values in a similar fashion. Below we constrain the regression coefficient of
L1
onL2
to1
.model <- ' L1 =~ Z1 + Z2 + Z3 L2 =~ Z4 + Z5 + Z6 L3 =~ Z7 + Z8 + Z9 L1 ~ 1*L2 + L3 '
Higher-order Factor Models
For example, in the model below, the scaling indicator for the higher-order factor
H1
is taken to beZ1
, the scaling indicator that would have been assigned to the first lower-order factorL1
. The intercepts for lower-order latent variables are set to zero, by defaultmodel <- ' H1 =~ L1 + L2 + L3 L1 =~ Z1 + Z2 + Z3 L2 =~ Z4 + Z5 + Z6 L3 =~ Z7 + Z8 + Z9 '
Model Defaults
In addition to those relationships specified in the model syntax MIIVsem will automatically include the intercepts of any observed or latent endogenous variable. The intercepts for any scaling indicators and lower-order latent variables are set to zero. Covariances among exogenous latent and observed variables are included by default when
var.cov = TRUE
. Where appropriate the covariances of the errors of latent and observed dependent variables are also automatically included in the model specification. These defaults correspond to those used by lavaan andauto = TRUE
, except that endogenous latent variable intercepts are estimated by default, and the intercepts of scaling indicators are fixed to zero.Invalid Specifications
Certain model specifications are not currently supported. For example, the scaling indicator of a latent variable is not permitted to cross-load on another latent variable. In the model below
Z1
, the scaling indicator for L1, cross-loads on the latent variableL2
. Executing a search on the model below will result in the warning: miivs: scaling indicators with a factor complexity greater than 1 are not currently supported.model <- ' L1 =~ Z1 + Z2 + Z3 L2 =~ Z4 + Z5 + Z6 + Z1 '
In addition, MIIVsem does not currently support relations where the scaling indicator of a latent variable is also the dependent variable in a regression equation. For example, the model below would not be valid under the current algorithm.
model <- ' L1 =~ Z1 + Z2 + Z3 Z1 ~ Z4 Z4 ~ Z5 + Z6 '
The miivs
function displays a table containing the following
information for each equation in the system:
-
LHS
The "dependent" variable. -
RHS
The right hand side variables of the transformed equation. -
MIIVs
The model-implied instrumental variables for each equation.
Value
A list of model equations.
References
Bollen, K. A. (1996). An Alternative 2SLS Estimator for Latent Variable Models. Psychometrika, 61, 109-121.
Bentler, P. M., and Weeks, D. G. (1980). Linear Structural Equations with Latent Variables. Psychometrika, 45, 289–308.
See Also
Parse user-implied instrumental variables
Description
Parse user-implied instrumental variables
Usage
parseInstrumentSyntax(d, instruments, miiv.check)
Print method for a MIIV estimation object
Description
Print method for a MIIV estimation object
Usage
## S3 method for class 'miive'
print(x, ...)
Arguments
x |
a miive object |
... |
Optional arguments to print, not used by user. |
Print method for a MIIV search object
Description
Print method for a MIIV search object
Usage
## S3 method for class 'miivs'
print(x, ...)
Arguments
x |
a miivs object |
... |
Optional arguments to print, not used by user. |
Process data.
Description
Process data.
Usage
processData(
data = data,
sample.cov = sample.cov,
sample.mean = sample.mean,
sample.nobs = sample.nobs,
ordered = ordered,
missing = missing,
se = se,
pt = pt
)
Prune MIIVs based on some specified criterion.
Description
Prune MIIVs based on some specified criterion.
Usage
pruneExcessMIIVs(
d,
overid.degree,
overid.method,
data = NULL,
sample.cov = NULL,
sample.polychoric = NULL,
sample.mean = NULL,
sample.nobs = NULL,
overid.boot = FALSE,
cat.vars = NULL
)
Reisenzein data
Description
This dataset comes from Reisenzein (1986). In this paper Reisenzein designed a randomized experiment to test Weiner's attribution-affect model of helping behavior. According to this theory, whether people help others is determined by their anger or sympathy. Anger and sympathy are affected by perceived controllability. If the individuals have gotten into difficult situations as a result of their own controllable actions, then this negatively affects sympathy and positively affects anger of the potential helpers. The opposite holds if the situation seems beyond the individuals’ control. This data comes from an experiment that describes a person collapsing and lying on the floor of a subway. Subjects were told that the person was either drunk (controllable situation) or ill (uncontrollable situation). This randomized story was intended to affect perceptions of controllability, and controllability in turn affected feelings of sympathy and anger. Finally, sympathy should positively affect helping behavior while anger would negatively affect helping.
Usage
reisenzein1986
Format
A data frame with 138 rows and 13 variables
Details
Z1. Eliciting Situation
Z2. How controllable, do you think, is the cause of the person's present condition? (1 = not at all under personal control, 9 = completely under personal control).
Z3. How responsible, do you think, is that person for his present condition? (1 = not at all responsible, 9 = very much responsible).
Z4. I would think that it was the person's own fault that he is in the present situation. (1 = no. not at all. 9 = yes, absolutely so).
Z5. How much sympathy would you feel for that person? (1 = none at all. 9 = very much).
Z6. I would feel pity for this person. (1 = none at all, 9 = very much).
Z7. How much concern would you feel for this person? (1 = none al all, 9 = very much).
Z8. How angry would you feel at that person? (1 = not at all, 9 = very much).
Z9. How irritated would you feel by that person? (1 = not at all, 9 = very much).
Z10. I would feel aggravated by that person. (1 = not at all, 9 = very much so).
Z11. How likely is it that you would help that person? (1 = definitely would not help. 9 = definitely would help).
Z12. How certain would you feel that you would help the person? (1 = not at all certain. 9 = absolutely certain).
Z13. Which of the following actions would you most likely engage in? 1 = not help at all; 2 = try to alert other bystanders, but stay uninvolved myself; 3 = try to inform the conductor or another official in charge; 4 = go over and help the person to a seat; 5 = help in any way that might be necessary, including if necessary first aid and/or accompanying the person to a hospital.
References
Reisenzein, R. (1986). A Structural Equation Analysis of Weiner's Attribution-Affect Model of Helping Behavior. Journal of Personality and Social Psychology, 50(6), 1123–33.
Summary information for a MIIV estimation object
Description
Summary information for a MIIV estimation object
Usage
## S3 method for class 'miive'
summary(object, eq.info = FALSE, restrict.tests = FALSE, rsquare = FALSE, ...)
Arguments
object |
An object of class |
eq.info |
A logical indicating whether equation-specific information should be printed. Useful in models with large numbers of variables. |
restrict.tests |
A logical indicating whether two test statistics for a large-sample wald test of linaer hypotheses imposed on the MIIV-2SLS coefficient matrix should be provided. The first statistic is an approximate F and the second is Chi-square. Assumptions and additional details for each test are given by Greene (2000, p. 346-347) and Henningsen and Hamman (2007). |
rsquare |
A logical indicating whether R-square values for
endogeneous variables are included in the output. Only
available when |
... |
Optional arguments to summary, not used by user. |
References
Greene, W. H. (2000). Econometric analysis. Upper Saddle River, N.J: Prentice Hall.
Henningsen, A., and Hamann, J.D. (2007). systemfit: A Package for Estimating Systems of Simultaneous Equations in R. Journal of Statistical Software 23(4), 1-40.
Summary information for a MIIV search object
Description
Summary information for a MIIV search object
Usage
## S3 method for class 'miivs'
summary(object, miivs.out = FALSE, eq.info = FALSE, ...)
Arguments
object |
An object of class |
miivs.out |
A logical indicating whether the model-implied
instrumental variables found for |
eq.info |
A logical indicating whether equation-specific information should be printed. Useful in models with a large number of variables. |
... |
Optional arguments to summary, not used by user. |