plot.subgroup_fitted {personalized} | R Documentation |
Plotting results for fitted subgroup identification models
Description
Plots results for estimated subgroup treatment effects
Plots validation results for estimated subgroup treatment effects
Usage
## 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,
...
)
Arguments
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 |
See Also
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.
Examples
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")