社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

别再说Stata在机器学习领域落后了, Stata+H2O机器学习轻松挖掘数据深层价值.

计量经济圈 • 1 年前 • 600 次点击  
图片

凡是搞计量经济的,都关注这个号了

邮箱:econometrics666@126.com

所有计量经济圈方法论丛的code程序, 宏微观数据库和各种软件都放在社群里.欢迎到计量经济圈社群交流访问.

前面,推荐了一些Stata高效使用Tips,例如:
1.国外教授整理了高效使用Stata的48个小技巧, 制作动图的代码爱了!2.用Stata绘制25种从简到难的数据图, 提供完整代码和绘图结果!3.PDF出来了! 使用Stata学应用微观计量方法的宝典第二版电子版! 4.如何高效使用Stata进行实证, 为你推荐百多页的学习Tips材料!

23年的时候Stata 18出来了,参看:1.Stata18版本对外发布了, 里面提供了30个让学者激动的新程序板块!2.群友在计量社群里分享了一份Stata18, 确实可以使用

25年Stata 19终于出来了,并且详细介绍了 Stata 19 的新功能(参看:Stata19新功能独家揭秘, ML,CS等全面升级, 附详细教程和案例助轻松上手, 绝对独一份指南.)。

下面就详细看看“Machine learning via H2O: Ensemble decision trees”。

Stata 19 推出的全新 h2oml 套件,使得咱们能够利用强大的 H2O 机器学习平台,即使在传统统计模型表现不佳时,也能深入挖掘数据中的复杂模式。该套件专注于集成决策树模型,如梯度提升机 (Gradient boosting machine, GBM) 和随机森林 (Random forest),支持灵活的分类与回归分析。
学者不仅可以方便地调整模型超参数、使用验证集或交叉验证 (CV) 评估性能,还能有效解释模型预测结果,执行更多高级机器学习任务。
许多学者习惯使用线性回归、逻辑回归等传统统计模型来分析数据。然而,现实世界的数据关系往往更为复杂,呈现显著的非线性特征。在这些情况下,经典方法可能难以捕捉数据中的精细模式,导致预测能力受限。
是否遇到过以下挑战?预测变量间的交互作用复杂,超出了传统模型的表达能力?模型的预测准确率遭遇瓶颈,难以进一步提升?需要模型能有效处理缺失值、多重共线性,并具备良好的泛化能力以预测新数据?希望在追求高预测精度的同时,不牺牲模型的可解释性(即避免预测能力与可解释性之间的矛盾)?
这些正是梯度提升机 (GBM) 和随机森林等先进机器学习方法展现优势之处。Stata 19 通过 h2oml 套件,将 H2O 的高性能算法无缝集成到 Stata 环境中,让学者能够直接运用这些强大的预测模型。
现在,只需使用熟悉的 Stata 命令语法,即可训练出性能可能超越传统技术的复杂集成学习模型,即使是机器学习新手也能快速上手。更重要的是,h2oml 打破了“机器学习是难以理解的‘黑箱’”这一固有印象。
借助套件内置的 Shapley 加性解释 (Shapley additive explanations, SHAP) 值、部分依赖图 (Partial dependence plots, PDP) 和变量重要性排序等强大解释工具,GBM 和随机森林模型在提供卓越预测能力的同时,依然保持了良好的可解释性——无需在预测能力与模型理解之间进行妥协。
下面概览下使用 h2oml 的标准机器学习工作流程。
如何在 Stata 中使用 H2O 进行机器学习分析:
1.环境设置与数据准备
初始化 H2O 集群,并将当前 Stata 内存中的数据集导入 H2O,命名为 dat
h2o init
_h2oframe put, into(data)
将 H2O 中的 data数据框分割为训练集(80%)和验证集(20%),并设置随机种子以确保可重复性:
_h2oframe split data, into(train valid) split(0.8 0.2) rseed(19)
将 train数据框设为 H2O 当前活动的数据框,用于后续模型训练:
_h2oframe change train
  1. 拟合基准模型
