科學家和工程師使用在線傳感器和測量設備來監視幾乎無限的過程屬性。在分析歷史學家和數據記錄器捕獲的時間序列數據時,經常會出現兩個問題:“如何計算移動平均值?”和一個相關的問題:“時間序列數據中出現間隔後,如何標記行?”
JMP 可以很容易地做到這兩者,但是答案需要對不太常用的列公式函數有一點了解。
計算時間採樣數據的移動平均值通常很方便。這既減輕了數據流中的噪聲,又使我們在特定時間點獲得了平均測量值。例如,在圖4的數據表中,我有一個在線pH計,它每秒記錄一次測量值,但是我的濁度計只能每10秒記錄一次測量值。我可以將10秒的濁度讀數與相應的pH值進行匹配,但是濁度讀數實際上代表了儀器所見的前10秒,我想將其與類似的10秒pH分辨率進行比較。為此,我將需要計算過去10秒鐘的pH測量的移動平均值。在圖5表格下方的Graph Builder圖表中比較了1秒的分辨率和10秒的移動平均值。
當我們使用移動平均線時出現第二個問題。我們對移動平均值的一個假設是,每個度量均等間隔。這使移動平均線在所有時間間隔內均勻加權。但是定期(在現實生活中),數據流中的間隔很小,並且需要識別出比有意義的時間長度更長的間隔,以提醒我們這一假設已破裂。這些差距是由各種問題引起的,例如短路,間歇性掉線或只是網絡連接設備中的數據丟失。
可以使用列公式編輯器中的“求和”功能一步一步計算移動平均值。
文字上,圖1中的公式為Summation(i = 0,9,Lag(:pH,i))/ 10
求和函數(圖1)就像一個迭代循環。在這種情況下,“ i”在0到9之間時,它將計算從右邊的參數獲取的值的總和。右側的參數計算為Lag(:pH,0),Lag(:pH,1),Lag(:pH,2),Lag(:pH,3)…Lag(:pH,9)。在這種情況下,Lag(:pH,0)是pH列當前行的值,而Lag(:pH,9)是當前行上方9行的值(總共10行)。
第二個問題有些棘手,將其分解為兩個步驟會更容易。在第一步中,我們將創建一個公式列以標記較大的時間間隔,然後在第二步中,將添加第二個公式以標記時間間隔之後的行範圍。
第一步是創建一個名為“ Time Gap”的新列,然後添加一個公式以在間隔超過5秒時標記間隔,如下所示:
:時間戳-滯後(:時間戳,1)> 5
或者,如果您想稍微提高一點,可以使用如下所示的Date Difference函數:
日期差(滯後(:時間戳,1),:時間戳,“秒”)> 5
在這種情況下,我想知道什麼時候出現5秒或更長時間的時間間隔?在其他項目中,我真的只需要知道何時出現更長的差距。
日期差異功能計算兩個日期值之間的差異,並以可以指定的單位(例如,小時,分鐘,天,週,年)返回結果。在兩種情況下,如果差異大於30,則該公式的值為true表示“ 1”,值為false表示為“ 0”。
在第二步中,我們創建另一個新列名稱“ Gap Flag”,並添加一個公式以標記在時間間隙列中檢測到的間隙之後的10行。
如文本所示,圖2中的公式為Summation(i = 0,9,Lag(:Time Gap,i))> 0
同樣,求和函數(圖2)的工作就像一個迭代循環。這次,它與條件參數結合在一起。當“ i”介於0到9之間時,如果“時間間隔”列中的值之和大於0,則該公式的值為true表示為“ 1”,值為false表示為“ 0”。如果前30行的“間隔時間”列中至少有一個“ 1”,則此標誌列中的值也為1。
只需進行一些小調整,我們就可以使此公式設置行製造者的顏色。要使用此公式,請新建一列並將數據類型設置為“行狀態”。
If(求和(i = 0,9,Lag(:Time Gap,i))> 0,
行狀態()=顏色狀態(“紅色”),
行狀態()=顏色狀態(“藍色”)
);
求和功能是JMP工具箱中的重要工具,它可以節省大量時間和精力。有關語法和求和功能使用的更多信息,請參見《使用JMP》,《腳本指南》書籍和《腳本索引》,所有這些都可以在JMP的“幫助”菜單下找到。