plot.subgroup_fitted | R Documentation |
Plots results for estimated subgroup treatment effects
Plots validation results for estimated subgroup treatment effects
## S3 method for class 'subgroup_fitted' plot( x, type = c("boxplot", "density", "interaction", "conditional"), avg.line = TRUE, ... ) ## S3 method for class 'subgroup_validated' plot( x, type = c("boxplot", "density", "interaction", "conditional", "stability"), avg.line = TRUE, ... )
x |
fitted object returned by |
type |
type of plot. |
avg.line |
boolean value of whether or not to plot a line for the average
value in addition to the density (only valid for |
... |
not used |
fit.subgroup
for function which fits subgroup identification models.
validate.subgroup
for function which creates validation results
and fit.subgroup
for function which fits subgroup identification models.
library(personalized) set.seed(123) n.obs <- 250 n.vars <- 15 x <- matrix(rnorm(n.obs * n.vars, sd = 3), n.obs, n.vars) # simulate non-randomized treatment xbetat <- 0.5 + 0.5 * x[,11] - 0.5 * x[,13] trt.prob <- exp(xbetat) / (1 + exp(xbetat)) trt01 <- rbinom(n.obs, 1, prob = trt.prob) trt <- 2 * trt01 - 1 # simulate response delta <- 2 * (0.5 + x[,2] - x[,3] - x[,11] + x[,1] * x[,12]) xbeta <- x[,1] + x[,11] - 2 * x[,12]^2 + x[,13] xbeta <- xbeta + delta * trt # continuous outcomes y <- drop(xbeta) + rnorm(n.obs, sd = 2) # create function for fitting propensity score model prop.func <- function(x, trt) { # fit propensity score model propens.model <- cv.glmnet(y = trt, x = x, family = "binomial") pi.x <- predict(propens.model, s = "lambda.min", newx = x, type = "response")[,1] pi.x } subgrp.model <- fit.subgroup(x = x, y = y, trt = trt01, propensity.func = prop.func, loss = "sq_loss_lasso", # option for cv.glmnet, # better to use 'nfolds=10' nfolds = 3) # option for cv.glmnet subgrp.model$subgroup.trt.effects plot(subgrp.model) plot(subgrp.model, type = "boxplot") plot(subgrp.model, type = "interaction") plot(subgrp.model, type = "conditional") valmod <- validate.subgroup(subgrp.model, B = 3, method = "training_test", benefit.score.quantiles = c(0.25, 0.5, 0.75), train.fraction = 0.75) plot(valmod) plot(valmod, type = "interaction") # see how summary statistics of subgroups change # when the subgroups are defined based on different cutoffs # (25th quantile of bene score, 50th, and 75th) plot(valmod, type = "conditional") # visualize the frequency of particular variables # of being selected across the resampling iterations with # 'type = "stability"' # not run: # plot(valmod, type = "stability")
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.