【问题标题】:How to process panel data for use in a recurrent neural network (RNN)如何处理用于循环神经网络 (RNN) 的面板数据
【发布时间】:2017-02-21 19:47:12
【问题描述】:

我一直在对循环神经网络进行一些研究,但我无法理解它们是否以及如何用于分析面板数据(即在不同时间段为多个受试者捕获的横截面数据——例如,请参阅下面的示例数据)。我见过的大多数 RNN 示例都与文本序列有关,而不是真正的面板数据,因此我不确定它们是否适用于此类数据。

样本数据:

ID    TIME    Y    X1    X2    X3
1     1       5     3     0    10
1     2       5     2     2    6
1     3       6     6     3    11
2     1       2     2     7    2
2     2       3     3     1    19
2     3       3     8     6    1
3     1       7     0     2    0

如果我想在给定协变量 X1、X2 和 X3(以​​及它们在先前时间段的值)的情况下预测特定时间的 Y,这种序列可以通过递归神经网络进行评估吗?如果是这样,您对如何将此类数据转换为可传递给 RNN 的特征向量和匹配标签有任何资源或想法(我使用的是 Python,但对其他实现持开放态度)。

【问题讨论】:

  • 您的问题找到答案了吗?
  • @edyvedy13 您是否找到任何可用于面板数据的实现?

标签: python recurrent-neural-network panel-data


【解决方案1】:

我没有理由使用面板数据训练神经网络。神经网络所做的是将一组值映射到具有非线性关系的另一组值。在时间序列中,特定实例的值取决于先前出现的值。示例:您对字母的发音可能会因您之前发音的字母而异。对于时间序列预测,循环神经网络优于前馈神经网络。这张图片说明了我们如何使用常规前馈网络训练时间序列。 Image

在 RNN 中,我们可以在网络的内部状态中创建反馈循环,这就是 RNN 更擅长预测时间序列的原因。 在您的示例数据中要考虑一件事:x1、x2、x3 的值是否对 y1 有影响,反之亦然?如果没有,那么您可以训练您的模型,因为 x1、x2、x3、y4 是相同类型的数据,即使用相同的网络独立训练它们(取决于实验)。如果您的目标是预测一个值,其中一个值对另一个值有影响,即相关,您可以将它们转换为一维数据,其中单个时间框架包含样本类型的所有变体。另一种方法可能是训练四个神经网络,其中前三个使用 RNN 映射它们的时间序列,最后一个是前馈网络,它从 2 个时间序列输出中获取 2 个输入并映射到第 3 个时间序列输出,并对所有可能的组合执行此操作。 (仍有待实验,因为我们无法在没有实验的情况下准确预测神经网络模型的性能)

阅读建议:阅读“格兰杰因果关系”,可能对你有所帮助。

【讨论】:

  • 感谢您的回复。我不确定我得到的部分是传统面板数据与时间序列不同,因为它同时具有横截面和时间序列分量。我知道您可以使用 RNN 来预测时间序列中的下一个值(例如,考虑到过去 180 天 Google 的股票价格,明天 Google 的股票价格是多少——如果您有的话,您可能会有一些 Granger 因果关系元素其他有因果关系的系列)。
  • 但是对于上面既有主题(ID 列)和时间序列(TIME 列)的真实面板数据的情况又如何呢?您拥有此类数据的情况可能是在一项健康研究中,您有 100 名患者,您在 12 个月内跟踪各种健康测量。您将有一个时间序列元素(在过去 6 个月的每个测量中都有高血压的患者可能在第 7 个月有高血压),但也有一个横截面元素(患者 1 与患者 2 不同)比患者 3 等)。
  • 在这个例子中,您能否使用 RNN 来预测每个患者在第 13 个月的多个变量的状态,或者这在 RNN 架构中是不可能的? (传统上你会使用固定效应或随机效应回归模型来做我所说的,但我认为机器学习的现代应用程序可以处理这类问题,只是很难找到一个例子) .
【解决方案2】:

我也在看这个问题,到目前为止我只找到了这篇似乎可以解决这个问题的论文。

张量递归神经网络 纵向数据分析 白明远、张博彦、高俊斌 2017

希望对你有帮助

【讨论】:

  • 作者不会分享他们用于产生论文“经验”结果的代码。
【解决方案3】:

请看这个post

它回答了您对神经网络和面板数据的担忧。

【讨论】:

    【解决方案4】:

    TSAI(基于 fastai)https://timeseriesai.github.io/tsai/data.preparation.html#SlidingWindowPanel 提供了可能对您有用的面板数据准备功能。

    仅供参考:它有一些很棒的 SOTA 算法用于时间序列分类和回归。

    【讨论】:

      猜你喜欢
      • 2017-05-14
      • 2016-05-07
      • 2017-02-19
      • 2023-03-16
      • 1970-01-01
      • 2011-07-24
      • 2017-06-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多