使用默认超参数,在训练集 (train) 上拟合 GBM 二分类模型,并在验证集 (valid) 上监控性能:
h2oml gbbinclass response predictors, h2orseed(19) validframe(valid)
或者,不使用单独验证集,而是通过 3 折交叉验证 (3-fold CV) 来评估模型:
h2oml gbbinclass response predictors, h2orseed(19) cv(3)
存储拟合好的基准模型结果,命名为 gbm_ref:
h2omlest store gbm_ref
  1. 指定超参数与自动调优
可以直接指定超参数值。例如,设置树的数量为 200,学习率为 0.2:
h2oml gbbinclass response predictors, h2orseed(19) cv(3) ntrees(200) lrate(0.2)
存储这个使用自定义超参数的模型,命名为 gbm_user:
h2omlest store gbm_user
执行超参数自动调优,搜索树的数量 (20到200,步长10) 和学习率 (0.1到1,步长0.1) 的最佳组合:
h2oml gbbinclass response predictors, h2orseed(19) cv(3) ntrees(20(10)200) lrate(0.1(0.1)1) tune()

(注意:tune() 默认激活网格搜索,并使用默认评估指标)

存储调优后找到的最佳模型,命名为 gbm_tuned:
h2omlest store gbm_tuned
自定义调优过程:例如,使用 accuracy (准确率) 作为评估指标,并采用随机网格搜索策略:
h2oml gbbinclass response predictors, h2orseed(19) cv(3) ntrees(20(10)200) lrate(0.1(0.1)1) tune(metric(accuracy) grid(random))
  1. 评估模型性能
绘制得分历史图,检查模型在训练过程中的收敛情况,诊断过拟合或欠拟合:
h2omlgraph scorehistory
查看交叉验证性能摘要统计(如果使用了 cv() 选项):
h2omlestat cvsummary
查看超参数网格搜索(或随机搜索)的结果摘要,按性能排序:
h2omlestat gridsummary
浏览网格搜索中排名前 10 模型的详细性能指标:
h2omlexplore id = 1/10
从搜索结果中手动选择某个特定 ID 的模型作为当前活动模型:
h2omlselect id = #  // 将 # 替换为所需的模型 ID
显示当前活动模型的各项性能指标:
h2omlestat metrics
并排比较多个已存储模型的关键性能指标:
h2omlgof gbm_tuned gbm_user gbm_ref
  1. 比较不同模型或方法
假设已完成随机森林模型的训练和调优,并将最佳模型存储为 rf_tuned。现在比较最佳 GBM 模型 (gbm_tuned) 和最佳随机森林模型 (rf_tuned):
比较表格化的性能指标:
h2omlgof gbm_tuned rf_tuned
在同一张图上比较它们的精确率-召回率 (PR) 曲线:
h2omlgraph prcurve, models(gbm_tuned rf_tuned)
在同一张图上比较它们的受试者工作特征 (ROC) 曲线:
h2omlgraph roc, models(gbm_tuned rf_tuned)
  1. 使用模型进行预测
首先,恢复之前选定的最佳模型,例如 gbm_tuned:
h2omlest restore gbm_tuned
将需要进行预测的数据框(这里以原始的 data数据框为例)设为 H2O 当前活动的数据框:
_h2oframe change data
执行预测,并将结果存储在 Stata 当前数据集的一个新变量中(变量名由 h2omlpredict 自动生成或通过选项指定):
h2omlpredict newvarname  // newvarname 是你希望存储预测结果的变量名
(可以通过 class 或 probabilities 等选项控制预测类型)
  1. 解释模型预测结果
