bootSem | R Documentation |
Bootstraps a structural equation model in an sem
object (as returned by
the sem
function).
bootSem(model, ...)
## S3 method for class 'sem'
bootSem(model, R=100, Cov=cov, data=model$data,
max.failures=10, show.progress=TRUE, ...)
## S3 method for class 'msem'
bootSem(model, R=100, Cov=cov, data=model$data,
max.failures=10, show.progress=TRUE, ...)
## S3 method for class 'bootsem'
print(x, digits=getOption("digits"), ...)
## S3 method for class 'bootsem'
summary(object,
type=c("perc", "bca", "norm", "basic", "none"), level=0.95, ...)
model |
an |
R |
the number of bootstrap replications; the default is 100, which should be enough for computing standard errors, but not confidence intervals (except for the normal-theory intervals). |
Cov |
a function to compute the input covariance or moment matrix; the default is
|
data |
in the case of a |
max.failures |
maximum number of consecutive convergence failures before |
show.progress |
display a text progress bar on the console tracing the bootstrap replications. |
x , object |
an object of class |
digits |
controls the number of digits to print. |
type |
type of bootstrapped confidence intervals to compute; the
default is |
level |
level for confidence intervals; default is |
... |
in |
bootSem
implements the nonparametric bootstrap, assuming an
independent random sample. Convergence failures in the bootstrap resamples
are discarded (and a warning printed); more than max.failures
consecutive convergence failures (default, 10)
result in an error. You can use the boot
function
in the boot package for more complex sampling schemes and additional options.
Bootstrapping is implemented by resampling the observations in
data
, recalculating the input covariance matrix with Cov
,
and refitting the model with sem
, using the
parameter estimates from the original sample as start-values.
Warning: the bootstrapping process can be very time-consuming.
bootSem
returns an object of class bootsem
, which inherits
from class boot
, supported by the boot package. The returned
object contains the following components:
t0 |
the estimated parameters in the model fit to the original data set. |
t |
a matrix containing the bootstrapped estimates, one bootstrap replication per row. |
data |
the data to which the model was fit. |
seed |
the value of |
statistic |
the function used to produce the bootstrap replications;
this is always the local function |
sim |
always set to |
stype |
always set to |
call |
the call of the |
weights |
a vector of length equal to the number of observations |
strata |
a vector of length |
John Fox jfox@mcmaster.ca
Davison, A. C., and Hinkley, D. V. (1997) Bootstrap Methods and their Application. Cambridge.
Efron, B., and Tibshirani, R. J. (1993) An Introduction to the Bootstrap. Chapman and Hall.
boot
, sem
## Not run: # because of long execution time
# A simple confirmatory factor-analysis model using polychoric correlations.
# The polycor package is required for the hetcor function.
if (require(polycor)){
# The following function returns correlations computed by hetcor,
# and is used for the bootstrapping.
hcor <- function(data) hetcor(data, std.err=FALSE)$correlations
model.cnes <- specifyModel(text="
F -> MBSA2, lam1
F -> MBSA7, lam2
F -> MBSA8, lam3
F -> MBSA9, lam4
F <-> F, NA, 1
MBSA2 <-> MBSA2, the1
MBSA7 <-> MBSA7, the2
MBSA8 <-> MBSA8, the3
MBSA9 <-> MBSA9, the4
")
R.cnes <- hcor(CNES)
sem.cnes <- sem(model.cnes, R.cnes, N=1529)
summary(sem.cnes)
}
# Note: this can take a minute:
set.seed(12345) # for reproducibility
system.time(boot.cnes <- bootSem(sem.cnes, R=100, Cov=hcor, data=CNES))
summary(boot.cnes, type="norm")
# cf., standard errors to those computed by summary(sem.cnes)
## End(Not run)
## Not run: # because of long execution time
# An example bootstrapping a multi-group model
mod.hs <- cfa(text="
spatial: visual, cubes, paper, flags
verbal: general, paragrap, sentence, wordc, wordm
memory: wordr, numberr, figurer, object, numberf, figurew
math: deduct, numeric, problemr, series, arithmet
")
mod.mg <- multigroupModel(mod.hs, groups=c("Female", "Male"))
sem.mg <- sem(mod.mg, data=HS.data, group="Gender",
formula = ~ visual + cubes + paper + flags +
general + paragrap + sentence + wordc + wordm +
wordr + numberr + figurer + object + numberf + figurew +
deduct + numeric + problemr + series + arithmet
)
# Note: this example can take several minutes or more;
# you can decrease R if you just want to see how it works:
set.seed(12345) # for reproducibility
system.time(boot.mg <- bootSem(sem.mg, R=100))
summary(boot.mg, type="norm")
# cf., standard errors to those computed by summary(sem.mg)
## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.