時間序列平台中互相關的輸出不正確?嗨,JMP社區,
(W10,64位,JMP Pro 15.2.1)
我希望找出我做錯了什麼,或者我誤解了JMP如何在時間序列平台中執行互相關計算。 簡而言之,當我將Sin(x)與Cos(x)函數的互相關進行比較時,我沒有得到pi / 2(或90度)的答案,我得到了79度反而。
我正在嘗試對“時間序列”>“互相關”輸出對某些同事的含義進行簡化的說明和描述。 為此,我製作了一個簡單的表,其中包含361行(值0-360,每行是一個度數,或0.01745弧度),還有其他幾列用於計算Sin(x),Sin(x-5),Sin( x-45),Cos(x)和隨機均勻分佈(請參見附表Periodic_series.jmp)。 目的是演示使用簡單的觸發函數的互相關性,與SeriesJ數據集之類的複雜的時間相關函數相比,人們可以更容易地理解這些函數。
如果您在數據表中運行第一個腳本,則會獲得觸發函數的圖形(故意保留隨機數)。 一切看起來都應該如此。

然後,您可以運行時間序列腳本,其中Sin(x)是Y輸入,其他函數是Input List列,以便您可以進行互相關分析。 將互相關輸出轉換為數據表(請參見cross-correlation.jmp數據表),您可以繪製相關值與滯後的關係圖(在此數據表中運行第一個腳本)。

乍一看,這看起來應該是這樣:Sin(x)與Sin(x-5)的互相關的峰值在-5附近,Sin(x)與Sin(x-45)的峰值似乎在-45附近,對於Sin(x)與Cos(x)接近90。 但是,如果使用十字準線,則會看到Sin(x)和Cos(x)之間的互相關更接近80。

實際上,如果運行腳本:在數據表中獲取滯後,它將在“日誌”窗口中打印出滯後:
“ Corr與Sin(x-5)的度數滯後= [-5]”
“ Corr對Sin(x-45)的度數延遲= [-40]”
“ Corr與Cos(x)的度數滯後= [79]”
“ Corr與Rondom的均勻滯後度數= [18]”
唯一可以正確計算的是滯後時間-5。 將Sin(x)滯後-45度會導致-40滯後,而不是預期的-45。 同樣,對於Sin(x)和Cos(x),滯後為79,而我希望該值為90。 我已經嘗試了多種不同的方法,並嘗試了更多的行來查看這是否是“分辨率”問題,但我一直滯後於80。
計算要么沒有返回正確的滯後,要么我丟失了一些東西。我想我缺少了一些東西,但是我不確定它是什麼。 我遵循了其他帖子中的一些建議,並嘗試在JMP幫助中對其進行閱讀這裡,但是我找不到用於互相關計算的任何細節,這可以解釋為什麼Sin(x)的trig函數與Cos(x)的滯後時間不超過90。
任何想法/反饋對此表示讚賞。
謝謝!,
DS
分析工具數據表其他回复:時間序列平台中互相關的輸出不正確?我相信這是由於樣本量有限。 對於CCF上的連續點,樣本大小相差1。 我又添加了3600行,再次進行了繪製,並且峰值更接近90,峰值處的幅度也更接近1。

回复:時間序列平台中互相關的輸出不正確?你好@peng_liu ,
感謝您的反饋。 我嘗試了更多的行,但沒有嘗試太多。 儘管我了解有限的樣本量可能會如何影響計算,但是我對它會產生如此大的影響感到有些驚訝。 我可以想像會有一個很小的差異,有限集較小的情況可能是88或89,但是要減去12似乎是很大的。 我想我擔心的是現實世界中可能只有有限的時間序列數據集的情況。
順便說一句,我還注意到了我的Deg列中的一個錯誤,該錯誤未正確說明添加更多行。 公式應為:

這樣,度數據將始終在-180到180之間運行(嗯,由於增量大小,一端或另一端的差異很小)。
例如,現實世界中有限的數據集,也許您有一台僅在十五分鐘的時間內每秒收集一次數據的設備。 只有900個數據點。 根據這種情況,可以得出結論,兩個信號的滯後時間為78,而實際上為90。 得出信號延遲為78的結論是不正確的,並可能導致某人開始對數據進行錯誤的分析。 無論
在這種情況下,我們知道真正的滯後是先驗的,但是在實際情況下,這並不總是已知的。 我可以想像數據集,其中在不同位置測量同一事件,並且需要確定信號的滯後,但是數據集非常有限。 根據互相關函數的工作方式,這可能會導致錯誤的結論。
有沒有辦法對此進行補償或考慮有限數據集的計算? 您是否可以換出其他一些功能列並對滯後量進行模擬,以便獲得一定的滯後置信區間? 那是什麼樣的功能欄?
如果我使用正確的公式重新進行評估以允許任意數量的行,那麼即使從滯後值轉換為度值,我仍然沒有得到正確的答案。 例如,對於3601行(值從0到3600),我得到的滯後圖如下:

當我運行Get lags腳本時-但現在查看將滯後轉換回度數的列(基於原始表中的3601行,下面的公式),我得到:

“ Corr與Sin(x-5)的度數延遲= [-4.89863926687031]”
“ Corr對Sin(x-5)的滯後滯後= [-49]”
“ Corr與Sin(x-45)的度數延遲= [-40.2888086642599]”
“ Corr與Sin(x-45)的延遲= [-403]的延遲”
“ Corr與Cos(x)的度數滯後= [78.4782004998612]”
“ Corr vs. Cos(x)滯後滯後= [785]”
下面是Sin(x)與Cos(x)的圖,該圖被900行和785行滯後。 可以看出,785未處於正確的滯後值,該滯後值出現在第900行(紅色曲線)上。

因此,我仍然沒有獲得正確的價值觀。 附加了新的數據表。 我仍然有預感,我做的事情不正確–也許某個地方的公式錯誤? 我不知道為什麼我沒有得到正確的價值觀。
謝謝您的幫助!,
DS
回复:時間序列平台中互相關的輸出不正確?第二組數據中有問題。 第二個數據中的Sin(x)如下所示:

這是我的3601行的樣子:

這就解釋了為什麼您的SinX和CosX CCF不會更改。
在這裡重要的樣本數量不是這裡的觀察數,而是周期數。 在原始數據中,只有一個週期。 要計算CCF,需要移位序列,這將在一個序列中創建缺失值,這將導致樣本均值大幅波動。 如果有很多周期,則平均值將保持接近零,即真實值。
如果在真實情況下只有一個數據周期,我相信CCF會產生誤導,但這是一個數據問題,無法解決。
回复:時間序列平台中互相關的輸出不正確?你好@peng_liu ,
感謝您的進一步解釋。 我現在知道問題是什麼,這是有道理的。 如果在“窗口”內包含更多周期,則可以確認獲得了正確的值。
現在為真正的難題:
我的生產同事希望找到他們的生產歷史系統(記錄爐溫,傳送帶速度,流速等信息)與對材料進行質量控制測量之間的時間差。 可以按任何給定的時間間隔,15分鐘,30分鐘,4小時等從系統導出生產數據。 我們每4小時就有一個相當定期的質量控制測試時間表。 據信,如果可以找到正確的時間滯後,則可以將生產歷史數據與QC數據相關。 例如,據信生產中的干燥機溫度與QC測試相關,但QC測試可能需要120分鐘才能完成後物料已經通過乾燥機。 從實驗室規模的研究中我們知道,某些處理步驟(如烤箱溫度等值)與某些測試結果相關,但是事實證明,在生產數據中發現這一點比在實驗室中更具挑戰性。
我嘗試使用時間序列中的互相關來查看它是否可以在數據中找到任何類型的滯後,並手動創建多個滯後列,並使用多變量平台來查找滯後列和QC數據之間的相關性,但我什麼也沒看到。 自然地,過程中的任何相關性都可能從噪聲中消失,但是另一種選擇是,時間序列和多元平台都不是試圖確定正確時間滯後的正確平台。
非常感謝您的反饋和想法/輸入,它非常有幫助。
謝謝!,
DS