评估并可视化各个预测变量的相对重要性:
h2omlgraph varimp
生成部分依赖图 (PDP),展示一个或多个变量对平均预测结果的边际效应:
h2omlgraph pdp predictors  // predictors 是一个或多个变量名
生成个体条件期望 (ICE) 图,展示单个变量变化对每个观测预测值的影响,揭示异质性:
h2omlgraph ice predictor   // predictor 是单个变量名
使用 SHAP 值分析预测变量对个体或整体预测结果的贡献:
为单个观测(例如第 # 号观测)生成 SHAP 值贡献图:
h2omlgraph shapvalues, obs(#)
生成 SHAP 摘要图(蜂群图),展示全局变量重要性、变量值与贡献方向的关系等:
h2omlgraph shapsummary
H2O 机器学习与 Stata 集成命令概览
监督学习模型训练
梯度提升机 (GBM)
h2oml gbregress`: 回归
h2oml gbbinclass`: 二元分类
h2oml gbmulticlass: 多分类
随机森林 (Random Forest)
h2oml rfregress: 回归
h2oml rfbinclass: 二元分类
h2oml rfmulticlass: 多分类
模型管理与后估计框架
h2omlest: 管理(存储 store、列出 dir、删除 drop、恢复 restore/use`)H2O 模型估计结果
h2omlpostestframe: 指定用于后续后估计命令的默认 H2O 数据框架
模型评估、调优与比较
h2omlestat metrics: 显示当前模型的详细性能指标
h2omlgof: 表格化比较多个已存储模型的拟合优度指标
h2omlestat cvsummary: 显示交叉验证结果摘要 (若使用 CV)
h2omlestat gridsummary: 显示超参数搜索(网格/随机)结果摘要 (若使用 tune())
h2omlexplore: 浏览超参数搜索中特定模型的详细结果
h2omlselect: 从超参数搜索结果中选择一个模型作为当前活动模型
h2omlgraph scorehistory: 绘制模型训练过程中的得分历史图
二元分类特定评估
h2omlestat threshmetric: 显示基于不同分类阈值的性能指标 (Precision, Recall, F1 等)
h2omlestat confmatrix: 显示混淆矩阵
h2omlgraph prcurve: 绘制精确率-召回率 (PR) 曲线图
h2omlgraph roc: 绘制受试者工作特征 (ROC) 曲线图
预测
h2omlpredict: 使用当前活动模型生成预测(连续值、类别概率或类别标签)
模型可解释性 (XAI)
h2omlgraph varimp: 生成变量重要性图
h2omlgraph pdp: 生成部分依赖图 (PDP)
h2omlgraph ice: 生成个体条件期望 (ICE) 图
h2omlgraph shapvalues: 为单个观测生成 SHAP 值贡献图
h2omlgraph shapsummary: 生成 SHAP 值摘要图 (蜂群图)
其他
h2omltree: 保存集成模型中单棵决策树的结构为 DOT 文件格式,并可显示规则。
h2oml 套件实际应用:电信客户流失预测
示例背景与目标
为了具体展示 h2oml 套件的功能,本节以一个电信客户流失数据集为例,重点演示如何使用梯度提升机 (GBM) 进行二元分类预测。请注意,使用随机森林模型或进行回归分析的工作流程与此类似。
分析一家名为 Telco 的虚构电信公司的数据。该公司在加利福尼亚州提供家庭电话和互联网服务,数据集(由 IBM 提供)包含了 7,043 位客户的 26 个变量信息。
核心目标是构建一个预测模型,用于识别哪些客户具有较高的流失风险——即他们可能终止与 Telco 的服务。模型的响应变量是一个二元变量 churn(流失),它标识了客户在上个月是否已停止服务(流失)或仍是活跃用户。
预测变量(或称特征)涵盖了客户的多个方面:
人口统计信息: 如性别、是否为老年人 (seniorcitizen)、是否有伴侣 (partner)、是否有家属 (dependents) 等。
账户详细信息: 如合同类型 (contract)、在网时长 (tenuremonths)、账单类型 (paperlessbill)、支付方式 (paymethod) 等。
服务订阅情况: 如是否开通电话服务 (phoneservice)、多条线路 (multiplelines)、互联网服务 (internetserv)、在线安全 (onlinesecurity)、在线备份 (onlinebackup)、技术支持 (techsupport)、设备保护 (deviceprotect) 等。
希望通过构建这个预测模型,揭示可能导致客户流失的关键因素和行为模式,从而帮助 Telco 公司采取更具针对性的主动措施,以有效挽留有价值的客户。
  1. 在 Stata 中为 H2O 机器学习准备数据
首先,加载数据集到 Stata 内存,并初始化本地 H2O 集群:
webuse churn.dta, clear
h2o init
接着,将 Stata 当前的数据集传输到 H2O 集群中,创建一个名为 churn 的 H2O Frame(H2O 使用的数据结构),并将其设定为 H2O 当前的活动数据框架:
_h2oframe put, into(churn)
_h2oframe change churn
现在,将 churn 数据框架分割为训练集和测试集,按 80%/20% 的比例划分。后续模型训练将在训练集上进行,并使用交叉验证 (CV) 来评估和控制过拟合。测试集将用于最终的模型比较。设置 rseed(19) 以确保数据分割过程可重复:
_h2oframe split churn, into(train test) split(0.8 0.2) rseed(19)
将 train 设置为当前活动的数据框架,用于接下来的模型训练:
_h2oframe change train
为了方便后续命令的书写,创建一个名为 predictors 的 Stata 全局宏,用于存储所有预测变量的名称:
global predictors latitude longitude tenuremonths monthlycharges totalcharges gender seniorcitizen partner dependents phoneservice multiplelines internetserv onlinesecurity onlinebackup streamtv techsupport       streammovie contract paperlessbill paymethod deviceprotect
  1. 拟合基准 GBM 模型
首先拟合一个基准的梯度提升机 (GBM) 模型。这里使用 3 折分层交叉验证 (stratified 3-fold cross-validation, SCV),并通过 h2orseed(19) 确保结果可重复。对于分类任务,特别是当类别不平衡(如此例中流失与未流失客户数量差异较大)时,分层交叉验证非常有用,它能确保每个交叉验证折叠中类别比例与原始数据大致相同。
h2oml gbbinclass churn $predictors, h2orseed(19) cv(3, stratify)
执行命令后,Stata 的输出会提供模型的详细信息,包括:模型类型和使用的损失函数(对于 h2oml gbbinclass,是伯努利损失函数)。训练集样本量以及交叉验证的设置。模型参数(超参数): 显示用户指定的超参数值以及算法实际使用的值。性能指标摘要: 表格展示模型在训练集和交叉验证集上的各项二元分类性能指标。
图片
由于本例中响应变量 churn 存在类别不平衡,应重点关注精确率-召回率曲线下面积 (Area under the precision-recall curve, AUCPR) 作为主要的性能评估指标。AUCPR 对少数类(即更关心的“流失”客户)的预测性能更为敏感。AUCPR 的取值范围是 0 到 1,值越接近 1 表示模型性能越好。
虽然交叉验证的指标(如交叉验证 AUCPR)是评估模型泛化能力的核心依据,但同时也要关注训练集指标。比较训练集 AUCPR 和交叉验证 AUCPR 的差距有助于判断模型是否过拟合。通常训练集指标会略好于交叉验证指标(例如,训练集 AUCPR=0.8024,交叉验证 AUCPR=0.6585,差距 0.1439),但如果差距过大,则可能意味着模型过度拟合了训练数据,在新数据上的表现可能不佳。
将这个基准模型的估计结果保存起来,命名为 gbm_default,以备后续比较:
h2omlest store gbm_default
此外,可以使用 h2omlestat cvsummary 命令查看交叉验证过程中各折性能指标的均值和标准差。较小的标准差通常意味着模型性能对数据划分不敏感,模型更稳定。
  1. 模型选择与超参数调优
基准模型的交叉验证 AUCPR 为 0.6585。为了尝试提升模型性能,进行超参数调优。GBM 有多个可调参数,为简化演示,这里仅在一个较小的搜索空间内调整 ntrees()(树的数量)和 predsamprate()(每次分裂时使用的预测变量抽样比例)这两个参数。请注意,超参数调优通常是一个需要多次尝试和迭代的过程。
h2oml gbbinclass churn $predictors, h2orseed(19) cv(3, stratify) ntrees(50 100 200) predsamprate(0.15 0.3 0.6) tune(metric(aucpr))

(这里添加了 tune(metric(aucpr)) 选项来激活调优,并指定 AUCPR 为优化目标。默认使用网格搜索穷尽所有组合。)

Stata 的输出会显示调优过程的设置(如调优方法、优化指标、搜索网格)以及最终选定的最佳超参数组合(例如,ntrees()=100, predsamprate()=0.15),该组合对应了在交叉验证中获得最高 AUCPR 的模型。输出的其余部分则展示了这个最优模型的详细参数和性能指标。
图片
通过本次调优,交叉验证 AUCPR 从基准的 0.6585 提升至 0.6739。由于本示例仅探索了超参数空间的一小部分,提升幅度可能有限;实际应用中可能需要探索更广泛的参数组合。
保存这个经过调优找到的最佳模型,命名为 gbm_tuned:
h2omlest store gbm_tuned
可以使用 h2omlestat gridsummary 命令查看调优过程的详细摘要。该命令会列出所有尝试过的超参数配置及其对应的性能(按 AUCPR 排序)。
图片
h2omlestat gridsummary // 查看网格搜索摘
如果需要基于其他性能指标比较排名前列的模型,可以使用 h2omlexplore 命令:
h2omlexplore id = 1/2 // 比较网格搜索中性能最好的前两个模型
图片
若基于某些考虑(例如,希望模型更简单,使用更少的树)想选择一个并非最优指标但性能尚可的模型,可以使用 h2omlselect 命令指定其 ID 来激活。
接下来,使用 h2omlgof 命令,更全面地比较调优后的最佳模型 gbm_tuned 和基准模型 gbm_default 在各项指标上的表现:
h2omlgof gbm_tuned gbm_default
图片
输出结果会分别展示训练集和交叉验证集的性能对比。关注交叉验证结果,可以看到调优是否提升了模型的整体性能(例如,是否有更低的对数损失、错误率、MSE,以及更高的 AUC、AUCPR、Gini 系数)。
此外,还可以通过检查变量重要性图来考虑是否可以简化模型(移除重要性低的预测变量):
h2omlgraph varimp
图片
根据变量重要性图,研究者可能会决定移除某些贡献较小的预测变量(如 onlinebackup),然后重新训练模型。
  1. 方法选择:GBM 与随机森林
假设已经按照类似步骤(拟合、调优、评估)训练了一个随机森林分类模型(使用 h2oml rfbinclass),并将其最佳调优结果存储为 rf_tuned。
现在,需要在独立的测试集(即之前分割数据时创建的 test 数据框架)上比较最终选定的 GBM 模型 (gbm_tuned) 和随机森林模型 (rf_tuned) 的性能,以做出最终的方法选择。
首先,使用 h2omlpostestframe 命令指定 test 数据框架作为后续所有后估计命令(如性能评估、预测)使用的默认数据源:
h2omlpostestframe test
(Stata 会提示:测试框架 test 现在已激活用于 h2oml 后估计)
如果当前活动的模型不是要比较的模型,需要先恢复它们:
h2omlest restore gbm_tuned // 确保 gbm_tuned 是活动模型之一
h2omlest restore rf_tuned  // 确保 rf_tuned 也是活动模型之一(如果需要分别评估)
使用 h2omlgof 命令可以方便地在测试集上并排比较两种方法的性能指标:
h2omlgof gbm_tuned rf_tuned
图片
比较结果(例如 AUCPR 或 AUC),选择在测试集上表现更优的方法。本例中,假设 GBM 的 AUCPR 更高,因此选择 GBM 作为最终模型。
还可以使用 ROC 曲线进行可视化比较(曲线越靠近左上角越好):
h2omlgraph roc, models(gbm_tuned rf_tuned)
图片
图形结果应与指标结果一致,进一步确认哪种方法性能更优。比较分类预测的另一种常用方法是查看各自的混淆矩阵 (h2omlestat confmatrix),它可以详细展示正确和错误预测的数量。
  1. 对新数据进行预测
假设 Telco 公司收集了一批新客户的数据,存储在 newchurn.dta 文件中。公司希望使用最终选定的模型 (gbm_tuned) 来预测这些新客户的流失概率。
图片
首先,加载新数据到 Stata,并将其传输到 H2O,命名为 newchurn 框架:
webuse newchurn.dta, clear // 加载新数据
_h2oframe put, into(newchurn)
恢复(如果需要)最终选定的模型 gbm_tuned:
h2omlest restore gbm_tuned
使用 h2omlpredict 命令进行预测。重要:由于之前用 h2omlpostestframe 将 test 设置为了默认的后估计框架,现在要对 newchurn 数据进行预测,必须使用 frame(newchurn) 选项明确指定目标数据框架。同时预测类别标签和每个类别的概率:
h2omlpredict churnhat, frame(newchurn) class
h2omlpredict churnprob*, frame(newchurn) probabilities
预测结果(类别 churnhat 和概率 churnprob1, churnprob2)会作为新变量存储在 H2O 的 newchurn 框架中。如果需要将这些预测结果传回 Stata,可以使用 _h2oframe get 命令。
可以查看 H2O 框架中的预测结果(例如,使用 _h2oframe list 或相关命令)。churnprob2 列显示了每个新客户被预测为“流失”(假设 "Yes" 是类别 2)的概率。churnhat 列则显示了基于某个阈值预测的最终类别("Yes" 或 "No")。这个阈值通常是基于优化某个指标(如 F1 分数)得到的,可以通过 h2omlestat threshmetric 命令找到模型对应的最优阈值(例如,之前提到的 0.2378)。
  1. 解释预测结果
机器学习模型的一个关键优势在于其预测能力,但理解模型为何做出特定预测同样重要(即可解释性)。h2oml 提供了多种工具来帮助理解模型行为。解释方法可分为:
全局可解释性: 描述模型整体的平均行为。
局部可解释性: 解释模型对单个观测样本做出特定预测的原因。
全局可解释性方法
已经看过了变量重要性图 (h2omlgraph varimp)。这里介绍另外两种全局方法:
全局代理模型 (Global surrogate model): 用一个更简单、本身可解释的模型(如单棵决策树)来近似复杂机器学习模型(如 GBM)的预测行为。
首先,确保最佳 GBM 模型 (gbm_tuned) 已恢复,并在整个数据集 (churn框架) 上生成预测类别 churnhat:
h2omlest restore gbm_tuned
h2omlpredict churnhat, class frame(churn)
切换 H2O 活动框架到 churn:
_h2oframe change churn
现在,训练一个简单的随机森林模型(设置 ntrees(1)即为单棵决策树,maxdepth(3)限制树深度)来拟合churnhat(GBM 的预测结果),以此作为 GBM 的代理模型:
h2oml rfbinclass churnhat $predictors, h2orseed(19) ntrees(1) maxdepth(3)
这个简单的决策树可以被可视化,帮助理解复杂 GBM 模型做出预测的大致规则。使用 h2omltree命令可以保存树结构为 DOT 文件,再用 Graphviz 等工具绘制:
h2omltree, dotsaving(churntree.dot, title(Surrogate tree for class "No"))
(通过分析代理树的路径和终端节点概率,可以了解哪些特征组合大致对应低/高流失风险)
图片
部分依赖图 (Partial Dependence Plot, PDP): 展示一个或多个预测变量如何平均地影响模型的预测结果(在控制其他变量后)。
确保 GBM 模型已恢复,并将 churn 数据框架设为后估计分析的活动框架(但不是作为测试集):
h2omlest restore gbm_tuned
h2omlpostestframe churn, notest
为几个重要的预测变量生成 PDP 图,并将它们合并显示:
h2omlgraph pdp contract tenuremonths onlinesecurity techsupport, combine
(观察图中曲线的趋势,可以了解变量值变化与平均流失概率预测的关系,例如,长期合同、长在网时间的客户平均流失概率更低)
图片
局部可解释性方法
SHAP (SHapley Additive exPlanations) 值: 基于博弈论,SHAP 值将单个预测与平均预测之间的差异,公平地分配给每个预测变量,量化每个变量对该特定预测的贡献(正向或负向)。
使用 h2omlgraph shapvalues 为某个特定观测(如下例中的第 19 号观测)生成 SHAP 值贡献图,通常显示最重要的前几个变量:
h2omlgraph shapvalues, obs(19) top(10) xlabel(-2.5(0.5)2)

(图中条形表示各变量对该观测预测结果的推力:蓝色增加流失可能,红色降低。结果有助于理解为何该客户被预测为会流失,例如按月合同、短在网时长是主要推高风险的因素)

图片注意:对于二元分类,SHAP 值通常在 logit 尺度上报告。它们解释的是预测 logit 值与基准 logit 值之间的差异。若要理解其对概率的影响,需结合逆 logit 变换。

使用 h2omlgraph shapsummary 生成 SHAP 摘要图(蜂群图),它将数据集中许多观测的 SHAP 值点绘制在一起,提供全局视角:
h2omlgraph shapsummary, top(4) rseed(19)
(此图能同时展示:变量的全局重要性(点分布的宽度)、变量值高低与预测贡献方向的关系(点的颜色模式)、效应的异质性(点的垂直散布情况)。
图片例如,图中可能显示合同类型变量整体重要性高,其中代表短合同的值(蓝色点)普遍对应正 SHAP 值,即增加流失风险)

通过综合运用这些模型评估和解释工具,研究者不仅能够构建出高性能的预测模型,还能深入理解模型的决策机制,从而更有信心地应用模型结果并采取相应行动。

source: https://www.stata.com/new-in-stata/machine-learning-h2o-ensemble-decision-trees/

群友可在社群中下载该文PDF版本和对应的code和代码。
关于Stata, 1.Stata19新增功能有哪些? 满满干货拿走不谢,2.Stata资料全分享,快点收藏学习,3.Stata统计功能、数据作图、学习资源,4.Stata学习的书籍和材料大放送, 以火力全开的势头 ,5.史上最全Stata绘图技巧, 女生的最爱,6.把Stata结果输出到word, excel的干货方案,7.编程语言中的函数什么鬼?Stata所有函数在此集结,8.世界范围内使用最多的500个Stata程序,9.6张图掌握Stata软件的方方面面, 还有谁, 还有谁? 10.LR检验、Wald检验、LM检验什么鬼?怎么在Stata实现,11.Stata15版新功能,你竟然没有想到,一睹为快,12."高级计量经济学及Stata应用"和"Stata十八讲"配套数据,13.数据管理的Stata程序功夫秘籍,14.非线性面板模型中内生性解决方案以及Stata命令,15.把动态面板命令讲清楚了,对Stata的ado详尽解,16.半参数估计思想和Stata操作示例,17.Stata最有用的points都在这里,无可替代的材料,18.PSM倾向匹配Stata操作详细步骤和代码,干货十足,19.随机前沿分析和包络数据分析 SFA,DEA 及Stata操作,20.福利大放送, Stata编程技巧和使用Tips大集成,21.使用Stata进行随机前沿分析的经典操作指南,22.Stata, 不可能后悔的10篇文章, 编程code和注解,23.用Stata学习Econometrics的小tips, 第二发礼炮,24.用Stata学习Econometrics的小tips, 第一发礼炮,25.广义合成控制法gsynth, Stata运行程序release,26.多重中介效应的估计与检验, Stata MP15可下载,27.输出变量的描述性统计的方案,28.2SLS第一阶段输出, 截面或面板数据及统计值都行,29.盈余管理指标的构建及其Stata实现程序, 对应解读和经典文献 ,30.Python, Stata, R软件史上最全快捷键合辑!,31.用Stata做面板数据分析, 操作代码应有尽有,32.用Stata做面板数据分析, 操作代码应有尽有,33.没有这5个Stata命令, 我真的会活不下去!,34.第一(二)卷.Stata最新且有趣的程序系列汇编,35.第三卷.Stata最新且急需的程序系列汇编,36.第四卷.Stata最新且急需的程序系列汇编
下面这些短链接文章属于合集,可以收藏起来阅读,不然以后都找不到了。

7年,计量经济圈近2000篇不重类计量文章,

可直接在公众号菜单栏搜索任何计量相关问题,

Econometrics Circle

数据系列:空间矩阵 | 工企数据 | PM2.5 | 市场化指数 |  CO2数据 |  夜间灯光 | 官员方言  | 微观数据 | 内部数据

计量系列:匹配方法 | 内生性 | 工具变量 | DID |  面板数据 | 常用TOOL | 中介调节 | 时间序列 | RDD断点 | 合成控制 | 200篇合辑 | 因果识别 | 社会网络 |  空间DID

数据处理:Stata | R | Python | 缺失值 | CHIP/ CHNS/CHARLS/CFPS/CGSS等 |

干货系列:能源环境 | 效率研究 |  空间计量 | 国际经贸 | 计量软件 | 商科研究 | 机器学习 | SSCI | CSSCI | SSCI查询 | 名家经验

计量经济圈组织了一个计量社群,有如下特征:热情互助最多、前沿趋势最多、社科资料最多、社科数据最多、科研牛人最多、海外名校最多。因此,建议积极进取和有强烈研习激情的中青年学者到社群交流探讨,始终坚信优秀是通过感染优秀而互相成就彼此的。

图片图片



Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/181021