Calculates the average model response as a function of a single selected variable. Use the 'type' parameter to select the type of marginal response to be calculated. Currently we have Partial Dependency and Accumulated Local Effects implemented. Current implementation uses the 'pdp' package (Brandon M. Greenwell (2017). pdp: An R Package for Constructing Partial Dependence Plots. The R Journal, 9(1), 421--436.) and 'ALEPlot' (Dan Apley (2017). ALEPlot: Accumulated Local Effects Plots and Partial Dependence Plots.)

single_variable(explainer, variable, type = "pdp", trans = I, ...)

Arguments

explainer

a model to be explained, preprocessed by the 'explain' function

variable

character - name of a single variable

type

character - type of the response to be calculated. Currently following options are implemented: 'pdp' for Partial Dependency and 'ale' for Accumulated Local Effects

trans

function - a transformation/link function that shall be applied to raw model predictions

...

other parameters

Value

An object of the class 'single_variable_explainer'. It's a data frame with calculated average response.

Examples

library("randomForest") library("breakDown") logit <- function(x) exp(x)/(1+exp(x)) HR_glm_model <- glm(left~., data = breakDown::HR_data, family = "binomial") explainer_glm <- explain(HR_glm_model, data = HR_data) expl_glm <- single_variable(explainer_glm, "satisfaction_level", "pdp", trans=logit) expl_glm
#> x y var type label #> 1 0.0900 0.5696467 satisfaction_level pdp lm #> 2 0.1082 0.5603974 satisfaction_level pdp lm #> 3 0.1264 0.5511059 satisfaction_level pdp lm #> 4 0.1446 0.5417787 satisfaction_level pdp lm #> 5 0.1628 0.5324221 satisfaction_level pdp lm #> 6 0.1810 0.5230426 satisfaction_level pdp lm #> 7 0.1992 0.5136469 satisfaction_level pdp lm #> 8 0.2174 0.5042415 satisfaction_level pdp lm #> 9 0.2356 0.4948331 satisfaction_level pdp lm #> 10 0.2538 0.4854283 satisfaction_level pdp lm #> 11 0.2720 0.4760339 satisfaction_level pdp lm #> 12 0.2902 0.4666564 satisfaction_level pdp lm #> 13 0.3084 0.4573024 satisfaction_level pdp lm #> 14 0.3266 0.4479784 satisfaction_level pdp lm #> 15 0.3448 0.4386908 satisfaction_level pdp lm #> 16 0.3630 0.4294460 satisfaction_level pdp lm #> 17 0.3812 0.4202501 satisfaction_level pdp lm #> 18 0.3994 0.4111093 satisfaction_level pdp lm #> 19 0.4176 0.4020294 satisfaction_level pdp lm #> 20 0.4358 0.3930163 satisfaction_level pdp lm #> 21 0.4540 0.3840754 satisfaction_level pdp lm #> 22 0.4722 0.3752122 satisfaction_level pdp lm #> 23 0.4904 0.3664318 satisfaction_level pdp lm #> 24 0.5086 0.3577392 satisfaction_level pdp lm #> 25 0.5268 0.3491393 satisfaction_level pdp lm #> 26 0.5450 0.3406364 satisfaction_level pdp lm #> 27 0.5632 0.3322349 satisfaction_level pdp lm #> 28 0.5814 0.3239388 satisfaction_level pdp lm #> 29 0.5996 0.3157519 satisfaction_level pdp lm #> 30 0.6178 0.3076777 satisfaction_level pdp lm #> 31 0.6360 0.2997196 satisfaction_level pdp lm #> 32 0.6542 0.2918805 satisfaction_level pdp lm #> 33 0.6724 0.2841633 satisfaction_level pdp lm #> 34 0.6906 0.2765704 satisfaction_level pdp lm #> 35 0.7088 0.2691041 satisfaction_level pdp lm #> 36 0.7270 0.2617665 satisfaction_level pdp lm #> 37 0.7452 0.2545593 satisfaction_level pdp lm #> 38 0.7634 0.2474839 satisfaction_level pdp lm #> 39 0.7816 0.2405418 satisfaction_level pdp lm #> 40 0.7998 0.2337339 satisfaction_level pdp lm #> 41 0.8180 0.2270611 satisfaction_level pdp lm #> 42 0.8362 0.2205239 satisfaction_level pdp lm #> 43 0.8544 0.2141228 satisfaction_level pdp lm #> 44 0.8726 0.2078580 satisfaction_level pdp lm #> 45 0.8908 0.2017294 satisfaction_level pdp lm #> 46 0.9090 0.1957369 satisfaction_level pdp lm #> 47 0.9272 0.1898801 satisfaction_level pdp lm #> 48 0.9454 0.1841583 satisfaction_level pdp lm #> 49 0.9636 0.1785710 satisfaction_level pdp lm #> 50 0.9818 0.1731172 satisfaction_level pdp lm #> 51 1.0000 0.1677960 satisfaction_level pdp lm
HR_rf_model <- randomForest(left~., data = breakDown::HR_data, ntree = 100)
#> Warning: The response has five or fewer unique values. Are you sure you want to do regression?
explainer_rf <- explain(HR_rf_model, data = HR_data) expl_rf <- single_variable(explainer_rf, variable = "satisfaction_level", type = "pdp") expl_rf
#> x y var type label #> 1 0.0900 0.720654.... satisfaction_level pdp randomForest #> 2 0.1082 0.707218.... satisfaction_level pdp randomForest #> 3 0.1264 0.153172.... satisfaction_level pdp randomForest #> 4 0.1446 0.128855.... satisfaction_level pdp randomForest #> 5 0.1628 0.094760.... satisfaction_level pdp randomForest #> 6 0.1810 0.085950.... satisfaction_level pdp randomForest #> 7 0.1992 0.085686.... satisfaction_level pdp randomForest #> 8 0.2174 0.082298.... satisfaction_level pdp randomForest #> 9 0.2356 0.084172.... satisfaction_level pdp randomForest #> 10 0.2538 0.087325.... satisfaction_level pdp randomForest #> 11 0.2720 0.089904.... satisfaction_level pdp randomForest #> 12 0.2902 0.094524.... satisfaction_level pdp randomForest #> 13 0.3084 0.133928.... satisfaction_level pdp randomForest #> 14 0.3266 0.125285.... satisfaction_level pdp randomForest #> 15 0.3448 0.130259.... satisfaction_level pdp randomForest #> 16 0.3630 0.187194.... satisfaction_level pdp randomForest #> 17 0.3812 0.182159.... satisfaction_level pdp randomForest #> 18 0.3994 0.178998.... satisfaction_level pdp randomForest #> 19 0.4176 0.191902.... satisfaction_level pdp randomForest #> 20 0.4358 0.188588.... satisfaction_level pdp randomForest #> 21 0.4540 0.190275.... satisfaction_level pdp randomForest #> 22 0.4722 0.100702.... satisfaction_level pdp randomForest #> 23 0.4904 0.059742.... satisfaction_level pdp randomForest #> 24 0.5086 0.056699.... satisfaction_level pdp randomForest #> 25 0.5268 0.053738.... satisfaction_level pdp randomForest #> 26 0.5450 0.057116.... satisfaction_level pdp randomForest #> 27 0.5632 0.054650.... satisfaction_level pdp randomForest #> 28 0.5814 0.053168.... satisfaction_level pdp randomForest #> 29 0.5996 0.050938.... satisfaction_level pdp randomForest #> 30 0.6178 0.051200.... satisfaction_level pdp randomForest #> 31 0.6360 0.051000.... satisfaction_level pdp randomForest #> 32 0.6542 0.051462.... satisfaction_level pdp randomForest #> 33 0.6724 0.055069.... satisfaction_level pdp randomForest #> 34 0.6906 0.056271.... satisfaction_level pdp randomForest #> 35 0.7088 0.069769.... satisfaction_level pdp randomForest #> 36 0.7270 0.099722.... satisfaction_level pdp randomForest #> 37 0.7452 0.100116.... satisfaction_level pdp randomForest #> 38 0.7634 0.100052.... satisfaction_level pdp randomForest #> 39 0.7816 0.104748.... satisfaction_level pdp randomForest #> 40 0.7998 0.104527.... satisfaction_level pdp randomForest #> 41 0.8180 0.099797.... satisfaction_level pdp randomForest #> 42 0.8362 0.099626.... satisfaction_level pdp randomForest #> 43 0.8544 0.101631.... satisfaction_level pdp randomForest #> 44 0.8726 0.099228.... satisfaction_level pdp randomForest #> 45 0.8908 0.102877.... satisfaction_level pdp randomForest #> 46 0.9090 0.095445.... satisfaction_level pdp randomForest #> 47 0.9272 0.056625.... satisfaction_level pdp randomForest #> 48 0.9454 0.050303.... satisfaction_level pdp randomForest #> 49 0.9636 0.049335.... satisfaction_level pdp randomForest #> 50 0.9818 0.049335.... satisfaction_level pdp randomForest #> 51 1.0000 0.049335.... satisfaction_level pdp randomForest