Compute bootstrap confidence intervals for the proportion of explained
variance for the covariance of an incomplete data imputed using
multiple imputation.
For multiple imputation, Multivariate Imputation by Chained Equations
(MICE) from the mice package is used.
mifa_ci_boot(
data,
cov_vars = dplyr::everything(),
n_pc,
conf = 0.95,
n_boot = 1000,
progress = FALSE,
...
)
Arguments
data 
A data frame with missing values coded as NA . 
cov_vars 
Variables in data for which to calculate the covariance
matrix. Supports (tidy selection)dplyr::select() . This allows to
select variables that are used for the imputations of missing values, but not
the calculations of the covariance matrix. This is especially useful when
there are categorical predictors that can improve the imputation of the
response variables, but for which covariance cannot be calculated.
By default, all variables in data are used for both, the imputation and
the covariance matrix. Note: Variables and rows used for the imputation, as
well as the method for imputation can be configured using the ... .
See also mice::mice() . 
n_pc 
Integer or integer vector indicating number of principal
components (eigenvectors) for which explained variance (eigenvalues) should
be obtained and for which confidence intervals should be computed.
Defaults to all principal components, i.e., the number of variables in the
data. 
conf 
Confidence level for constructing confidence intervals. The
default is .95 that is, 95% confidence intervals. 
n_boot 
Number of bootstrap samples to use for bootstrapped confidence
intervals. The default is 1000. 
progress 
Logical. Whether to show progress bars for computation of
bootstrap confidence intervals. Default is FALSE. 
... 
Arguments passed on to mice::mice
m Number of multiple imputations. The default is m=5 .
method Can be either a single string, or a vector of strings with
length length(blocks) , specifying the imputation method to be
used for each column in data. If specified as a single string, the same
method will be used for all blocks. The default imputation method (when no
argument is specified) depends on the measurement level of the target column,
as regulated by the defaultMethod argument. Columns that need
not be imputed have the empty method "" . See details.
predictorMatrix A numeric matrix of length(blocks) rows
and ncol(data) columns, containing 0/1 data specifying
the set of predictors to be used for each target column.
Each row corresponds to a variable block, i.e., a set of variables
to be imputed. A value of 1 means that the column
variable is used as a predictor for the target block (in the rows).
By default, the predictorMatrix is a square matrix of ncol(data)
rows and columns with all 1's, except for the diagonal.
Note: For twolevel imputation models (which have "2l" in their names)
other codes (e.g, 2 or 2 ) are also allowed.
ignore A logical vector of nrow(data) elements indicating
which rows are ignored when creating the imputation model. The default
NULL includes all rows that have an observed value of the variable
to imputed. Rows with ignore set to TRUE do not influence the
parameters of the imputation model, but are still imputed. We may use the
ignore argument to split data into a training set (on which the
imputation model is built) and a test set (that does not influence the
imputation model estimates).
Note: Multivariate imputation methods, like mice.impute.jomoImpute()
or mice.impute.panImpute() , do not honour the ignore argument.
where A data frame or matrix with logicals of the same dimensions
as data indicating where in the data the imputations should be
created. The default, where = is.na(data) , specifies that the
missing data should be imputed. The where argument may be used to
overimpute observed data, or to skip imputations for selected missing values.
blocks List of vectors with variable names per block. List elements
may be named to identify blocks. Variables within a block are
imputed by a multivariate imputation method
(see method argument). By default each variable is placed
into its own block, which is effectively
fully conditional specification (FCS) by univariate models
(variablebyvariable imputation). Only variables whose names appear in
blocks are imputed. The relevant columns in the where
matrix are set to FALSE of variables that are not block members.
A variable may appear in multiple blocks. In that case, it is
effectively reimputed each time that it is visited.
visitSequence A vector of block names of arbitrary length, specifying the
sequence of blocks that are imputed during one iteration of the Gibbs
sampler. A block is a collection of variables. All variables that are
members of the same block are imputed
when the block is visited. A variable that is a member of multiple blocks
is reimputed within the same iteration.
The default visitSequence = "roman" visits the blocks (left to right)
in the order in which they appear in blocks .
One may also use one of the following keywords: "arabic"
(right to left), "monotone" (ordered low to high proportion
of missing data) and "revmonotone" (reverse of monotone).
formulas A named list of formula's, or expressions that
can be converted into formula's by as.formula . List elements
correspond to blocks. The block to which the list element applies is
identified by its name, so list names must correspond to block names.
The formulas argument is an alternative to the
predictorMatrix argument that allows for more flexibility in
specifying imputation models, e.g., for specifying interaction terms.
blots A named list of alist 's that can be used
to pass down arguments to lower level imputation function. The entries
of element blots[[blockname]] are passed down to the function
called for block blockname .
post A vector of strings with length ncol(data) specifying
expressions as strings. Each string is parsed and
executed within the sampler() function to postprocess
imputed values during the iterations.
The default is a vector of empty strings, indicating no postprocessing.
defaultMethod A vector of length 4 containing the default
imputation methods for 1) numeric data, 2) factor data with 2 levels, 3)
factor data with > 2 unordered levels, and 4) factor data with > 2
ordered levels. By default, the method uses
pmm , predictive mean matching (numeric data) logreg , logistic
regression imputation (binary data, factor with 2 levels) polyreg ,
polytomous regression imputation for unordered categorical data (factor > 2
levels) polr , proportional odds model for (ordered, > 2 levels).
maxit A scalar giving the number of iterations. The default is 5.
printFlag If TRUE , mice will print history on console.
Use print=FALSE for silent computation.
seed An integer that is used as argument by the set.seed() for
offsetting the random number generator. Default is to leave the random number
generator alone.
data.init A data frame of the same size and type as data ,
without missing data, used to initialize imputations before the start of the
iterative process. The default NULL implies that starting imputation
are created by a simple random draw from the data. Note that specification of
data.init will start all m Gibbs sampling streams from the same
imputation.

Value
A data frame containing bootstrapped confidence intervals for
variance explained by different number of principal components.
Details
This function uses the Shao and Sitter (1996) method to combine multiple
imputation and bootstrapping. The imputations are done using mice::mice()
.
Normally, this function does not need to be called directly. Instead,
use mifa(..., ci = "boot")
.
References
Shao, J. & Sitter, R. R. (1996). Bootstrap for imputed survey data.
Journal of the American Statistical Association 91.435 (1996): 12781288.
doi: 10.1080/01621459.1996.10476997
See also
Examples
#> n_pc lower upper
#> 1 3 0.4057084 0.4183398
#> 2 4 0.4756646 0.4863418
#> 3 5 0.5341208 0.5461557
#> 4 6 0.5791203 0.5908674
#> 5 7 0.6174867 0.6277668
#> 6 8 0.6531412 0.6629284
# }