使用 GraphBuilder 和/或分析(使用腳本)繪製非線性回歸這篇文章是與此類似,我在那裡發表了一條評論,但由於該帖子已經發布了 2 年,它可能不會被看到,而且我在將解決方案適應我的方程時遇到了麻煩。
我正在使用下面的腳本進行非線性回歸來準備數據,然後使用“分析”選項,將歸一化熒光作為 Y 值,將模型(公式)列作為 X 值(反轉軸),並按孔位置,但這一次只能做一個。 如果我使用 GraphBuilder,我無法讓 Smoother 使用公式。 我希望將所有圖都放在一張圖上,或者在一個絕對理想的獨角獸世界中,一次圖 3 個井位置(例如 B2-B4),但這似乎不現實:p
Data Table( "Melt Curve Raw Data" ) << New Column( "Normalized Fluorescence",
formula(
(:Fluorescence - Col Min( :Fluorescence, :Well Position )) / (
Col Max( :Fluorescence, :Well Position )
-Col Min( :Fluorescence, :Well Position ))
)
);
Data Table( "Melt Curve Raw Data" ) << New Column( "Model", Numeric,
"Continuous", Format( "Best", 12 ),
Formula(Parameter({m1 = -60, m2 = 0.2, m3 = -50, m4 = -0.3, m5 = 100000, m6 = 320},
((m1 + m2 * (:Temperature + 273)) + (m3 + m4 * (:Temperature + 273)) * Exp((-m5 / (1.987 *
(:Temperature + 273))) * (1 - (:Temperature + 273) / m6))) /
(1 + Exp((-m5 / (1.987 * (:Temperature + 273))) * (1 - (:Temperature + 273) / m6))))));
高級統計建模回复:使用 GraphBuilder 和/或分析繪製非線性回歸(使用腳本)你沒有誤解。 由此產生的複雜性可能會造成阻礙收斂的實際限制。
回复:使用 GraphBuilder 和/或分析繪製非線性回歸(使用腳本)感謝您澄清說明。在您的示例中,您必須輸入所有不同的可能年齡,對嗎?我使用的是 96 孔板,因此通常有大約 45 個孔位,但最多可以有 96 個。 那麼我會為所有 6 個變量(m1-m6)設置 45 個參數嗎? 我想我嚴重誤解了一些事情......
您在其他評論中問我將對此做什麼,這主要與兩種蛋白質在不同處理後的焓 (m5) 和熔化溫度 (m6) 變化的比較有關。
回复:使用 GraphBuilder 和/或分析繪製非線性回歸(使用腳本)讓我向您展示 FDE 的工作原理以及它可以為您做些什麼。 您還沒有說明您最終想要如何處理擬合曲線。 例如,每個井的條件是如何確定的? 您想根據每口井的狀況比較曲線嗎?
我打開您的數據表並選擇“分析”>“專業建模”>“功能數據資源管理器”。 我將數據列扮演以下角色:

初始平台以疊加和單獨函數(曲線)的形式顯示數據。 我單擊頂部的紅色三角形並選擇“模型”>“B 樣條線”。

重要的信息是均值函數、標準差函數和函數主成分。 這些 FPC 捕獲每條曲線相對於均值函數的獨特性。 它們提供有關您的曲線及其差異的見解。 FPC 的數量等於曲線的數量,但通常您可以忽略其中的大部分。 前三個 FPC 捕獲了所有曲線中 99.1% 的信息。
您可以將 FPC 視為曲線的原型。 也就是說,它們是可以組合起來產生一條曲線的基本特徵。 您可以使用 FPC 作為響應或因素。 換句話說,您可能會問孔中變化的因子水平如何確定曲線的形狀? 或者曲線的形狀如何預測其他結果?

JMP 最初任意顯示貢獻至少為 1% 的所有 FPC,因此本例中有 5 個 FPC。 我將數量減少到 3 並保存了功能摘要,其中包括“條件”響應的公式。 現在我可以用 FPC 做任何我想做的事情,它們只是數據。 我可以在圖形生成器中繪製它們。

我將腳本保存到您的原始數據表和帶有功能摘要的數據表中,並附上了下面的新數據表。
回复:使用 GraphBuilder 和/或分析繪製非線性回歸(使用腳本)您沒有正確使用此功能。 幫助中的段落是正確的,但可能有點含糊。 這是正確的方法,一步一步。 我正在使用 Big Class 來擬合 :weight 與 :height 的簡單指數模型,其中 :age 作為分組變量 (:weight = A*Exp( B*height ) )。
為模型添加新的數據列。 將模型的公式添加到數據列。 定義參數。

