查看原文
其他

数据呈现丨R语言:逻辑回归模型可视化分析

数据Seminar 2021-06-03

The following article is from R语言 Author 数据人网

逻辑回归算法和模型是基本的重要的模型,它在信用评分,营销响应,广告点击等领域都发挥着重要作用和价值。们很高兴向您介绍blorr包,这是一组用于在R中构建和验证二进制逻辑回归模型的工具,它是为初学/中级R用户设计的。

全面回归输出

变量选择过程

双变量分析,模型拟合统计和模型验证工具

各种图形和底层数据

如果您知道如何使用glm()构建模型,您会发现blorr非常有用。大多数函数使用类glm的对象作为输入。因此,您只需要使用glm()构建一个模型,然后将其传递给blorr中的函数。一旦你掌握了足够的R知识,你就可以转向tidymodels等提供的更直观的方法,因为它们提供了更多的灵活性,而blorr没有。




安装


# Install release version from CRANinstall.packages("blorr")
# Install development version from GitHub# install.packages("devtools")devtools::install_github("rsquaredacademy/blorr")

左右滑动查看更多




Shiny 程序

blorr包括一个Shiny的应用程序,可以使用:
blr_launch_app()
左右滑动查看更多
继续阅读,了解更多关于blorr的特点,或者查看blorr网站上有关使用该包的详细文档。




数据

为了展示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表示该属性的违约值比例高于总体比例,表示风险较高。

信息值用于根据预测能力对变量的顺序进行排名。高信息值表示高辨别能力。在评估高度预测特征时,信息值的值将始终为正值,并且可能高于3。信息值小于0.1的特征通常被视为弱,而追求超过0.30的值。
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()

左右滑动查看更多




回归结构


模型

我们可以使用双变量分析和逐步选择过程来筛选预测因子,并使用glm()建立模型。下面模型中使用的预测因子是为了说明,不一定是从二元分析和变量选择过程中筛选出来的。
model <- glm(y ~ age + duration + previous + housing + default + loan + poutcome + job + marital, data = bank_marketing, family = binomial(link = 'logit'))

左右滑动查看更多

使用blr_regress()生成全面回归输出。它接受下列任何一种:

使用glm()建立的模型

使用公式和数据建立的模型



使用模型

让我们看看由blr_regress()生成的输出::
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平方的信息:

https://stats.idre.ucla.edu/other/mult-pkg/faq/general/faq-what-are-pseudo-r-squareds/



单一模型

blr_model_fit_stats(model)

左右滑动查看更多




模型验证


Hosmer Lemeshow测试

Hosmer和Lemeshow针对具有二元响应的逻辑回归模型开发了拟合优度检验。该测试涉及基于估计概率的百分位将数据划分为大约十组大致相等的大小。观察结果按其估计的均匀结果概率的递增顺序排序。通过Pearson卡方统计量来概括这些组中观察到的和预期观察数之间的差异,然后将其与具有t自由度的卡方分布进行比较,其中t是组的数量减去2.较低的拟合优度值是首选。
blr_test_hosmer_lemeshow(model)

左右滑动查看更多




增益表和提升图

提升曲线是在特定截止点捕获的累积事件百分比的图形表示。截止值可以是一个特定的十分位数或百分位数。与排序过程类似,数据按分数的降序排列,然后分组为十分位数/百分位数。然后计算每个十分位/百分位的累积观察数和事件数。lift曲线是使用累积样本百分比作为x轴,事件累积百分比作为y轴创建的。

blr_gains_table(model)

左右滑动查看更多



提升图

model %>% blr_gains_table() %>% plot()

左右滑动查看更多



ROC曲线

ROC曲线是逻辑回归模型截断有效性的图形表示。ROC曲线是利用所有可能的截止点的敏感性和特异性绘制的,即所有概率得分。图是用y轴上的敏感性和x轴上的1-特异性绘制的。ROC曲线上的任意一点代表一个对应于截止点的灵敏度X(1-特异度)测度。ROC曲线下的面积作为模型的验证尺度——面积越大,模型越好。
model %>% blr_gains_table() %>% blr_roc_curve()

左右滑动查看更多



KS图

KS统计量同样是模型有效性的度量,它是使用升力曲线创建的。创建提升曲线是绘制了发生事件的%。如果我们也在相同的尺度上绘制没有发生时间的% ,在x轴上绘制样本的%,我们将得到另一条曲线。发生事件和没有发生事件的提升曲线之间的最大距离称为KS。对于一个好的模型,KS应该很大(>=0.3),并且应该尽可能地接近事件发生率。



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/











►一周热文

统计计量丨一文读懂11个常见的多变量分析方法

数据呈现丨Pandas可视化综合指南:手把手从零教你绘制数据图表

统计计量丨计量经济学中的“条件”与“无条件”

老姚专栏丨与标准误有关的那些事

统计计量丨Back to Basics: OLS与内生性

数据呈现丨R语言可视化学习笔记之ggridges包

统计计量丨To Take Log, or Not to Take Log (取对数,还是不取对数)








数据Seminar

这里是大数据、分析技术与学术研究的三叉路口


作者:数据人网出处:R语言推荐:简华(何年华)编辑:青酱






    欢迎扫描👇二维码添加关注    


    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存