運行非線性模型擬合時如何保存不同類別的預測公式我有一個適合非線性模型的自訂公式的腳本(在 Nonlib 上不可用)取得模型參數的估計值。 我可以在紅色三角形選單下儲存公式,然後選擇儲存預測公式,這將為新結果建立一個新欄位。 我可以為每個類別執行此操作。
New Column( "Fitted Model By Sample",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Property( "By ID", 207957763 ),
Formula(
If( :Sample == "Barley 2710",
If( :Days > 0,
0.171070850115799 * Exp( -Exp( ((0.00826868962267886 * Exp()) / 0.171070850115799) * (8.5626914275992 - :Days) ) )
+0.189197655815188 * Exp( -Exp( ((0.0822175769423173 * Exp()) / 0.189197655815188) * (1.00952608535815 - :Days) ) ),
0
),
.
)
),
Set Property( "Predicting", {:Average, Creator( "Nonlinear" )} ),
Set Selected
);
Set Label Columns( :Label );
但是,我試圖讓它針對資料表中的所有類別運行,以避免手動執行此操作。 關於如何執行此操作有什麼建議嗎?
我嘗試僅發布新公式,但沒有像手動執行操作時那樣建立列,例如:
obj = Nonlinear( Y( :Average ), X( :Model ), Loss( :Err ), Iteration Limit( 5000 ), By( :Sample ) );
obj << go;
obj << Publish prediction formula;
obj << Set name( "Fitted Model by sample" );
我也嘗試過以下修改 JSL 記錄的腳本,不幸的是該公式不起作用。 任何幫助深表感謝。
obj = Nonlinear( Y( :Average ), X( :Model ), Loss( :Err ), Iteration Limit( 5000 ), By( :Sample ) );
obj << go;
//returns a list of vectors where each vector, contains the parameters estimates
obj << get estimates;
obj << get prediction formula;
col11 = New Column( "Fitted Model By Sample",
set formula(
If( :Days > 0,
(Y1_Y1_0 * Exp( -Exp( ((K1_K1_0 * Exp()) / Y1_Y1_0) * (P1_P1_0 - :Days) ) ) + Y2_Y2_0 * Exp(
-Exp( ((K2_K2_0 * Exp()) / Y2_Y2_0) * (P2_P2_0 - :Days) )
)),
0
),
By( :Sample ),
Set Property( "Predicting", {:Average, Creator( "Nonlinear" )} ),
Set Selected
),
Set Label Columns( :Label )
);
回覆:運行非線性模型擬合時如何保存不同類別的預測公式驚人的! 我相信我在社區中錯過了這個解決方案。 我搜尋了各種例子。 只需要“保存”,這就是我所需要的。
非常感謝菲爾!
回覆:運行非線性模型擬合時如何保存不同類別的預測公式解決方案是否來自@tx尼爾森在這個帖子幫助? (「將預測公式儲存回表格」)
Names Default To Here( 1 );
dt = Open(
"$SAMPLE_DATA/Nonlinear Examples/Bioassay.jmp"
);
obj = Fit Curve(
Y( :Toxicity ),
X( :log Conc ),
Group( :formulation ),
Fit Logistic 4P
);
obj << (Fit[1] << Save Prediction Formula);
這使用“保存預測公式”命令,而不是“發布預測公式”。 我認為這就是你想做的事情,並且不需要Pro。
它為您提供了一個結果預測公式列,其中有效地為每個組提供了一個模型:
Match( :Formulation,
"standard",
0.599015186864584 + (1.10686367677145 - 0.599015186864584) / (1
+Exp( -5.84379312234502 * (:log Conc - 0.32019959502239) )),
"test A",
0.590902329849433 + (1.1012080930316 - 0.590902329849433) / (1
+Exp( -5.98069280093278 * (:log Conc - 0.284551221955609) )),
"test B",
0.592984828033858 + (1.0972015134296 - 0.592984828033858) / (1
+Exp( -5.75586785289505 * (:log Conc - 0.084429442746212) )),
"test C",
0.593403681513877 + (1.10597929999838 - 0.593403681513877) / (1
+Exp( -6.00992746207644 * (:log Conc - 0.298749145989595) )),
.
)
回覆:運行非線性模型擬合時如何保存不同類別的預測公式嗨菲爾,
再次感謝你的回饋。
我將嘗試對此回覆進行更多解釋。
是的,我的問題是如何自動擬合模型並產生一個列,其中包含每組的結果預測公式。 我只想創建一欄。 模型公式已經在每組的一列中,我只想使用估計的新參數來複製它。
這樣做的想法只是為了讓我可以單獨報告每個組的結果,並能夠透過圖形產生器以不同的方式以圖形方式表示模型曲線和實驗數據。
我希望這一點更清楚。
儘管如此,我似乎需要 Jump Pro 才能做到這一點,對嗎?
謝謝
伊沃
回覆:運行非線性模型擬合時如何保存不同類別的預測公式感謝菲爾的回饋。
我已經嘗試過該腳本,你是對的,它不起作用,因為我只有標準 JMP...遺憾的是。
回覆:運行非線性模型擬合時如何保存不同類別的預測公式發布預測公式與發佈到 JMP Pro 中的公式庫的功能相關。 如果您使用標準 JMP,我預計這不會起作用。 您可以使用腳本索引中的範例腳本進行檢查。
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Boston Housing.jmp" );
obj = K Nearest Neighbors(
Y( :mvalue ),
X(
:crim,
:zn,
:indus,
:chas,
:nox,
:rooms,
:age,
:distance,
:radial,
:tax,
:pt,
:b,
:lstat
),
K( 10 )
);
obj << (Response[1] << Publish Prediction Formula);
(順便說一句,這就是我所說的有關插入 JSL 選項的內容 - 更清楚,不是嗎?)
那樣有用嗎? 它應該會顯示 Formula Depot。 再次強調,我僅希望它在您使用 JMP Pro 時才有效。
回覆:運行非線性模型擬合時如何保存不同類別的預測公式你好,
一些提示可以幫助人們幫助您應對挑戰。
首先,如果您在發布腳本問題時可以使用 JSL 選項,將會有所幫助。 您只需點擊發布視窗上方工具列上的 並在那裡添加您的 JSL。 讓人們更清楚地了解您的 JSL 並為您提供協助。
其次,這裡有一個複雜的非線性模型擬合,但您的問題實際上是關於如何自動擬合模型並為每個組產生預測公式列。 如果您提供一個更簡單的範例來示範您要解決的問題的特定部分,人們會更容易提供協助。 它還將使其他社區成員更容易了解這是否可以解決他們的問題。 使用經典 Big Class 樣本資料集的範例總是好的。 就您的情況而言,我認為為大班中的每個性別組擬合一個簡單的模型可能足以證明您的挑戰。 或者也許事情比這更複雜。 我不確定,因為您提供的資訊有點不清楚。
最後,如果您能解釋一下您最終想要實現的目標,可能會有所幫助。 為什麼要為每個群組建立公式列? 可能還有其他更好的方法來實現您的目標。
我認為如果您按照這些步驟操作,您應該會發現您將在發布查詢時獲得更多幫助。
問候,
菲爾