A manual to show the R package TippingPoint
.
The TippingPoint
package aims to handle missing outcome data by listing out all the possible combinations of the values of missing data in two treatment arms, calculating corresponding estimated treatment effects and p-values, finding the margin(the so-called Tipping Point) that would change the result of the study and drawing a colored heat-map to visualize them. In addition, the package provides a visualized method to compare various imputation methods by adding the rectangles or convex hulls on the basic plot. Several examples are used to explain the idea.
# If you haven't install the package, you can download it from cran
# install.packages("TipingPoint")
library(TippingPoint)
# Load the dataset
data(tippingdata)
# Show the first 6 rows of the data
head(tippingdata)
## continuous binary educ female treat
## 1 119.7820 1 12 0 1
## 2 117.7729 0 16 0 1
## 3 124.7833 0 12 1 1
## 4 123.3546 0 12 1 1
## 5 124.6611 0 12 1 1
## 6 NA 1 15 0 1
## for binary outcome
# Using `estimate`
TippingPoint(outcome=tippingdata$binary,
treat= tippingdata$treat,group.infor=TRUE,
plot.type = "estimate",ind.values = TRUE,
impValuesT = NA, impValuesC = NA,
summary.type = "density", alpha = 0.95, S=1.5, n.grid = 100,
HistMeanT = c(0.38,0.4), HistMeanC = c(0.2,0.55))
##
## Group Information:
##
## Groups Treatment Control
## Size 150 120
## Number of nonrespondents 13 27
## % of nonrespondents 0.08666667 0.225
## Observed proportion 0.5328467 0.5376344
# Using `p.value` with formula class
TippingPoint(binary~treat, data=tippingdata,
plot.type = "p.value",ind.values = TRUE,
impValuesT = NA, impValuesC = NA,
summary.type = "density", alpha = 0.95, S=1.5, n.grid = 100,
HistMeanT = c(0.38,0.4), HistMeanC = c(0.2,0.55))
# Using `both`
TippingPoint(outcome=tippingdata$binary,treat= tippingdata$treat,
plot.type = "both",ind.values = TRUE,
impValuesT = NA, impValuesC = NA,
summary.type = "density", alpha = 0.95, S=1.5, n.grid = 100,
HistMeanT = c(0.38,0.4), HistMeanC = c(0.2,0.55))
# for continuous outcome
TippingPoint(continuous~treat, data=tippingdata,
group.infor=TRUE, plot.type = "estimate",ind.values = TRUE,
impValuesT = NA, impValuesC = NA,
summary.type = "density", alpha = 0.95, S=1.5, n.grid = 100,
HistMeanT = c(120), HistMeanC = c(131,137))
##
## Group Information:
##
## Groups Treatment Control
## Size 150 120
## Number of nonrespondents 26 39
## % of nonrespondents 0.1733333 0.325
## Observed average response 127.6397 122.6907
## Observed min response 105.6767 73.54343
## Observed max response 152.8064 152.8064
TippingPoint(outcome=tippingdata$continuous,treat= tippingdata$treat,
plot.type = "p.value",ind.values = TRUE,
impValuesT = NA, impValuesC = NA,
summary.type = "density", alpha = 0.95, S=1.5, n.grid = 100,
HistMeanT = c(120), HistMeanC = c(131,137))
TippingPoint(outcome=tippingdata$continuous,treat= tippingdata$treat,
plot.type = "both",ind.values = TRUE,
impValuesT = NA, impValuesC = NA,
summary.type = "density", alpha = 0.95, S=1.5, n.grid = 100,
HistMeanT = c(120), HistMeanC = c(131,137))
# Load the imputed dataset
data(imputedata)
# Show the first 6 rows of the data
head(imputedata)
## MAR_T1 MAR_C1 MAR_T2 MAR_C2 MCAR_T1 MCAR_C1 MCAR_T2 MCAR_C2
## 1 118.1192 122.8743 7 14 128.4723 129.7369 6 13
## 2 129.7815 124.6130 5 19 130.1233 126.1398 6 11
## 3 124.3407 122.6200 5 17 124.9609 128.7701 5 14
## 4 126.6131 126.6311 4 15 126.9734 126.3991 4 10
## 5 127.8940 126.4212 8 16 125.9800 130.9947 5 10
## 6 122.1164 121.5700 4 13 127.0293 128.4050 5 13
## for binary outcome
TippingPoint(outcome=tippingdata$binary,
treat= tippingdata$treat, group.infor=TRUE,
plot.type = "estimate",ind.values = TRUE,
impValuesT = imputedata[,c("MAR_T2","MCAR_T2")],
impValuesC = imputedata[,c("MAR_C2","MCAR_C2")],
summary.type = "density", alpha = 0.95, S=1.5, n.grid = 100,
HistMeanT = c(0.38,0.4), HistMeanC = c(0.2,0.55))
##
## Group Information:
##
## Groups Treatment Control
## Size 150 120
## Number of nonrespondents 13 27
## % of nonrespondents 0.08666667 0.225
## Observed proportion 0.5328467 0.5376344
# User-defined colors
TippingPoint(outcome=tippingdata$binary,treat= tippingdata$treat,
plot.type = "p.value",ind.values = TRUE,
impValuesT = imputedata[,c("MAR_T2","MCAR_T2")],
impValuesC = imputedata[,c("MAR_C2","MCAR_C2")],
impValuesColor = RColorBrewer::brewer.pal(8,"Accent")[5:6],
summary.type = "credible.region", alpha = 0.95, S=1.5, n.grid = 100,
HistMeanT = c(0.38,0.4), HistMeanC = c(0.2,0.55))
# Using `point.size` and `point.shape` to control the points.
TippingPoint(outcome=tippingdata$binary,treat= tippingdata$treat,
plot.type = "both",ind.values = TRUE,
impValuesT = imputedata[,c("MAR_T2","MCAR_T2")],
impValuesC = imputedata[,c("MAR_C2","MCAR_C2")],
impValuesColor =c("red","blue"),
point.size=0.8,point.shape = 15,
summary.type = "convex.hull", alpha = 0.95, S=1.5, n.grid = 100,
HistMeanT = c(0.38,0.4), HistMeanC = c(0.2,0.55))
## for continuous outcome
TippingPoint(outcome=tippingdata$continuous,
treat= tippingdata$treat, group.infor=TRUE,
plot.type = "p.value",ind.values = TRUE,
impValuesT = imputedata[,c("MAR_T1","MCAR_T1")],
impValuesC = imputedata[,c("MAR_C1","MCAR_C1")],
summary.type = "density", alpha = 0.95, S=1.5, n.grid = 100,
HistMeanT = c(120), HistMeanC = c(131,137))
##
## Group Information:
##
## Groups Treatment Control
## Size 150 120
## Number of nonrespondents 26 39
## % of nonrespondents 0.1733333 0.325
## Observed average response 127.6397 122.6907
## Observed min response 105.6767 73.54343
## Observed max response 152.8064 152.8064
# Using `point.size` and `point.shape` to control the points.
TippingPoint(outcome=tippingdata$continuous,treat= tippingdata$treat,
plot.type = "p.value",ind.values = TRUE,
impValuesT = imputedata[,c("MAR_T1","MCAR_T1")],
impValuesC = imputedata[,c("MAR_C1","MCAR_C1")],
point.size = 0.8, point.shape = 15,
summary.type = "credible.region", alpha = 0.95, S=1.5, n.grid = 100,
HistMeanT = c(120), HistMeanC = c(131,137))
TippingPoint(outcome=tippingdata$continuous,treat= tippingdata$treat,
plot.type = "both",ind.values = TRUE,
impValuesT = imputedata[,c("MAR_T1","MCAR_T1")],
impValuesC = imputedata[,c("MAR_C1","MCAR_C1")],
summary.type = "convex.hull", alpha = 0.95, S=1.5, n.grid = 100,
HistMeanT = c(120), HistMeanC = c(131,137))
The TippingPoint
package is created based on Liublinska and Rubin’s work. For more details: