如何处理面板数据以用于递归神经网络(RNN)

use*_*076 8 python panel-data recurrent-neural-network

我一直在对递归神经网络进行一些研究,但我无法理解它们是否以及如何用于分析面板数据(意味着在几个主题的不同时间段捕获的横截面数据 - 参见样本数据我见过的大多数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
Run Code Online (Sandbox Code Playgroud)

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

小智 -3

我发现没有理由能够使用面板数据训练神经网络。神经网络的作用是将一组值与具有非线性关系的另一组值进行映射。在时间序列中,特定实例的值取决于先前出现的值。例如:您对某个字母的发音可能会有所不同,具体取决于您之前发音的字母。对于时间序列预测,循环神经网络优于前馈神经网络。下图说明了我们如何使用常规前馈网络训练时间序列。图像

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

阅读建议:阅读《格兰杰因果关系》,可能对你有一点帮助。

  • 在本例中,您能否使用 RNN 来预测每个患者第 13 个月的多个变量的状态,或者 RNN 架构不可能做到这一点?(传统上,您会使用固定效应或随机效应回归模型来完成我正在谈论的事情,但我认为机器学习的现代应用程序可以处理此类问题,只是很难找到一个例子) 。 (3认同)