時間序列平台中互相關輸出不正確?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 輸入,其他函數是輸入列表列,以便您可以進行互相關分析。 將互相關輸出轉換為數據表(請參閱 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) 的三角函數與 Cos(x) 沒有 90 的滯後。
對此的任何想法/反饋都非常感謝。
謝謝!,
DS
高級統計建模質量和工藝工程回复:時間序列平台中互相關的輸出不正確?你好@peng_liu ,
感謝您的額外建議。 我會嘗試更平滑,看看這是否可以幫助找到合理的時間延遲。 希望我能找到有用的東西。
我擔心的是,要么數據在時間上存在噪聲並且相關性丟失,要么正如您所提到的,採樣/測試方案消除了任何相關性。
我非常感謝您的反饋和意見。
謝謝!,
迪德里希
回复:時間序列平台中互相關的輸出不正確?一些想法...
可能沒有確切的滯後,並且您的數據有噪音。 例如,有效滯後在一定範圍內是隨機的。 在計算 CCF 之前,嘗試使用簡單移動平均線來平滑您的序列。 您可以在時間序列平台中使用簡單移動平均線,或在列公式中使用“移動平均線...”。
由於您的採樣方案,相關信號可能會被跳過。 那麼數據中就沒有太多的信息可供您查找滯後。
回复:時間序列平台中互相關的輸出不正確?你好@peng_liu ,
感謝您的進一步解釋。 我現在明白問題是什麼並且這是有道理的。 如果我在時間“窗口”內包含更多周期,我可以確認我得到了正確的值。
現在來說說真正的難題:
我的生產同事希望找到生產歷史系統的數據(它記錄烤箱溫度、傳送帶速度、流量等)和材料的質量控制測量之間的時間滯後。 生產數據可以以任何給定的間隔(15 分鐘、30 分鐘、4 小時等)從系統導出。 我們有一個相當定期的 QC 測試計劃,每 4 小時進行一次。 據信,如果能夠找到正確的時間滯後,則生產歷史數據可以與質量控制數據相關聯。 例如,生產中的干燥機溫度被認為與 QC 測試相關,但 QC 測試可能需要 120 分鐘後該材料已經通過乾燥機。 我們從實驗室規模的研究中知道,某些加工步驟(例如烤箱溫度等值)與某些測試結果相關,但事實證明,在生產數據中發現這一點比在實驗室中更具挑戰性。
我嘗試使用時間序列中的互相關來查看是否可以在數據中找到任何類型的滯後,以及手動創建多個滯後列並使用多元平台來查找滯後列和 QC 數據之間的相關性,但我什麼也沒看到。 當然,任何相關性都可能會從過程中的噪聲中消失,但另一種選擇是時間序列和多元平台都不是嘗試確定正確時間滯後的正確平台。
非常感謝您的反饋和想法/意見,這非常有幫助。
謝謝!,
DS
回复:時間序列平台中互相關的輸出不正確?第二組數據有問題。 第二個數據中的 Sin(x) 如下所示:

這就是我的 3601 行的樣子:

這就解釋了為什麼您的 SinX 和 CosX CCF 不會改變。
這裡重要的樣本量不是觀察的數量,而是循環的數量。 原始數據中,只有一個週期。 為了計算CCF,需要移動序列,這會在一個序列中產生缺失值,從而導致樣本均值劇烈波動。 如果有很多周期,平均值將保持接近零(真實值)。
如果在真實情況下,只有一個週期的數據,我相信CCF會產生誤導,但這是一個數據問題,沒有辦法解決。
回复:時間序列平台中互相關的輸出不正確?你好@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 vs. Sin(x-5) 滯後 = [-49]”
“Corr 與 Sin(x-45) 滯後(以度為單位)= [-40.2888086642599]”
“Corr vs. Sin(x-45) 滯後 = [-403]”
“Corr 與 Cos(x) 滯後(以度為單位)= [78.4782004998612]”
“Corr 與 Cos(x) 滯後 = [785]”
下面是 Sin(x) 與 Cos(x) 的圖,滯後 900 行和 785 行。 可以看出,785 沒有處於正確的滯後值,這發生在第 900 行(紅色曲線)。

所以,我仍然沒有得到正確的價值觀。 附上新的數據表。 我仍然有一種預感,我沒有做正確的事情——也許某個地方的公式是錯誤的? 我不明白為什麼我沒有得到正確的價值觀。
謝謝您的幫助!,
DS
回复:時間序列平台中互相關的輸出不正確?我認為這是由於樣本量有限。 對於 CCF 上的連續點,樣本大小相差 1。 我又添加了 3600 行,再次繪製了圖,峰值更接近 90,峰值處的振幅也更接近 1。
