library(dplyr)
library(prettyglm)
data('titanic')
columns_to_factor <- c('Pclass',
'Sex',
'Cabin',
'Embarked',
'Cabintype',
'Survived')
meanage <- base::mean(titanic$Age, na.rm=TRUE)
titanic <- titanic %>%
dplyr::mutate_at(columns_to_factor, list(~factor(.))) %>%
dplyr::mutate(Age =base::ifelse(is.na(Age)==TRUE,meanage,Age)) %>%
dplyr::mutate(Age_0_25 = prettyglm::splineit(Age,0,25),
Age_25_50 = prettyglm::splineit(Age,25,50),
Age_50_120 = prettyglm::splineit(Age,50,120)) %>%
dplyr::mutate(Fare_0_250 = prettyglm::splineit(Fare,0,250),
Fare_250_600 = prettyglm::splineit(Fare,250,600))
# A simple example
survival_model <- stats::glm(Survived ~
Pclass +
Sex +
Age +
Fare +
Embarked +
SibSp +
Parch +
Cabintype,
data = titanic,
family = binomial(link = 'logit'))
pretty_coefficients(survival_model)
# A more complicated example with a spline and different importance method
survival_model3 <- stats::glm(Survived ~
Pclass +
Age_0_25 +
Age_25_50 +
Age_50_120 +
Sex:Fare_0_250 +
Sex:Fare_250_600 +
Embarked +
SibSp +
Parch +
Cabintype,
data = titanic,
family = binomial(link = 'logit'))
pretty_coefficients(survival_model3,
relativity_transform = 'exp(estimate)-1',
spline_seperator = '_',
vimethod = 'permute',
target = 'Survived',
metric = "roc_auc",
event_level = 'second',
pred_wrapper = predict.glm,
smaller_is_better = FALSE,
train = survival_model3$data, # need to supply training data for vip importance
reference_class = 0)
Run the code above in your browser using DataLab