[R-pkgs] aVirtualTwins available on CRAN
Francois vieille
francois.vieille at mel.lincoln.fr
Mon Oct 10 11:30:44 CEST 2016
[markdown format]
I'm glad to introduce you the new package aVirtualTwins. This package is an adaptation of VirtualTwins method of subgroup identification from [Foster, J. C., Taylor, J. M.G. and Ruberg, S. J. (2011)](http://onlinelibrary.wiley.com/doi/10.1002/sim.4322/abstract).
### Explanation
Virtual Twins has been created to find subgroup of patients in a random clinical trial with enhanced treatment effect, if it exists. Theorically, this method can be used for binary and continous outcome. This package only deals with binary outcome in a two arms clinical trial.
Virutal Twins is also adapted for A/B testing of course.
Virtual Twins is based on random forest and regression/classification trees.
### Quick preview
Here's a example of aVirtualTwins use with a well known dataset (_sepsis_) in subgroup decovery:
_Sepsis_ contains simulated data on 470 subjects with a binary outcome survival, that stores survival status for patient after 28 days of treatment, value of 1 for subjects who died after 28 days and 0 otherwise. There are 11 covariates, listed below, all of which are numerical variables.
```r
library(aVirtualTwins)
# Load data
data(sepsis)
# Format data
vt.obj <- vt.data(dataset = sepsis,
outcome.field = "survival",
treatment.field = "THERAPY",
interactions = TRUE)
## "1" will be the favorable outcome
# view of data
head(sepsis)
## survival THERAPY PRAPACHE AGE BLGCS ORGANNUM BLIL6 BLLPLAT
## 1 0 1 19 42.921 15 1 301.80 191.0000
## 2 1 1 48 68.818 11 2 118.90 264.1565
## 3 0 1 20 68.818 15 2 92.80 123.0000
## 4 0 1 19 33.174 14 2 1232.00 244.0000
## 5 0 1 48 46.532 3 4 2568.00 45.0000
## 6 0 0 21 56.098 14 1 162.65 137.0000
## BLLBILI BLLCREAT TIMFIRST BLADL blSOFA
## 1 2.913416 1.000000 17.17 0 5.00
## 2 0.400000 1.100000 17.17 5 10.00
## 3 5.116471 1.000000 10.00 1 7.50
## 4 3.142092 1.200000 17.17 0 6.25
## 5 4.052668 3.000000 10.00 0 12.00
## 6 0.500000 4.662556 10.00 0 8.75
# Print Incidences of sepsis data
vt.obj$getIncidences()
## $table
## trt
## resp 0 1 sum
## 0 101 188 289
## 1 52 129 181
## sum 153 317 470
## Incidence 0.34 0.407 0.385
##
## $rr
## [1] 1.197059
# $table
# trt
# resp 0 1 sum
# 0 101 188 289
# 1 52 129 181
# sum 153 317 470
# Incidence 0.34 0.407 0.385
#
# $rr
# [1] 1.197059
#
# First step : create random forest model
vt.for <- vt.forest(forest.type = "one",
vt.data = vt.obj,
interactions = TRUE,
ntree = 500)
# Second step : find rules in data
vt.trees <- vt.tree(tree.type = "class",
vt.difft = vt.for,
threshold = quantile(vt.for$difft, seq(.5,.8,.1)),
maxdepth = 2)
# Print results
vt.sbgrps <- vt.subgroups(vt.trees)
knitr::kable(vt.sbgrps)
```
Subgroup Subgroup size Treatement event rate Control event rate Treatment sample size Control sample size RR (resub) RR (snd)
------ ---------------------------- -------------- ---------------------- ------------------- ---------------------- -------------------- ----------- ---------
tree1 PRAPACHE>=26.5 157 0.752 0.327 105 52 2.300 1.774
tree3 PRAPACHE>=26.5 & AGE>=51.74 120 0.897 0.31 78 42 2.894 1.924
aVirtualTwins can be found on [CRAN](https://cran.r-project.org/package=aVirtualTwins) and [github](https://github.com/prise6/aVirtualTwins). Feel free to contribute.
Francois.
More information about the R-packages
mailing list