計算時間序列中兩個變量之間的滾動相關性你好
我有一個數據集,其形式為時間序列,其中包含每日數據平均值(第一列是日期)。 我目前正在研究與數據集中的一個特定變量(稱為 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"] );
)

附件是帶有應用公式的示例數據表