数据呈现丨R语言:逻辑回归模型可视化分析
The following article is from R语言 Author 数据人网
逻辑回归算法和模型是基本的重要的模型,它在信用评分,营销响应,广告点击等领域都发挥着重要作用和价值。我们很高兴向您介绍blorr包,这是一组用于在R中构建和验证二进制逻辑回归模型的工具,它是为初学/中级R用户设计的。
如果您知道如何使用glm()构建模型,您会发现blorr非常有用。大多数函数使用类glm的对象作为输入。因此,您只需要使用glm()构建一个模型,然后将其传递给blorr中的函数。一旦你掌握了足够的R知识,你就可以转向tidymodels等提供的更直观的方法,因为它们提供了更多的灵活性,而blorr没有。
安装
# Install release version from CRAN
install.packages("blorr")
# Install development version from GitHub
# install.packages("devtools")
devtools::install_github("rsquaredacademy/blorr")
左右滑动查看更多
Shiny 程序
blr_launch_app()
数据
为了展示blorr的特点,我们将使用银行营销数据集。这些数据与葡萄牙一家银行机构的直接营销活动有关。营销活动是以电话为基础的。通常,同一客户需要多个联系人,以便访问产品(银行定期存款)是否已(“是”)认购(“否”)。它包含原始数据集的随机样本(~4k),可以在:
https://archive.ics.uci.edu/ml/datasets/bank+marketing
双变量分析
blr_bivariate_analysis(bank_marketing, y, job, marital, education, default, housing, loan, contact, poutcome)
左右滑动查看更多
WOE和信息值
证据权重(WoE)用于评估特征的不同属性的相对风险,以及将特征转换为变量的手段。它也是一个非常有用的分箱工具。任何具有平均odds的组的WoE为零。负WoE表示该属性的违约值比例高于总体比例,表示风险较高。
blr_woe_iv(bank_marketing, job, y)
左右滑动查看更多
可视化
k <- blr_woe_iv(bank_marketing, job, y)
plot(k)
左右滑动查看更多
多个变量
我们可以使用blr_woe_iv_stats()
为多个变量生成WOE和信息值。
blr_woe_iv_stats(bank_marketing, y, job, marital, education)
左右滑动查看更多
逐步回归
对于初始模型,所有的自变量都被放入模型中。我们的目标是包含有限数量的自变量(5-15个),这些自变量都是重要的,而不牺牲太多的模型性能。不包含太多变量的原因是模型会过度拟合,在验证样本上测试时将变得不稳定。变量约简使用正向或向后或逐步变量选择过程。我们将使用blr_step_aic_both()来筛选模型的预测器。
模型
model <- glm(y ~ ., data = bank_marketing, family = binomial(link = 'logit'))
逐步选择摘要
blr_step_aic_both(model)
左右滑动查看更多
可视化
model %>%
blr_step_aic_both() %>%
plot()
左右滑动查看更多
回归结构
模型
model <- glm(y ~ age + duration + previous + housing + default +
loan + poutcome + job + marital, data = bank_marketing,
family = binomial(link = 'logit'))
左右滑动查看更多
使用模型
blr_regress(model)
左右滑动查看更多
如果要检查odds比估计值,请将odd_conf_limit设置为TRUE。当我们观察到处理大型数据集时,计算时间显著增加,所以odds比估计值并没有被显式地计算出来。
使用公式
blr_regress(y ~ age + duration + previous + housing + default +
loan + poutcome + job + marital, data = bank_marketing)
左右滑动查看更多
模型拟合统计特性
模型拟合统计数据可用来评估模型与数据的匹配程度,并比较两个不同的模型。输出包括似然比检验、AIC、BIC和一系列伪r平方测度。你可以阅读更多关于伪r平方的信息:
单一模型
blr_model_fit_stats(model)
左右滑动查看更多
模型验证
Hosmer Lemeshow测试
blr_test_hosmer_lemeshow(model)
左右滑动查看更多
增益表和提升图
提升曲线是在特定截止点捕获的累积事件百分比的图形表示。截止值可以是一个特定的十分位数或百分位数。与排序过程类似,数据按分数的降序排列,然后分组为十分位数/百分位数。然后计算每个十分位/百分位的累积观察数和事件数。lift曲线是使用累积样本百分比作为x轴,事件累积百分比作为y轴创建的。
blr_gains_table(model)
左右滑动查看更多
提升图
model %>%
blr_gains_table() %>%
plot()
左右滑动查看更多
ROC曲线
model %>%
blr_gains_table() %>%
blr_roc_curve()
左右滑动查看更多
KS图
10等分提升图
model %>%
blr_gains_table() %>%
blr_decile_lift_chart()
左右滑动查看更多
十分位捕获率
如果模型具有良好的区分能力,那么与底层十分位数相比,顶层十分位数应该具有更高的事件率。
model %>%
blr_gains_table() %>%
blr_decile_capture_rate()
左右滑动查看更多
洛伦茨曲线
blr_lorenz_curve(model)
左右滑动查看更多
残留与影响诊断
blorr可以生成22个图,用于residual, influence 和 leverage诊断。
influence诊断
blr_plot_diag_influence(model)
左右滑动查看更多
Leverage诊断
blr_plot_diag_leverage(model)
左右滑动查看更多
Fitted Values 诊断
blr_plot_diag_fit(model)
左右滑动查看更多
更多学习
blorr网站包含了关于使用该包的全面文档,包括下面的文章,其中涵盖了使用blorr的各个方面。
原文链接:
https://blog.rsquaredacademy.com/introducing-blorr/
►一周热文
数据呈现丨Pandas可视化综合指南:手把手从零教你绘制数据图表
统计计量丨To Take Log, or Not to Take Log (取对数,还是不取对数)
数据Seminar
这里是大数据、分析技术与学术研究的三叉路口
欢迎扫描👇二维码添加关注