Skip to contents

Plot univariate predictor-response function on a new grid of points

Usage

PredictorResponseUnivar(
  fit,
  y = NULL,
  Z = NULL,
  X = NULL,
  which.z = 1:ncol(Z),
  method = "approx",
  ngrid = 50,
  q.fixed = 0.5,
  sel = NULL,
  min.plot.dist = Inf,
  center = TRUE,
  z.names = colnames(Z),
  ...
)

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 the h 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 identifying which predictors (columns of Z) should be plotted

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

ngrid

number of grid points to cover the range of each predictor (column in Z)

q.fixed

vector of quantiles at which to fix the remaining predictors in Z

sel

logical expression indicating samples to keep; defaults to keeping the second half of all samples

min.plot.dist

specifies a minimum distance that a new grid point needs to be from an observed data point in order to compute the prediction; points further than this will not be computed

center

flag for whether to scale the exposure-response function to have mean zero

z.names

optional vector of names for the columns of z

...

other arguments to pass on to the prediction function

Value

a long data frame with the predictor name, predictor value, posterior mean estimate, and posterior standard deviation

Details

For guided examples, 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.00472 secs elapsed)
#> Iteration: 20 (20% completed; 0.01061 secs elapsed)
#> Iteration: 30 (30% completed; 0.01592 secs elapsed)
#> Iteration: 40 (40% completed; 0.02107 secs elapsed)
#> Iteration: 50 (50% completed; 0.02621 secs elapsed)
#> Iteration: 60 (60% completed; 0.03136 secs elapsed)
#> Iteration: 70 (70% completed; 0.03656 secs elapsed)
#> Iteration: 80 (80% completed; 0.04177 secs elapsed)
#> Iteration: 90 (90% completed; 0.04692 secs elapsed)
#> Iteration: 100 (100% completed; 0.05259 secs elapsed)
pred.resp.univar <- PredictorResponseUnivar(fit = fitkm)