计算时间序列中两个变量之间的滚动相关性你好
我有一个数据集,其形式为时间序列,其中包含每日数据平均值(第一列是日期)。 我目前正在研究与数据集中的一个特定变量(称为 X 列)相关的内容。 我想检查相关性是否与时间相关,例如,是否存在具有良好相关性的时段和具有无/低相关性的其他时段(在不同时段“打开”和关闭)。
我最初的想法是计算 X 列和其他列之间的移动/滚动相关性,例如过去 7 天、上个月……)。 我的问题有两个:
1)这是检查这一点的好方法吗?或者我不知道 JMP 中是否有内置分析?
2)如果我要计算时间序列的“滚动相关性”,我将如何在列公式中对其进行编程?
提前:感谢您对新手的帮助!
延斯
高级统计建模回复:计算时间序列中两个变量之间的滚动相关性谢谢你们俩, @tx尼尔森和@SDF1 。
我会尝试两种选择,以便看到差异。
延斯
回复:计算时间序列中两个变量之间的滚动相关性你好@JensD ,
我完全同意@tx尼尔森,您应该查看时间序列平台,它非常适合查看两个信号之间时间数据的互相关性。 我经常使用它来比较生产数据信号与质量控制数据,以找出时间滞后。
当您运行该平台时,您将其中一列作为 Y,时间序列,另一列作为输入列表(并选择自相关滞后约为数据表中行数的 1/2)。 然后,您需要在传递函数分析旁边的热按钮下运行互相关实用程序。
另外,构建什么@tx尼尔森为他的代码编写,您甚至可以创建一个表变量(例如 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
回复:计算时间序列中两个变量之间的滚动相关性我建议您查看 JMP 中提供的时间序列分析。您可以在 JMP 文档库中找到文档
帮助=>JMP 文档库
如果您想继续执行建议的滚动相关性,这里有一个可用于计算的公式。此示例使用 JMP 示例数据库中的 Big Class 数据表
帮助=>示例数据库
If( Row() >= 7,
y = :height[Index( Row() - 6, Row() )];
x = :weight[Index( Row() - 6, Row() )];
lin = Linear Regression( y`, x` );
Sqrt( lin[3]["RSquare"] );
)

附件是带有应用公式的示例数据表