我一直在对递归神经网络进行一些研究,但我无法理解它们是否以及如何用于分析面板数据(意味着在几个主题的不同时间段捕获的横截面数据 - 例如,参见下面的示例数据。我看到的大多数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,但我对其他实现开放)。
答案 0 :(得分:1)
我也在研究这个问题,到目前为止,我只找到了似乎可以解决这个问题的论文。
张量递归神经网络 纵向数据分析 白明远,张伯彦,高俊斌 2017
我希望这对您有帮助
答案 1 :(得分:0)
我发现没有理由能够使用面板数据训练神经网络。神经网络的作用是将一组值映射到具有非线性关系的其他值集。在时间序列中,特定实例的值取决于先前出现的值。示例:您的发音可能会根据您之前发出的字母而有所不同。对于时间序列预测,递归神经网络优于前馈神经网络。我们如何使用常规前馈网络训练时间序列如下图所示。 Image
在RNN中,我们可以在网络的内部状态中创建反馈回路,这就是RNN更好地预测时间序列的原因。 在您的示例数据中要考虑一件事:x1,x2,x3的值是否对y1有影响,反之亦然?如果它没有那么你可以训练你的模型,因为x1,x2,x3,y4是相同类型的数据,即使用相同的网络独立训练它们(需要进行实验)。如果你的目标是预测一个值对另一个有影响的值,即你可以将它们转换为一维数据,其中单个时间范围包含样本类型的所有变体。另一种方法可能是训练四个神经网络,其中前三个使用RNN映射其时间序列,最后一个是前馈网络,其从2个时间序列输出获取2个输入并映射到第3个时间序列输出并对所有可能的组合执行此操作。 (仍然需要进行实验,因为我们可以在没有实验的情况下确定地预测神经网络模型的性能)
阅读建议:了解" Granger因果关系",可能会对您有所帮助。
答案 2 :(得分:0)
请看这个post。
它回答了您对神经网络和面板数据的担忧。
答案 3 :(得分:0)
TSAI(基于 fastai)https://timeseriesai.github.io/tsai/data.preparation.html#SlidingWindowPanel 提供可能对您有用的面板数据准备功能。
仅供参考:它有一些很棒的 SOTA 算法用于时间序列分类和回归。