varcov {psychonetrics} | R Documentation |
Variance-covariance family of psychonetrics models
Description
This is the family of models that models only a variance-covariance matrix with mean structure. The type
argument can be used to define what model is used: type = "cov"
(default) models a variance-covariance matrix directly, type = "chol"
(alias: cholesky()
) models a Cholesky decomposition, type = "prec"
(alias: precision()
) models a precision matrix, type = "ggm"
(alias: ggm()
) models a Gaussian graphical model (Epskamp, Rhemtulla and Borsboom, 2017), and type = "cor"
(alias: corr()
) models a correlation matrix.
Usage
varcov(data, type = c("cov", "chol", "prec", "ggm", "cor"),
sigma = "full", kappa = "full", omega = "full",
lowertri = "full", delta = "diag", rho = "full", SD =
"full", mu, tau, vars, ordered = character(0), groups,
covs, means, nobs, missing = "listwise", equal =
"none", baseline_saturated = TRUE, estimator =
"default", optimizer, storedata = FALSE, WLS.W,
sampleStats, meanstructure, corinput, verbose = FALSE,
covtype = c("choose", "ML", "UB"), standardize =
c("none", "z", "quantile"), fullFIML = FALSE,
bootstrap = FALSE, boot_sub, boot_resample)
cholesky(...)
precision(...)
prec(...)
ggm(...)
corr(...)
Arguments
data |
A data frame encoding the data used in the analysis. Can be missing if |
type |
The type of model used. See description. |
sigma |
Only used when |
kappa |
Only used when |
omega |
Only used when |
lowertri |
Only used when |
delta |
Only used when |
rho |
Only used when |
SD |
Only used when |
mu |
Optional vector encoding the mean structure. Set elements to 0 to indicate fixed to zero constrains, 1 to indicate free means, and higher integers to indicate equality constrains. For multiple groups, this argument can be a list or array with each element/column encoding such a vector. |
tau |
Optional list encoding the thresholds per variable. |
vars |
An optional character vector encoding the variables used in the analyis. Must equal names of the dataset in |
groups |
An optional string indicating the name of the group variable in |
covs |
A sample variance–covariance matrix, or a list/array of such matrices for multiple groups. Make sure |
means |
A vector of sample means, or a list/matrix containing such vectors for multiple groups. |
nobs |
The number of observations used in |
covtype |
If 'covs' is used, this is the type of covariance (maximum likelihood or unbiased) the input covariance matrix represents. Set to |
missing |
How should missingness be handled in computing the sample covariances and number of observations when |
equal |
A character vector indicating which matrices should be constrained equal across groups. |
baseline_saturated |
A logical indicating if the baseline and saturated model should be included. Mostly used internally and NOT Recommended to be used manually. |
estimator |
The estimator to be used. Currently implemented are |
optimizer |
The optimizer to be used. Can be one of |
storedata |
Logical, should the raw data be stored? Needed for bootstrapping (see |
standardize |
Which standardization method should be used? |
WLS.W |
Optional WLS weights matrix. |
sampleStats |
An optional sample statistics object. Mostly used internally. |
verbose |
Logical, should progress be printed to the console? |
ordered |
A vector with strings indicating the variables that are ordered catagorical, or set to |
meanstructure |
Logical, should the meanstructure be modeled explicitly? |
corinput |
Logical, is the input a correlation matrix? |
fullFIML |
Logical, should row-wise FIML be used? Not recommended! |
bootstrap |
Should the data be bootstrapped? If |
boot_sub |
Proportion of cases to be subsampled ( |
boot_resample |
Logical, should the bootstrap be with replacement ( |
... |
Arguments sent to |
Details
The model used in this family is:
\mathrm{var}(\boldsymbol{y} ) = \boldsymbol{\Sigma}
\mathcal{E}( \boldsymbol{y} ) = \boldsymbol{\mu}
in which the covariance matrix can further be modeled in three ways. With type = "chol"
as Cholesky decomposition:
\boldsymbol{\Sigma} = \boldsymbol{L}\boldsymbol{L}
,
with type = "prec"
as Precision matrix:
\boldsymbol{\Sigma} = \boldsymbol{K}^{-1}
,
and finally with type = "ggm"
as Gaussian graphical model:
\boldsymbol{\Sigma} = \boldsymbol{\Delta}(\boldsymbol{I} - \boldsymbol{\Omega})^(-1) \boldsymbol{\Delta}
.
Value
An object of the class psychonetrics
Author(s)
Sacha Epskamp
References
Epskamp, S., Rhemtulla, M., & Borsboom, D. (2017). Generalized network psychometrics: Combining network and latent variable models. Psychometrika, 82(4), 904-927.
See Also
Examples
# Load bfi data from psych package:
library("psychTools")
data(bfi)
# Also load dplyr for the pipe operator:
library("dplyr")
# Let's take the agreeableness items, and gender:
ConsData <- bfi %>%
select(A1:A5, gender) %>%
na.omit # Let's remove missingness (otherwise use Estimator = "FIML)
# Define variables:
vars <- names(ConsData)[1:5]
# Saturated estimation:
mod_saturated <- ggm(ConsData, vars = vars)
# Run the model:
mod_saturated <- mod_saturated %>% runmodel
# We can look at the parameters:
mod_saturated %>% parameters
# Labels:
labels <- c(
"indifferent to the feelings of others",
"inquire about others' well-being",
"comfort others",
"love children",
"make people feel at ease")
# Plot CIs:
CIplot(mod_saturated, "omega", labels = labels, labelstart = 0.2)
# We can also fit an empty network:
mod0 <- ggm(ConsData, vars = vars, omega = "zero")
# Run the model:
mod0 <- mod0 %>% runmodel
# We can look at the modification indices:
mod0 %>% MIs
# To automatically add along modification indices, we can use stepup:
mod1 <- mod0 %>% stepup
# Let's also prune all non-significant edges to finish:
mod1 <- mod1 %>% prune
# Look at the fit:
mod1 %>% fit
# Compare to original (baseline) model:
compare(baseline = mod0, adjusted = mod1)
# We can also look at the parameters:
mod1 %>% parameters
# Or obtain the network as follows:
getmatrix(mod1, "omega")