两个世界碰撞:使用ML处理复杂的调查数据


14

我似乎很容易遇到问题,但是好几个星期以来我一直没有找到合适的解决方案。

我有很多民意测验/调查数据(成千上万的受访者,说每个数据集为5万),这些数据我希望将其称为复杂设计的调查,包括权重,分层,特定路由等。对于每个受访者,都有数百个变量,例如人口统计(年龄,地区...),然后是二进制变量(最多是分类变量)。

我更多地来自计算机科学/机器学习背景,我必须学习很多有关经典调查统计数据和方法的知识。现在,我想将经典机器学习应用于这些数据(例如,预测受访者子集的某些缺失值-基本上是分类任务)。但是,等等,我找不到合适的方法来做到这一点。我应该如何合并这些层次,权重或路由(例如:如果问题1回答了选项2,请问问题3,否则跳过它)?

简单地应用我的模型(树,逻辑回归,SVM,XGBoost ...)似乎很危险(并且在大多数情况下它们会失败),因为它们通常假定数据来自简单的随机样本或iid。

许多方法至少都具有权重,但并没有太大帮助。此外,不清楚如何将不平衡的类和调查定义所给出的权重结合在一起,而不是讨论那些分层的东西。此外,结果模型应进行良好的校准-预测的分布应与原始模型非常接近。预测的良好性能并不是这里的唯一标准。我还更改了优化指标,以考虑到这一点(例如预测分布与真实分布的距离 +准确度/ MCC),并且在某些情况下有所帮助,为什么会破坏其他性能。

有什么规范的方法可以解决这个问题吗?对我来说,这似乎是一个严重未被重视的领域。IMO的许多调查都可以从ML的功能中受益,但没有消息来源。像这些一样,是两个彼此不相互作用的世界。

到目前为止,我发现了什么:

相关的简历问题,但没有一个包含如何解决这个问题的可用答案(要么为否,不是我所要的,要么提出具有误导性的建议):


您能否定义“ 大多数情况下失败 ”是什么意思?在当前环境下,您如何判断模型的成功?
usεr11852恢复单胞菌说,

它们甚至与原始发行版都不太接近,或者运行它们似乎是没有意义的(例如,当包含路由时)。
kotrfa '16

Answers:


3

更新:关于具有复杂调查数据的“现代” ML方法的工作还很少,但是最新一期的《统计科学》上有几篇评论文章。尤其是参见Breidt and Opsomer(2017),“模型辅助现代预测技术的调查估计”

此外,根据您提到的Toth和Eltinge论文,现在有一个R包rpm实施CART来处理复杂的调查数据。)

现在,我想对这些数据应用经典机器学习(例如,预测受访者子集的某些缺失值-基本上是分类任务)。

我对你的目标还不完全清楚。您是否主要是为了估算缺失的观测值,只是为了提供一个“完整的”数据集来提供给其他人?还是您已经拥有完整的数据,并且想要建立一个模型来预测/分类新观测值的响应?您是否对模型有特定的问题要回答,或者您是在更广泛的范围内进行数据挖掘?

无论哪种情况,复杂样本调查/调查加权逻辑回归都是一种合理且易于理解的方法。对于2个以上的类别,也有序数回归。这些将说明地层和调查权重。您是否需要比这更高级的ML方法?

例如,您可以svyglm在R的survey包装中使用。即使您不使用R,软件包的作者Thomas Lumley也写了一本有用的书“复杂的调查:使用R进行分析的指南”,其中涵盖了逻辑回归和调查的缺失数据。

(对于插补,我希望您已经熟悉有关丢失数据的一般问题。如果没有,请研究多重插补之类的方法,以帮助您说明插补步骤如何影响您的估计/预测。)

问题路由确实是另一个问题。我不确定如何最好地处理它。对于插补,也许您可​​以一次在路由中插补一个“步骤”。例如,使用全球模型,首先估算每个人对“您有多少个孩子?”的回答。然后对相关子群体(有0个以上孩子的人)运行新模型,以估算下一步“您的孩子几岁?”

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.