| bootstrap | R Documentation |
Function bootstrap_msel
provides bootstrap estimates of the parameters of the model estimated via
the msel function.
Function bootstrap_combine_msel allows to
combine several objects of class 'bootstrap_msel'.
bootstrap_msel(
object,
iter = 100,
opt_type = "optim",
opt_args = NULL,
is_ind = FALSE,
n_sim = 1000,
n_cores = 1
)
bootstrap_combine_msel(...)
object |
an object of class 'msel'. |
iter |
the number of bootstrap iterations. |
opt_type |
the same as |
opt_args |
the same as |
is_ind |
logical; if |
n_sim |
the same as |
n_cores |
the same as |
... |
objects returned by function
|
The function generates iter bootstrap samples and
estimates the parameters \theta of the model by using each of
these samples. Estimate \hat{\theta}^{(b)} from the b-th of
these samples is stored as the b-th row of the numeric matrix
par which is an element of the returned object.
Use update_msel function to
transfer the bootstrap estimates to the object of class 'msel'.
Function bootstrap_msel
returns an object of class "bootstrap_msel".
This object is a list which may contain the following elements:
par - a numeric matrix such that par[b, ] is a vector
of the estimates of the parameters of the model estimated via
msel function on the b-th bootstrap
sample.
iter - the number of the bootstrap iterations.
cov - bootstrap estimate of the covariance matrix which
equals to cov(par).
ind - a numeric matrix such that ind[, b] stores the
indexes of the observations from object$data included into the
b-th bootstrap sample.
Function bootstrap_combine_msel returns the
object which combines several objects returned by the
bootstrap_msel function into a single
object.
# -------------------------------
# Bootstrap for the probit model
# -------------------------------
# ---
# Step 1
# Simulation of data
# ---
# Load required package
library("mnorm")
# Set seed for reproducibility
set.seed(123)
# The number of observations
n <- 100
# Regressors (covariates)
w1 <- runif(n = n, min = -1, max = 1)
w2 <- runif(n = n, min = -1, max = 1)
# Random errors
u <- rnorm(n = n, mean = 0, sd = 1)
# Coefficients
gamma <- c(-1, 2)
# Linear index
li <- gamma[1] * w1 + gamma[2] * w2
# Latent variable
z_star <- li + u
# Cuts
cuts <- c(-1, 0.5, 2)
# Observable ordered outcome
z <- rep(0, n)
z[(z_star > cuts[1]) & (z_star <= cuts[2])] <- 1
z[(z_star > cuts[2]) & (z_star <= cuts[3])] <- 2
z[z_star > cuts[3]] <- 3
table(z)
# Data
data <- data.frame(w1 = w1, w2 = w2, z = z)
# ---
# Step 2
# Estimation of the parameters
# ---
# Estimation
model <- msel(formula = z ~ w1 + w2, data = data)
summary(model)
# ---
# Step 3
# Bootstrap
# ---
# Perform bootstrap
bootstrap <- bootstrap_msel(model)
# Test the hypothesis that H0: gamma[2] = -2gamma[1]
# by using the t-test and with bootstrap p-values
fn_test <- function(object)
{
gamma <- coef(object, eq = 1)
return(gamma[2] + 2 * gamma[1])
}
b <- test_msel(object = model,
fn = fn_test,
test = "t",
method = "bootstrap",
ci = "percentile",
se_type = "bootstrap",
bootstrap = bootstrap)
summary(b)
# Replicate the analysis with the additional 20 bootstrap iterations
bootstrap2 <- bootstrap_msel(model, iter = 20)
bootstrap_new <- bootstrap_combine_msel(bootstrap, bootstrap2)
b2 <- test_msel(object = model,
fn = fn_test,
test = "t",
method = "bootstrap",
ci = "percentile",
se_type = "bootstrap",
bootstrap = bootstrap)
summary(b2)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.