Helper function for PPI++ quantile estimation
Usage
ppi_plusplus_quantile(
Y_l,
f_l,
f_u,
q,
alpha = 0.05,
exact_grid = FALSE,
w_l = NULL,
w_u = NULL
)
Arguments
- Y_l
(vector): n-vector of labeled outcomes.
- f_l
(vector): n-vector of predictions in the labeled data.
- f_u
(vector): N-vector of predictions in the unlabeled data.
- q
(float): Quantile to estimate. Must be in the range (0, 1).
- alpha
(scalar): type I error rate for hypothesis testing - values in (0, 1); defaults to 0.05.
- exact_grid
(bool, optional): Whether to compute the exact solution (TRUE) or an approximate solution based on a linearly spaced grid of 5000 values (FALSE).
- w_l
(ndarray, optional): Sample weights for the labeled data set. Defaults to a vector of ones.
- w_u
(ndarray, optional): Sample weights for the unlabeled data set. Defaults to a vector of ones.
Details
PPI++: Efficient Prediction Powered Inference (Angelopoulos et al., 2023) https://arxiv.org/abs/2311.01453
Examples
dat <- simdat(model = "quantile")
form <- Y - f ~ X1
Y_l <- dat[dat$set == "labeled", all.vars(form)[1]] |> matrix(ncol = 1)
f_l <- dat[dat$set == "labeled", all.vars(form)[2]] |> matrix(ncol = 1)
f_u <- dat[dat$set == "unlabeled", all.vars(form)[2]] |> matrix(ncol = 1)
ppi_plusplus_quantile(Y_l, f_l, f_u, q = 0.5)
#> [1] 0.7490598 1.2481513