shap <- data.frame(
education = c(1, 0, -1),
water = c(0, 1, 1)
)
rank <- c(1, 2, 3)
res <- shap_conc_decomp(
shap = shap,
rank = rank,
baseline = 2
)
res$diagnostics
#> n weight_sum type mean_prediction concentration_index
#> <int> <num> <char> <num> <num>
#> 1: 3 3 CI 2.666667 0.08333333
#> signed_concentration_index score_direction shap_sum additivity_gap
#> <num> <num> <num> <num>
#> 1: -0.08333333 -1 0.08333333 1.387779e-17
#> centered_rank_sum prediction_source
#> <num> <char>
#> 1: 4.626155e-17 baseline + rowSums(shap)
res$contributions
#> feature D_k_SHAP pct_contribution abs_contribution
#> <char> <num> <num> <num>
#> 1: education 0.16666667 200 0.16666667
#> 2: water -0.08333333 -100 0.08333333
dalex_like <- data.frame(
"_id_" = rep(1:3, each = 3),
"_vname_" = rep(c("_baseline_", "education", "water"), times = 3),
"_attribution_" = c(2, 1, 0, 2, 0, 1, 2, -1, 1),
check.names = FALSE
)
shap_conc_decomp(
shap = dalex_like,
rank = rank,
baseline = 2,
from_dalex = TRUE
)$contributions
#> feature D_k_SHAP pct_contribution abs_contribution
#> <char> <num> <num> <num>
#> 1: education 0.16666667 200 0.16666667
#> 2: water -0.08333333 -100 0.08333333