單擊“確定”並選擇分組變量。

對並非所有曲線共有的其他參數重複此步驟。 構建模型。 根據需要選擇參數。 這是分組指數模型。

保存公式並啟動非線性。

單擊“確定”開始擬合。

不過,我擔心模型中的參數化會導致估計值之間存在高度相關性。 引入分組變量會加劇這種相關性,特別是考慮到組的數量。 因此,另一種方法是使用原始模型並在“By”角色中使用曲線 ID。 這種方式將允許您單獨擬合每條曲線。
另一方面,如果您不依賴於該模型,那麼 FDE 是另一種方式。 它使用基函數的擴展來對數據建模。 這些是通用插值器。

回复:使用 GraphBuilder 和/或分析繪製非線性回歸(使用腳本)嗨馬克!
非常感謝您的回复。是的,我有 JMP Pro,但我還沒有嘗試過功能數據瀏覽器。 今天我將嘗試閱讀有關它的內容。 感謝您的建議。
我看到了您鏈接到的有關使用“擴展到類別”複選框的段落。 我將其添加為第七個參數,並在“分析”頁面中將所有內容繪製在一個圖上(太棒了!),但只給了我一條線的值。 我是否錯誤地使用了“展開到類別”選項? 我應該將其添加到我原來的 6 個參數之一中嗎?
回复:使用 GraphBuilder 和/或分析繪製非線性回歸(使用腳本)非線性啟動對話框過度簡化了情況。 您需要對自定義模型進行更多操作,以指示 Group 變量如何影響參數。 您的模型僅包含通用參數。 唯一參數取決於組變量的級別。
請參見這一頁以及底部的註釋。
您有 JMP Pro 嗎? 您嘗試過功能數據瀏覽器嗎?
回复:使用 GraphBuilder 和/或分析繪製非線性回歸(使用腳本)哇,這些都太棒了。 我最初想要尋找的是右上角的多色散點圖,但你製作的圖表和腳本絕對讓我震驚。
使用“分析”選項時,我獲得了所需的值,但每個圖表都是單獨的。 我已附上當前使用的設置的屏幕截圖以及單擊“執行”然後單擊“置信限制”後的結果。
我還附上了嘗試使用“group”而不是“by”作為井位時收到的錯誤消息。



回复:使用 GraphBuilder 和/或分析繪製非線性回歸(使用腳本)我無法準確說出您在尋找什麼,這些圖表中的一個是否恰好顯示了您正在尋找的內容,或者您可以發布一次只執行一個的圖表的屏幕截圖嗎?您說您使用了“分析”,但我不確定您在該菜單中選擇了哪個選項。



Graph Builder(
Size( 671, 507 ),
Show Control Panel( 0 ),
Variables(
X( :Model ),
Y( :Normalized Fluorescence ),
Overlay( :Well Position )
),
Elements( Smoother( X, Y, Legend( 12 ) ), Points( X, Y, Legend( 13 ) ) ),
Local Data Filter(
Add Filter(
columns( :Well Position ),
Where( :Well Position == {"B2", "B3", "B4"} ),
Display( :Well Position, N Items( 15 ), Find( Set Text( "" ) ) )
)
)
);
Graph Builder(
Size( 671, 543 ),
Show Control Panel( 0 ),
Variables( X( :Model ), Y( :Normalized Fluorescence ), Wrap( :Well Position ) ),
Elements( Points( X, Y, Legend( 9 ) ), Smoother( X, Y, Legend( 11 ) ) ),
Local Data Filter(
Add Filter(
columns( :Well Position ),
Where( :Well Position == {"B2", "B3", "B4"} ),
Display( :Well Position, N Items( 15 ), Find( Set Text( "" ) ) )
)
)
);
Graph Builder(
Size( 1308, 384 ),
Show Control Panel( 0 ),
Variables(
X( :Model ),
Y( :Normalized Fluorescence ),
Group X( :Well Position )
),
Elements( Smoother( X, Y, Legend( 12 ) ) ),
Local Data Filter(
Add Filter(
columns( :Well Position ),
Where( :Well Position == {"B2", "B3", "B4"} ),
Display( :Well Position, N Items( 15 ), Find( Set Text( "" ) ) )
)
)
);