将机器学习技术应用于面板数据

机器算法验证 机器学习 面板数据 监督学习 循环神经网络
2022-03-10 01:23:35

我有一个面板数据,我在其中观察了 1500 家公司,许多人在这些公司工作了多个时期。我在个人(例如种族、年龄、教育)和公司层面(例如公司年龄、研发投资、广告支出、行业)都有解释变量。所以有不同类型的解释变量,即连续的、分类的、二元的。在这个数据集中,同一个人可能同时为不止一家公司工作(假设其中一些是顾问)。我的因变量是每年的销售额。

通过使用这些数据,我想对因变量进行预测,并想测试每个解释变量的重要性。有谁知道哪些模型更合适,我在哪里可以找到关于这个主题的可靠材料?我正在考虑将 RNN 应用于面板数据(如何做?),但也对其他建议持开放态度。

我知道 ML 和计量经济学仍然没有就因果关系相互交谈,但你知道最近有什么与这个问题相关的论文/发展吗?

2个回答

我不相信我可以提供您正在寻找的东西,但第一步是使用重复的 individual_id 作为变量,以确保每个人都在一个分区中。例如,如果您使用交叉折叠验证,那么一个人应该只出现在 1 折叠中,而不是分散在其他折叠中。

至于要尝试什么机器学习算法——这最终取决于数据。不过,根据我的经验,我认为最好的结果将来自某种增强树,例如 LightGBM 或 xGBoost。这将导致您决定如何编码分类变量,如果您使用的是 python,我建议在 python 中使用 category_encoders 库。

我确信围绕 RNN 有一些有趣和新颖的想法,但老实说,我认为这个问题不适合这种类型的算法。对我来说,这听起来像是一个经典的回归问题。

向 Josh 补充说,使用一些基于树的算法在这些特征如何影响您的销售方面缺乏一些清晰的透明度(就像您在经典的线性回归框架中一样,它被称为白盒模型,因为这些系数很容易解释)。

您可以从这些基于树的算法中获得相对重要性,这些算法基本上告诉您各个特征对于构建树的重要性,并且输出是排名。但是通过这个排名,您无法了解 x 的增加对 y 的影响程度。

那里有两种算法,我知道它们存在,但到目前为止我从未使用过:

  1. 因果森林就像一个基于树的算法,但包含了因果推理的思想,可以在这里找到:https ://lost-stats.github.io/Machine_Learning/causal_forest.html

  2. Google 的 What-If Tool (WIT) 旨在遵循反事实的想法,它可以回答以下问题:如果......

  3. 您可以使用预测构建自己的反事实。训练模型并获得对各个特征 (cp) 不同值的预测,并查看输出如何变化。像这样,即使使用神经网络或增强树等黑盒模型,您也可以了解哪些特征对 y 有多大影响。

最后我还想提一下,使用 scikit-learn 可以返回 PDP(部分依赖图)和 ICE(个体条件期望)图,这可以让您了解特征与目标之间的关系。