將預測列添加到數據表中我的 JMP 表中有一個名為“異常值分析”的腳本。 我打開腳本,點擊紅色小三角並選擇保存列--> 預測公式。 我該如何編寫這個腳本?
這是我的方法:
dt = current data table();
a = Eval( dt << get table property( "Outlier Analysis" ) );
abc = a << Report;
abc << prediction formula;
回复:將預測列添加到數據表中@gzmorgan0還有一個問題,我已經安裝了具有擬合組而不是擬合模型的腳本。 如何將它們的學生化殘差添加到數據表中?我的方法:嘗試將擬合組中的所有擬合模型添加到列表中,並傳遞該列表以添加殘差。 該腳本目前不起作用,但這是否是正確的方法? 另外,如果可能的話,您能指出我在這個腳本中出錯的地方嗎?
dt = Current Data Table();
ft = dt << Run Script( "Outlier Analysis" );
ftList = Substitute( ftList, Expr( FitGroup() ), Expr( {} ) );
Print( Head( ftList ) );
//For(i=1, i<=NItems(ftList),i++,
//ftList[i] << Studentized Residuals;
//);
;回复:將預測列添加到數據表中@uday_guntupalli是的,謝謝你的幫助!
回复:將預測列添加到數據表中@飛天小女警,
這就是我一直向您提到的。 很高興它終於起作用了。
回复:將預測列添加到數據表中抱歉,但我意識到這是最簡單的。
只需兩行代碼就保存了我的公式
a = Eval( dt << get table property( "Outlier Analysis" ) );
a << save prediction formula;
感謝您的幫助,對於造成的困惑我深表歉意。 我只添加了“保存”,但不知何故錯過了。
回复:將預測列添加到數據表中@gzmorgan0是的,我的意思是從現有的報告中獲取公式。 我怎樣才能編寫一個更通用的腳本來實現這一目標? 因此,我在 Peanuts 樣本數據集中有一個擬合模型。 如何將預測公式或學生化殘差添加(使用 JSL)到現有的 Peanuts 數據表中? 我手動執行以下操作:保存列--> 為此。
回复:將預測列添加到數據表中請參閱腳本指南並蒐索按平台劃分的僅腳本化消息和參數。 消息和選項因型號而異。
標準最小二乘法
以下 JSL 消息從擬合模型返回請求的項目,例如方差分量、p 值、參數估計值等:
fit_model_object << 獲取方差分量( );
fit_model_object << 獲取效果名稱( );
fit_model_object << 獲取效果 PValues( );
fit_model_object << 獲取估計值( );
fit_model_object << 獲取參數名稱( );
fit_model_object << 獲取隨機效果名稱( );
fit_model_object << 獲取標準錯誤( );
fit_model_object << 獲取 X 矩陣( );
fit_model_object << 獲取 XPX Inverse( );
fit_model_object << 獲取 Y 矩陣( );
標準最小二乘對象的以下消息僅在 JSL 中可用:
obj << 獲取SQL預測表達式;
___________________________________________________________________________________
對於最後一個例子,xx = FM << 得到預測公式;顯示(xx);
/*日誌
xx = 新列(“y”,數字,公式((-2.69577290612704)+匹配(:藥物,“a”,-1.18503653738055,“d”,-1.07606520517145,“f”,2.261101742552,.)+ 0.987183811 129848 * :x), Set Property("預測", {:y, Creator("擬合最小二乘法")}));
您是否詢問如何編寫腳本以從已創建的帶有擬合報告的窗口中獲取公式?如果是,讓我們看看是否可以模擬這種情況:幫助>腳本索引>對象>擬合模型>最小二乘,然後運行示例腳本。
obj 對最小二乘擬合的引用僅在該腳本中被識別。為了能夠獲得公式,您需要獲得模型對象的句柄。 可能還有另一種方法,但這是我的方法:
- 提示窗口或使用窗口名稱創建報告句柄
- 獲取其子項和第一個 OutlIne Box
- 獲取可編寫腳本的對象
- 得到公式。
如果您的腳本有多個模型,我建議您使用 Xpath 來獲取所有實例。附加腳本從腳本索引腳本獲取公式。 該報告有 2 個響應(2 個模型)並創建一個關聯的公式數組。
我不確定這是否是您所要求的。順便說一句,一旦您有了腳本對象的句柄(引用),您就可以向它發送消息以將公式保存到表中。 Xpath 的一個很好的功能是獲取可編寫腳本的對象,它可能會找到 20 個模型,但您可以發送一次消息並將其應用於每個模型。
如果這不是您的問題,請澄清。
回复:將預測列添加到數據表中@uday_guntupalli但我有一個健身小組,裡面有很多健身模特。 另外,我不想僅限於一個腳本執行此操作。
回复:將預測列添加到數據表中@飛天小女警,
我不確定我是否遵循了你所說的,但是根據我的理解,在這裡:
對於您所做的擬合模型分析,您可以通過這種方式將公式直接捕獲到表中。 您不需要單獨提取公式。
dt = Open( "$SAMPLE_DATA/Drug.jmp" );
FM = dt << Fit Model(
Y( :y ),
Effects( :Drug, :x ),
Personality( "Standard Least Squares" ),
Emphasis( "Minimal Report" ),
Run(
:y << {Summary of Fit( 1 ), Analysis of Variance( 1 ),
Parameter Estimates( 1 ), Show Prediction Expression( 1 ),
Plot Actual by Predicted( 0 ), Plot Residual by Predicted( 0 ),
Plot Effect Leverage( 0 )}
)
);
FM << Get Prediction Formula; 檢查您的日誌並打印公式。 當您的意思是通過這種方式獲取公式時,我認為您想從報告中訪問它。 如果這就是您想要的,您可以如上所示添加 - 顯示預測表達式(1) 到您的擬合模型,然後訪問表達式
回复:將預測列添加到數據表中我明白了,但我已經準備好了劇本。 我不想再次添加分區部分。 例如,
a = Eval( dt << get table property( "Outlier Analysis" ) );
abc = a << Report;
dta = abc["Summary of Fit"][Table Box( 1 )] << Make Combined data table;
該腳本幫助我從“異常值分析”腳本中打開擬合摘要表。 有什麼方法可以這樣添加預測公式嗎?@uday_guntupalli
回复:將預測列添加到數據表中@飛天小女警
看下面的例子。
dt = Open( "$SAMPLE_DATA/Boston Housing.jmp" );
obj = Partition(
Y( :mvalue ),
X(
:crim,
:zn,
:indus,
:chas,
:nox,
:rooms,
:age,
:distance,
:radial
),
Method( "Boosted Tree" ),
Validation Portion( .2 ),
Go
);
obj << Save Prediction Formula;