knitr::opts_chunk$set( collapse = TRUE, comment = "#>", dev = "ragg_png", dpi = 192, fig.width = 7, fig.height = 4.5, out.width = "90%", fig.align = "center", warning = FALSE, message = FALSE )
The complete workflow is illustrated as follows. This article focuses on the
package's prediction models, including three nuisance models PSPred(),
PrinPred() and OutPred().
data -> Mapping() -> DataCheck() -> DataStandard()
-> prediction / diagnostic / analysis functions
library(PDRobust) data("BiSample", package = "PDRobust") map <- Mapping( id = "id", time = "time", treatment = "A", survival = "S", outcome = "Y", baseline_time = 0, cutoff_time = 2, covariates = c("X1", "X2", "X3", "X4", "X5","X6"), interest_vars = c("X1", "X2"), y_type = "B" ) pd_data <- DataStandard(BiSample, map)
head(pd_data)
ps_fo <- A ~ X1 + X3 + X4 + X5 + X6 prin_fo <- S ~ (X1 + X3 + X4 + X5 + X6 ) * A out_fo <- Y ~ (X1 + X3 + X4 + X5 + X6) * A
PSPred() returns a numeric vector of propensity score estimation, which is
defined as the conditional probability of receiving treatment given the
specified covariates. The argument ps_fo specified the propensity score model
formula. The argument fit_dat provides the dataset to fit the mode, whereas
pred_dat is for propensity score predictions. The argument mapping is the
original mapping object at the beginning of the workflow and supplies the
relevant structural variable definitions.
The logistic model is fitted only on baseline observations, then used to predict
every row of pred_dat. Additional arguments supplied through ... are
forwarded to the underlying glm() call, allowing users to customize the
model-fitting procedure.
ps <- PSPred( ps_fo = ps_fo, fit_dat = pd_data, pred_dat = pd_data, mapping = map ) head(ps)
PrinPred() estimates cumulative principal score under a specified treatment
level and returns a numeric vector. For longitudinal data with multiple time
points, the cumulative score combines the estimated survival probabilities
across the observed post-baseline times. For data containing a single observed
time point, the model is fitted using the complete dataset.
The argument prin_fo, fit_dat, and pred_dat specify the formula, data used
to fit the model and the observations where predictions are generated,
respectively. The argument mapping is the original argument mapping. The
argument a specifies the treatment group under which the principal scores are
predicted.
p1 <- PrinPred( prin_fo = prin_fo, fit_dat = pd_data, pred_dat = pd_data, a = 1, mapping = map ) head(p1)
OutPred() estimates potential outcomes under a specified treatment level and
returns the predictions as a row-aligned numeric vector.
The argument out_fo, fit_dat, pre_dat is the outcome model formula, data
used to fit the model and data in which predictions are generated, respectively.
The argument mapping is the original argument mapping. The argument a
specifies the treatment group under which the outcomes are predicted.
The model-fitting procedure depends on the outcome type specified in mapping.
For a continuous outcome, OutPred() fits a linear regression model and returns
the conditional means. For a binary outcome, it fits a logistic regression
model.
mu0 <- OutPred( out_fo = out_fo, fit_dat = pd_data, pred_dat = pd_data, a = 0, mapping = map ) head(mu0)
Tips:
Model-fitting issues such as complete or quasi-complete separation, aliased nuisance-model coefficients, or extreme fitted probabilities may generate warnings. These conditions do not necessarily invalidate the predictions, provided that the fitted model returns a complete, finite, and correctly aligned prediction vector.
In contrast, missing, non-finite, or row-misaligned predictions are treated as errors. Each direct prediction function reports a single standardized warning for each model fit.
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.