qi_builder {coreSim} | R Documentation |
Find quantities of interest from generalized linear models
Description
Find quantities of interest from generalized linear models
Usage
qi_builder(obj, newdata, FUN, ci = 0.95, nsim = 1000, slim = FALSE,
large_computation = FALSE, original_order = FALSE, b_sims, mu, Sigma,
verbose = TRUE, ...)
Arguments
obj |
a fitted model object from which to base coefficient simulations on. |
newdata |
an optional data frame of fitted values with column names
corresponding to coefficient names in |
FUN |
a function for calculating how to find the quantity of interest
from a vector of the fitted linear systematic component. It must return
a numeric vector. If |
ci |
the proportion of the central interval of the simulations to
return. Must be in (0, 1] or equivalently (0, 100]. Note: if |
nsim |
number of simulations to draw. |
slim |
logical indicating whether to (if |
large_computation |
logical. If |
original_order |
logical whether or not to keep the original scenario
order when |
b_sims |
an optional data frame created by |
mu |
an optional vector giving the means of the variables. If |
Sigma |
an optional positive-definite symmetric matrix specifying the
covariance matrix of the variables. If |
verbose |
logical. Whether to include full set of messages or not. |
... |
arguments to passed to |
Value
If slimmer = FALSE
a data frame of fitted values supplied in
newdata
and associated simulated quantities of interest for all
simulations in the central interval specified by ci
. The quantities
of interest are in a column named qi_
.
If slimmer = TRUE
a data frame of fitted values supplied in
newdata
and the minimum, median, and maximum values of the central
interval specified by ci
for each scenario are returned in three
columns named qi_min
, qi_median
, and qi_max
,
respectively.
Examples
library(car)
## Normal linear model
m1 <- lm(prestige ~ education + type, data = Prestige)
# Using observed data as scenarios
linear_qi_obs <- qi_builder(m1)
# Create fitted values
fitted_df_1 <- expand.grid(education = 6:16, typewc = 1)
linear_qi <- qi_builder(m1, newdata = fitted_df_1)
# Manually supply coefficient means and covariance matrix
coefs <- coef(m1)
vcov_matrix <- vcov(m1)
linear_qi_custom_mu_Sigma <- qi_builder(mu = coefs, Sigma = vcov_matrix,
newdata = fitted_df_1)
## Logistic regression
# Load data
data(Admission)
Admission$rank <- as.factor(Admission$rank)
# Estimate model
m2 <- glm(admit ~ gre + gpa + rank, data = Admission, family = 'binomial')
# Specify fitted values
m2_fitted <- expand.grid(gre = seq(220, 800, by = 10), gpa = c(2, 4),
rank = '4')
# Function to find predicted probabilities from logistic regression models
pr_function <- function(x) 1 / (1 + exp(-x))
# Find quantity of interest
logistic_qi_1 <- qi_builder(m2, m2_fitted, FUN = pr_function)
logistic_qi_2 <- qi_builder(m2, m2_fitted, FUN = pr_function,
slim = TRUE)