| 揚聲器 |
抄本 |
| 比爾·沃利 |
大家好,我是JMP系統工程師Bill Worley。我在JMP工作了近七年。今天我們來聊聊 |
| |
光譜資料預處理,用於分析。之所以稱之為“前傳”,是因為我已經做過關於如何在 JMP 中分析光譜數據的演講,但預處理是重要的第一步,我會向你解釋其中的原因。讓我們開始吧。 |
| |
那我們來稍微談談摘要。光譜資料的預處理是準備資料(任何資料)進行分析的重要的第一步。 |
| |
我們可以跟你談談…我們會回顧一下演示,並演示 JMP 中的標準常態變數和 Savitzky-Golay 平滑工具。這些預處理工具在整個過程中都相當標準。 |
| |
化學界、化學工業以及任何從事光譜學和光譜數據分析的人都知道… |
| |
更多關於標準常態變數 Savitzky-Golay 及其應用的資訊。因此,這又是幫助您根據原始光譜資料建立預測模型的重要第一步。 |
| |
因此,在了解一些背景知識後,光譜數據可能會非常混亂。預處理用於在建立這些預測模型或任何你可能想要建立的預測模型之前,進行平滑、過濾和基線校正。 Savitzky-Golay 濾波與標準常態變量 |
| |
是一些工具…它們在 JMP 中使用。 Savitzky-Golay 是 Ian Cox 開發的插件,所以…感謝 Ian 的貢獻。標準常態變數需要… |
| |
某種公式,我們會教你如何將其建構到JMP中。最後,圖形產生器也是一個可視化光譜資料的寶貴工具,可以作為平滑資料的替代平台。 |
| |
但當我們進一步討論時,我們會再次討論這個問題。 |
| |
我們為什麼要這樣做?為什麼要進行任何預處理?嗯,如果你看一下,首先,最上面的光譜,或者光譜組,那是100個光譜的原始數據,你無法真正區分它們之間的差異。 |
| |
你知道,100%澱粉或100%麩質的混合。你可以看到一些差別,但你就是…你分不清哪個是哪個。嗯, |
| |
接下來我們進行 Savitzky-Golay 平滑和濾波,然後取一階導數,這樣就能得到一組更清晰的光譜, |
| |
分組很好,但仍然沒有完全達到你想要的效果。最後,在進行標準的常態變數平滑之後,光譜會變得更加清晰,更容易看出峰值的位置。 |
| |
你可以看到不同光譜組的差異。所以,紅線、灰線、藍線每條線都有20張光譜,這肯定清晰得多。你可以看到不同混合物的峰值位置。 |
| |
好的,Savitzky-Golay 濾波是一種數位濾波器,作用於光譜數據,用於平滑處理。它的優點在於不會改變整個光譜本身,包括峰值位置等等。所以它是一個很好的工具。 |
| |
它使用卷積進行平滑,並且基於線性最小二乘公式。 |
| |
一階和二階導數也是...您也可以從平滑訊號中馴服它們。 |
| |
還可以過濾掉光譜兩端不重要的資料。如果你遇到這種情況,一開始有一些不重要的數據,它只會在你繼續前進時給你帶來麻煩,另一端也是如此。 |
| |
Graph Builder 讓您執行一些使用 Savitzky-Golay 無法執行的內部平滑或內部過濾。 |
| |
插件。因此,您可以將本機資料篩選器與圖形產生器結合使用,並進一步定義感興趣的領域。 |
| |
所以, |
| |
我們繼續吧。 Savitzky-Golay |
| |
分析是我們已經得到了…我們已經做了…如果我們做了那個分析,這就是一組光譜。所以我們得到了平滑的, |
| |
一階導數,現在稍微延伸了一點。我們把零線放在那裡。有了一階導數,你就可以 |
| |
根據零點或零點交叉點判斷峰值在哪裡,對吧,這樣你就能知道任何給定的峰值在哪裡 |
| |
一組光譜,一組光譜。至於二階導數,現在有點不一樣了。它有助於使基線平坦化,然後,如果你有重疊的峰,它可以幫助你 |
| |
進一步發展,或更好地觀察它們重疊的地方,然後從正值到負值,這可以指示重疊的峰值以及它們可能出現的位置。好的,這就是你如何使用這個工具。 |
| |
標準常態變數本身也是針對各個光譜的資料標準化。它可以單獨使用,也可以作為附加的平滑工具使用,我們今天就將其作為附加工具。 |
| |
它被使用... |
| |
它用於基線偏移校正和全局強度變化校正。優點是,它可以消除基線變化,而不會改變光譜的形狀,對吧? |
| |
關於數據,當我們這樣做時你會看到,數據必須是堆疊的,好的。 |
| |
好吧,這只是其中一個公式 |
| |
可以用來建立標準常態變數公式,我會教你怎麼做。有幾種不同的方法,但有點複雜,我會教你怎麼做。這裡重點是 |
| |
我們這裡有標準化列的標準公式,但我們必須確保使用它作為變量,也就是光譜本身。所以 |
| |
添加這個功能需要一些技巧。 |
| |
是的,如果它僅對原始資料進行標準正態變量,它看起來就會像這樣。 |
| |
我們可以看到分組,可以看到事物如何爆發,但如果我們在計算一階導數之後再計算標準常態變量,結果會更加清晰。這樣就能更了解光譜在哪裡,或它們在哪裡重疊,它們在哪裡,你知道, |
| |
你可能需要做一點...二階導數會發揮作用,你可能在這裡有重疊的峰值,對吧, |
| |
也許還會回到這裡。所以 |
| |
這才是真正幫助你更好地理解你所看到的東西的地方。那條零線,再說一遍,它表明,當你穿過這條零線時,它指向峰值,而峰值的位置是用一階導數表示的。 |
| |
好的,讓我們開始示範。 |
| |
好了,離開那裡。 |
| |
那麼,我們先來談談資料視覺化……先說說數據。記住,每當你得到一組新資料時,最好的做法就是把它拉進來,然後進行視覺化。你知道,把這些數據畫出來,更了解它是什麼樣子的,以及你面對的是什麼。我們先從這裡開始,把 |
| |
我們的麩質原始數據。好的,我們已經導入了資料。現在我們需要對其進行一些可視化,我們來…使用“圖形生成器”。 |
| |
好的,我們要做的第一件事是, |
| |
把它往上移一點,轉到原始資料。好了,現在我們要把它拉進來。 |
| |
這是點數據,也就是我們…在進行任何平滑處理之前,在進行任何其他操作之前看到的。這是線數據,如果我可以將其改為 |
| |
一個平行圖,對了,它能提供光譜的線數據。同樣,我們看不清楚那裡發生了什麼,但它能讓我們更了解事情的走向。我可以把它… |
| |
我們可以在這裡做一些事情,例如…如果需要的話,你會看到它和其他資料合併了。但這並沒有改變任何東西。它並沒有像你在其他一些數據中看到的那樣把所有數據整合在一起,所以我要關閉它。 |
| |
好的,我在視覺化資料時喜歡使用的其他一些工具是模型驅動的多元控製圖,我們先來做這個。 |
| |
因此,我們要分析、品質和過程以及模型驅動的多元控製圖。 |
| |
將其向上移動。 |
| |
好的,我沒有任何歷史數據,所以我說「好的」。這樣我們就可以看看數據,然後說“好的”, |
| |
我們可以看到光譜的分組,對吧。在大多數情況下,這……只是想指出這一點, |
| |
我們能夠解釋我們所觀察到的大部分變異,至少能用兩個主成分解釋高達85%的變異,對吧?這是用這個? ? ? T平方 |
| |
我們在這裡得到的資訊。這也告訴我們,對於給定的光譜,哪些地方可能失控,對吧。為什麼它和該組的其他部分不同? |
| |
如果我把滑鼠懸停在其中一個點上,我就可以把它拉出來,對吧。如果我把滑鼠懸停在一個失控的點上,同樣,把它拉出來, |
| |
現在我們可以看到,哇,它們真的不一樣。這個光譜有一些不同之處,我們可能需要更好地理解。在這個例子中,我們已經有了更好的理解,因為我們知道它們是混合物,但我們想看到這一點。 |
| |
我們把這個也拿出來。好,又是一個。所以在這三個光譜之間,我們得到了相當多樣的混合。所以我們得到了三個……三個組,我們也可以把另外兩個也放進去,看看。不過,我們現在就先這樣吧。 |
| |
好的,這就是模型驅動的多元控製圖。我喜歡用的另一個工具是……它屬於多元方法,叫做多維尺度分析。 |
| |
我喜歡用它的原因是,特別是對於這樣的系統, |
| |
我們有 |
| |
再次獲取我們的原始數據,對,我們需要... |
| |
讓我先設定一下然後我再告訴你。 |
| |
這裡有兩個維度,對吧,這只是基於我們之前看到的,但我喜歡使用這個維度的原因是,它允許我們進行分組,或視覺化資料本身的分組。好的, |
| |
那就開始吧。這需要一點時間。 |
| |
我們可以看到,我們有五組不同的光譜,對吧?每一組都與一組澱粉和麩質的混合物有關。如果我在這裡突出顯示這一組,那就是第一組,也就是100%的澱粉。 |
| |
中間那組是50/50的混合,下面這組是100%麩質。對,它的作用是突出顯示數據表中的數據,就像這裡顯示的那樣,這樣 |
| |
互動性也很好。這也表明,我們已經做得相當不錯了……已經能夠區分不同的群體。如果我們看一下謝潑德圖, |
| |
我們有 1 的 R 平方和 |
| |
直線,好吧。這又是一個可視化的好方法,你還可以用它做更多的事情,不過我們留到下次再討論。 |
| |
好的,到目前為止, |
| |
我們已經獲取了數據,並將其視覺化,現在我們需要進行一些預處理。 |
| |
我們要做的是,我或多或少有這些佔位符,所以我們要做一些 Savitzky-Golay 分析,我們要做一些標準常態變異,至少在第一個導數上,好的。 |
| |
好吧,讓我稍微清理一下。 |
| |
好的,關閉它。 |
| |
再次,我們將獲取原始數據,並使用 Savitzky-Golay 外掛程式進行分析。所以對我來說,這屬於插件範疇。 |
| |
這是一個免費的插件,你可以下載,我們會把它發佈給你。我們再次取得原始數據, |
| |
對了,如果你想了解更多關於 Savitzky-Golay 演算法的內容,我們這裡有一個維基百科鏈接,你可以參考一下。不過,我們會用它來平滑每個波長的數據,對吧,然後求一階導數和二階導數。我說,好的。 |
| |
好了,我們得到了平滑的數據。 |
| |
有一件事,你知道,你可以根據需要調整它,但我們想要做的是, |
| |
把窗戶稍微擴大一點。 |
| |
好的。 |
| |
做那個。 |
| |
您可以在這裡嘗試多項式,多項式擬合的順序。 |
| |
在這種情況下,用八階多項式其實沒什麼兩樣。用第二個……二階就夠了。好的,然後我們可以從一階導數中取得資料。 |
| |
比如說保存平滑數據,對吧,我們可以把它存回數據表。我已經做過了,所以不用再示範這個過程了,只要知道資料會從那裡被保存回資料表就行了。 |
| |
讓我們結束這個話題。 |
| |
好了,現在一切準備就緒,但接下來需要進行最後一步。那麼,在進行下一步之前,我們先回顧一下 |
| |
我們的 Savitzky-Golay 資料。這是一階導數數據。我想再次在 |
| |
圖形產生器,對吧。你看……看起來不太有希望,但我們來做個平行圖吧。 |
| |
讓它變得更好一些。然後我們進行清理,然後進行組合尺度並行合併,這樣資料就會變得更加 |
| |
視覺效果……比我們之前的視覺效果更好,對吧。我們可以試試看…再試試這個,然後我們也可以在這裡加入自己的零線,以便更好地理解峰值的交叉點。 |
| |
但那是一階導數數據。你可以看到這些組,但它們並沒有完全分開,就像你希望的那樣,這樣才能更好地理解。 |
| |
好了,設定完畢。數據又回到了數據表中。我要把它關閉,然後記得我說過,你必須把資料堆疊起來…才能得到標準常態變量,所以我們需要這樣做。我們先在這裡抽取一些數據。 |
| |
好吧,那麼 |
| |
將所有這些子集取出。 |
| |
表。子集。 |
| |
所有行。選定列,然後點選「確定」。好了,現在我們可以開始操作了。 |
| |
正確的。 |
| |
嗯,至少,我們……我們已經把數據分離出來了,對吧。現在我們要做的……是堆疊數據,對吧。再說一次,這是為了能夠篩選公式所需的所有資料。 |
| |
因此在 Tables.Stack 下。 |
| |
這些是我們正在堆疊的列。 |
| |
對,然後按行堆疊。 |
| |
我將選擇我們想要保留的列。 |
| |
除此之外,之後, |
| |
抱歉……我只是想隨便點點滑鼠,搞定這個設置,不過你應該明白我的意思了。我會把這個留一會兒,讓大家看看具體怎麼做。所以我保存了它。 |
| |
你知道,現在看看無標題的 12。這就是我們的堆疊數據,對吧,現在我們可以執行標準常態變數。一個快速的方法是建立一個新列, |
| |
右鍵單擊。 |
| |
我必須從這裡,從公式編輯器中建立這個公式。我將使用一個名為 |
| |
列標準化,對吧。如果我把滑鼠懸停在這裡,你就能明白你正在做什麼。標準化是什麼意思,對吧?所以我們要… |
| |
平均值為 0,標準差為 1,這就是我們試圖透過數據和所有給定光譜得到的值。因此,我們需要將數據 |
| |
記得我說過,我們必須加入那個雙變量,也就是光譜。我會說好的。 |
| |
好的,這給了我們一個資料集。現在有一個更簡單的方法可以做到這一點,或者我認為更簡單的方法,但它也可以… |
| |
有時候會比較耗時。不過,如果我右鍵點擊這裡的光譜,再說一遍,記住,我這麼做是因為我們需要一個雙變量。所以我要去新建列信息,然後根據這個列進行分組。 |
| |
我要取出我的資料列,然後右鍵單擊它,以建立新的公式列。 |
| |
我們要轉向分佈式,記住,標準化。我們……所以我們想要那個 |
| |
平均值為 0;標準差為 1。選中它,然後就建立了新的一列。這樣做的好處是數據匹配,所以我可以鬆一口氣,因為我做對了。 |
| |
好的,我知道了。現在,這需要從這裡開始,我要點擊那一列, |
| |
我們把這些資料分拆開來,然後放回常規資料表或初始資料表中。我想用這個來向大家展示的是 |
| |
資料堆疊完成後,你就可以進行其他視覺化了。如果我回到“圖表產生器”,我想把這些數據 |
| |
進入 |
| |
是的,然後我會把標籤拉過來,這很酷,可以看到所有變化在哪裡。所以這些都是, |
| |
您知道,箱線圖...您可以看到資料的變化,這是能夠直觀地了解正在發生的事情的好方法。 |
| |
圖形產生器的另一個強大功能是,在這種情況下,資料必須堆疊才能實現這一點。現在,你還可以這樣做 |
| |
如果你導入點數據,我們把它拿出來,然後把點數據放進去,然後我們可以做一些平滑處理。現在這是一個單獨的平滑,所以這是對所有數據的平均值。我們想要做的就是這樣做 |
| |
Savitzky-Golay 平滑,所以我需要拉入 |
| |
疊加層,對吧。這就是所有數據。現在可能看不太清楚,但我要這樣做,希望你能看到。如果我選擇“平滑”,我們將切換到 Savitzky-Golay。 |
| |
好的,我想你...希望你看到了,現在那條線已經適合了,那條平滑線就在那裡。 |
| |
這是另一種平滑資料的方法,使用 Savitzky-Golay 函數。然後你可以把它改成二次函數,在這裡進行一些局部修剪,最後,你可以把它保存回資料表。 |
| |
我現在就到此為止。 |
| |
對了,記住,我們必須拆分這些數據,然後將其保存回數據表。我將放棄拆分步驟,然後直接返回資料…原始資料表。 |
| |
我不需要那個。 |
| |
對,然後當我 |
| |
在“圖形產生器”下再次查看數據, |
| |
我可以取這個標準常態變數組, |
| |
把它放進去。同樣,看起來不太有希望,但我們會做平行圖,然後右鍵單擊。 |
| |
將這些比例結合起來。 |
| |
好了,我們的平滑處理基本上完成了。一切設定完畢。我們還可以在這裡添加一條零線。 |
| |
如果需要的話。我們繼續添加它。 |
| |
零,我們會把它變成某種綠色, |
| |
有這個,加一下。 |
| |
說好的,然後再一次,你會用它來幫助你找出你的高峰在哪裡。 |
| |
根據我越過零點時的峰值最大值,好的。 |
| |
差不多就是這樣了。我們回到我們的 |
| |
微軟幻燈片軟體。 |
| |
所以總而言之,預處理...我們需要預處理資料...預處理資料以使其更乾淨,使其更容易處理。 |
| |
哪裡還有 JMP... |
| |
JMP 正在製作這個... |
| |
我們正在努力簡化這項流程。 JMP 16 中的預處理功能將透過插件和內建功能提供支援。 |
| |
我們期待 JMP 17 的預處理功能,它將在函數資料資源管理器中提供更複雜的光譜和基線平滑選項,以及一些峰值檢測和選擇。 |
| |
關於光譜數據分析,請…我在 2020 年為 Discovery 做過一次演講 |
| |
慕尼黑。這是線上講座,但它能讓你很好地了解如何使用 JMP 分析光譜資料。 |
| |
最後,我要說聲謝謝,希望大家覺得…這篇文章有用。請告訴我。 |