Compute summaries of the risks associated with a change in a single variable in Z
from a single level (quantile) to a second level (quantile), for the other variables in Z
fixed to a specific level (quantile)
Arguments
- fit
An object containing the results returned by a the
kmbayes
function- y
a vector of outcome data of length
n
.- Z
an
n
-by-M
matrix of predictor variables to be included in theh
function. Each row represents an observation and each column represents an predictor.- X
an
n
-by-K
matrix of covariate data where each row represents an observation and each column represents a covariate. Should not contain an intercept column.- which.z
vector indicating which variables (columns of
Z
) for which the summary should be computed- qs.diff
vector indicating the two quantiles
q_1
andq_2
at which to computeh(z_{q2}) - h(z_{q1})
- q.fixed
vector of quantiles at which to fix the remaining predictors in
Z
- method
method for obtaining posterior summaries at a vector of new points. Options are "approx" and "exact"; defaults to "approx", which is faster particularly for large datasets; see details
- sel
logical expression indicating samples to keep; defaults to keeping the second half of all samples
- z.names
optional vector of names for the columns of
z
- ...
other arguments to pass on to the prediction function
Value
a data frame containing the (posterior mean) estimate and posterior standard deviation of the single-predictor risk measures
Details
If
method == "approx"
, the argumentsel
defaults to the second half of the MCMC iterations.If
method == "exact"
, the argumentsel
defaults to keeping every 10 iterations after dropping the first 50% of samples, or if this results in fewer than 100 iterations, than 100 iterations are kept
For guided examples and additional information, go to https://jenfb.github.io/bkmr/overview.html
Examples
## First generate dataset
set.seed(111)
dat <- SimData(n = 50, M = 4)
y <- dat$y
Z <- dat$Z
X <- dat$X
## Fit model with component-wise variable selection
## Using only 100 iterations to make example run quickly
## Typically should use a large number of iterations for inference
set.seed(111)
fitkm <- kmbayes(y = y, Z = Z, X = X, iter = 100, verbose = FALSE, varsel = TRUE)
#> Iteration: 10 (10% completed; 0.00491 secs elapsed)
#> Iteration: 20 (20% completed; 0.01013 secs elapsed)
#> Iteration: 30 (30% completed; 0.01525 secs elapsed)
#> Iteration: 40 (40% completed; 0.0204 secs elapsed)
#> Iteration: 50 (50% completed; 0.02549 secs elapsed)
#> Iteration: 60 (60% completed; 0.03105 secs elapsed)
#> Iteration: 70 (70% completed; 0.03649 secs elapsed)
#> Iteration: 80 (80% completed; 0.04181 secs elapsed)
#> Iteration: 90 (90% completed; 0.04747 secs elapsed)
#> Iteration: 100 (100% completed; 0.06038 secs elapsed)
risks.singvar <- SingVarRiskSummaries(fit = fitkm, method = "exact")