計算時間序列中兩個變量之間的滾動相關性你好
我有一個數據集,該數據集採用時間序列的形式,具有每天的數據平均值(第一列是日期)。 我目前正在研究與數據集中的一個特定變量(稱為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 。
我將嘗試兩種選擇,以便我能看到不同之處。
詹斯