1180_zh-TW
計算兩個樣條擬合之間的面積(雙變數)我使用雙變量平台的擬合樣條來參數化螢光光譜曲線,並保存了樣品和空白的預測公式。 我想估計峰值下的面積,或更準確地說,估計指定波長間隔內樣品曲線和空白曲線之間的面積。
我當然可以在 Matlab 中花費一些精力來完成此操作,但它可以很好地保留 JMP 中的整個工作流程。 我認為我的方法將涉及對幾何形狀由樣條預測公式矩陣確定的切片進行求和。 但是我不確定如何解釋和使用預測公式。
有什麼想法可以引導我找到如何使用 JMP/JSL 解決此問題的正確方向嗎? 謝謝!回覆:計算兩個樣條擬合之間的面積(雙變數)這個腳本有效,這讓人奇怪為什麼我的腳本不能,因為它應該與你的相同。 當我比較它們時,我發現了我的錯字。 很抱歉造成混亂。 感謝您的幫忙! 我現在有一個用於批量處理螢光數據的工作腳本。
剩下的唯一煩人的事情是 Maximize() 命令,如果它無法收斂(即找到局部最大值),它會破壞腳本。 我還沒有找到如何與 JSL 中的錯誤輸出互動(例如「如果結果==錯誤,則更改容差並重複,否則最大=結果」或類似)。
再次感謝!回覆:計算兩個樣條擬合之間的面積(雙變數)在 WinXP 下的 JMP 8.0.2 上,在出現提示時使用範例 JMP 產生的樣條係數表,以下腳本確實對我有用,沒有錯誤:
回覆:計算兩個樣條擬合之間的面積(雙變數)使用「列公式變數」或類似的內容搜尋此論壇,以查找如何透過引用預先未知的列的腳本成功建立列公式的範例。 我認為這會有幫助。回覆:計算兩個樣條擬合之間的面積(雙變數)謝謝! 它工作得很好,我現在正在嘗試在 JSL 中做到這一點。 如果有人有興趣的話,我可以在完成後將腳本發佈在這裡。
順便說一句,累積列有問題。 如果透過新增公式手動完成
If(Row() == 1, :Slice Area, :Cumulative Area[Row() - 1] + :Slice Area[Row()]) 到「累積區域」列,它可以工作。 但是,如果我透過使用命令 << set Formula() 編寫腳本來執行此操作,則會收到錯誤「行中的非法引用(遞歸)...」。 該列已創建,但沒有公式。回覆:計算兩個樣條擬合之間的面積(雙變數)來自 8.0.1 統計和圖表指南:
「三次樣條法使用一組拼接在一起的三次多項式,使得所得曲線在拼接(結點)處連續且平滑。 該估計值是透過最小化目標函數來完成的,該函數是誤差平方和和在曲線範圍內積分的曲率懲罰的組合。 有關此方法的描述,請參閱 Reinsch (1967) 的論文或 Eubank (1988) 的文本。”
當您在「Fit Y by X」中擬合樣條線時,會出現一個紅色三角形下拉式選單,其中包含「儲存係數」項目。 此操作建立一個包含 X、A、B、C、D 列的新表。X 列包含資料中按升序排序的唯一 X 值。 其他 4 列是從同一行的 X 值開始到下一行的 X 值的區間中使用的三次多項式的係數。 若同一行中 X 的值為 X1,則該區間的多項式為:
A + B*(X-X1) + C*(X-X1)^2 + D*(X-X1)^3
它用於 X 到 X2,即下一個「結」。 要找出該曲線下 x1 和 x2 之間的精確面積,只需將該多項式從 X1 積分到 X2 即可得到:
A*(X2-X1) + (B*(X2-X1)^2)/2 + (C*(X2-X1)^3)/3 + (D*(X2-X1)^4)/4
您需要建立一個名為“區域切片”的新欄位並輸入此公式。 在 JMP 公式中,使用 X 代表 X1,使用 Lag(X,-1) 代表 X2。 然後你將有一列區域切片。 然後,您可以新增所有面積切片以獲得曲線下從開始到結束的總面積。 如果需要,您也可以建立一列累積區域。
這將為您提供樣條線下方面積的精確值,而不是近似值。
這可能可以編寫腳本,但我還沒有嘗試過。
要獲得兩條這樣的曲線之間的面積,只需以這種方式找到兩條曲線的面積,然後從另一條曲線中減去一條曲線即可。
麥可
Comments
There are no comments yet