计算时间序列中两个变量之间的滚动相关性你好
我有一个数据集,该数据集采用时间序列的形式,每天都有数据的平均值(第一列是日期)。 我目前正在查看与数据集中的一个特定变量(称为X列)相关的内容。 我想检查相关性是否与时间相关,例如,是否存在具有OK相关性的时段以及其他具有无/低相关性的时段(在不同时段“打开”和“关闭”)。
我最初的想法是计算X列与其他列之间的移动/滚动相关性,例如最近7天,上个月等。 我的问题是双重的:
1)这是否是检查此问题的好方法,还是我不知道JMP中的分析内置功能?
2)如果要计算时间序列的“滚动相关性”,我将如何在列公式中对此进行编程?
预先:感谢您对新手的帮助!
詹斯
分析工具数据表脚本编写回复:计算时间序列中两个变量之间的滚动相关性我建议您研究一下JMP中可用的时间序列分析。您可以在JMP文档库中找到文档
帮助=> JMP文档库
如果您想继续进行建议的滚动相关性,则可以使用以下公式进行计算。本示例使用JMP示例数据库中的Big Class数据表
Help =>样本数据库
If( Row() >= 7,
y = :height[Index( Row() - 6, Row() )];
x = :weight[Index( Row() - 6, Row() )];
lin = Linear Regression( y`, x` );
Sqrt( lin[3]["RSquare"] );
)

附带的是带有应用公式的样本数据表
回复:计算时间序列中两个变量之间的滚动相关性你好@JensD ,
我完全同意@txnelson ,您应该查看时间序列平台,它非常适合查看两个信号之间的时间数据的互相关。 我已经用了很多时间来比较生产数据信号和质量控制数据,以发现时间滞后。
在运行该平台时,将其中一列作为Y,时间序列,将另一列作为输入列表(并选择“自相关滞后”约为数据表中行数的1/2)。 然后,您需要在“传递函数分析”旁边的热键下运行“互相关”实用程序。
还有,建立什么@txnelson为他的代码写的,您甚至可以创建一个表变量(例如rowlag)并为其赋予一个值,并将他的列公式修改为:
If( Row() >= :rowlag,
y = :height[Index(Row()-:rowlag+1, Row())];
y = :weight[Index(Row()-:rowlag+1, Row())];
lin = Linear Regression(y`, x`);
Sqrt(lin[3]["RSquare"]);
)
这样,每次更改数据表中的行滞后值时,它将使用相关值更新该列,因此您可以轻松测试不同的滞后而无需每次更改列公式。
祝你好运!,
DS
回复:计算时间序列中两个变量之间的滚动相关性谢谢你俩, @txnelson和@DiedrichSchmidt 。
我将尝试两种选择,以便我能看到不同之处。
詹斯