透過腳本檢索簡化的預測公式您好,我對 JMP 腳本很陌生,但我正在嘗試從擬合模型中獲取預測公式的係數。
已經有很多文章描述如何在腳本中取得預測公式,但我想要的是在JMP介面中應用「簡化」後的公式。
儲存列==>預測公式==>從資料表中開啟公式==>從方程式編輯器的紅色小三角彈出式選單中,選擇簡化

我的理想情況是在一個新的數據表中獲得簡化的公式係數,類似於右鍵“參數估計”==>“製作成(組合)數據表”

我有建立擬合模型的程式碼,但我不知道如何包含簡化函數並將其儲存回新表。
dt = Open( "$SAMPLE_DATA/Tiretread.jmp" );
obj = dt << Fit Model(
Y( :ABRASION ),
Effects(
:SILICA & RS, :SILANE & RS, :SILICA * :SILICA, :SILICA * :SILANE,
:SILANE * :SILANE
),
Personality( "Standard Least Squares" ),
Emphasis( "Effect Screening" ),
Run(
Profiler(
1,
Confidence Intervals( 1 ),
Desirability Functions( 1 ),
ABRASION << Response Limits(
{Lower( 100, 0.066 ), Middle( 150, 0.5 ),
Upper( 200, 0.9819 ), Goal( "Maximize" ), Importance( 0.25 )}
),
Term Value(
SILICA( 1.2, Lock( 0 ), Show( 1 ) ),
SILANE( 50, Lock( 0 ), Show( 1 ) )
)
),
:ABRASION << {Summary of Fit( 0 ), Analysis of Variance( 0 ),
Parameter Estimates( 1 ), Effect Details( 0 ), Sorted Estimates( 0 ),
Plot Actual by Predicted( 1 ), Plot Regression( 0 ),
Plot Residual by Predicted( 1 ), Plot Studentized Residuals( 1 ),
Plot Effect Leverage( 0 ), Plot Residual by Normal Quantiles( 0 ),
Box Cox Y Transformation( 1 )}
),
SendToReport(
Dispatch(
{"Response ABRASION"},
"Parameter Estimates",
OutlineBox,
{Close( 0 )}
)
)
);
如果有經驗的人可以幫忙,不勝感激!
資料存取回覆:透過腳本檢索簡化的預測公式您也可以直接解析表達式。 請參閱 JMP 說明或腳本索引以了解 Head()、N Args() 和 Arg() 函數。 您可以將表達式作為樹或連結清單進行遍歷。
回覆:透過腳本檢索簡化的預測公式在我給出的範例中,它保留為表達式。 我認為你必須先將其轉換為字串:
simplified_formula_str = Char(simplified_formula);
然後從那裡開始將其解析為列表。 對於解析,以下函數可能會幫助您入門:Words()、Substitute()(以及 Regex,如果您知道如何使用它)。 更多功能可以在腳本索引中找到:

獲得值清單後,您可以使用設定值將值新增至資料表:
Names Default To Here(1);
intercept_list = {"Intercept", "SILICA"};
estimate_list = [123, 1];
New Table("Untitled",
Add Rows(2),
Compress File When Saved(1),
New Column("Term", Character, "Nominal", Set Values(intercept_list)),
New Column("Estimate",
Numeric,
"Continuous",
Format("Best", 12),
Set Values(estimate_list)
)
);
回覆:透過腳本檢索簡化的預測公式@jthi
謝謝!
第一個正是我想要的。
但我想建立一個新表,顯示簡化公式(如“生成資料表”)中的係數和變數。
如果使用原始的「產生資料表」功能,它會建立一個包含「非簡化」係數的表。
既然已經儲存了simplified_formula,有沒有辦法將其轉換為表格(不是預測值,只是係數和變數)?
我試圖解析它或將其更改為矩陣或表格,但到目前為止它們都不起作用。
(我不確定公式物件的類型是什麼...文字?)
回覆:透過腳本檢索簡化的預測公式您可以透過以下方式獲得簡化的公式:
col_formula = Expr(Column(dt, "Pred Formula ABRASION") << Get Formula);<BR />simplified_formula = Expr(Simplify Expr(col_formula));
您可以編寫來自 Fit 模型的 Make Into 資料表的腳本:
dt_new = ((obj << report)["Parameter Estimates"])[TableBox(1)]<< Make Into Data Table;
檢查腳本索引以取得 JSL 腳本的重要來源。