可變擬合模型腳本可能嗎?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />大家好,我是這個論壇的新手,希望與大家相處:) 我是一名使用 JMP 的學生,但在編寫與擬合模型部分相關的腳本時遇到一些困難。 以下說明了我似乎無法使其工作的擬合模型代碼:
a=0;var_list={:param1,:param2};rs_list={:test1,:test2,:test3,:test4,:test5};obj=Fit Model( Y(var_list[1]), Effects( response surface(:test1,:test2,:test3,:test4,:test5) ), Personality( Standard Least Squares ), Emphasis( Effect Screening ), Run());if(a==1, obj< var_list[1]< maximize desirability(1), ); obj << {Lack of Fit( 0 ), Sorted Estimates( 1 ), Plot Actual by Predicted( 1 ), Plot Regression( 0 ), Plot Residual by Predicted( 0 ), Plot Effect Leverage( 0 )}; );if(a==0, obj< var_list[1]< maximize desirability(1), ); obj << {Lack of Fit( 0 ), Sorted Estimates( 1 ), Plot Actual by Predicted( 1 ), Plot Regression( 0 ), Plot Residual by Predicted( 0 ), Plot Effect Leverage( 0 )};);我的清單中有 10 個變量,想使用它們全部透過擬合模型進行一系列最小二乘分析,但我似乎無法讓它工作。上面的程式碼最初計劃插入到for迴圈迴圈10次(這可能會有所不同,因為變數的數量可能或多或少)但問題是我想使用循環來命令 jmp 從上面的列表中執行所需的分析...另外,是否可以放置rs_列表進入上面的響應面函數? (我似乎也無法讓該清單發揮作用)...任何想法或建議都將不勝感激!先謝謝,祝你有美好的一天!:)
可變擬合模型腳本可能嗎?非常感謝MS的指導,非常感謝!:)
可變擬合模型腳本可能嗎?好的,當我的程式碼應用於我使用的範例表時,我的程式碼可以在這裡工作。 當應用於更大的表時,我還發現在某些迭代中實際的預測圖丟失了。 我猜想這可能是由於需求擬合緩慢而導致的,儘管當前計算尚未完成,但 JMP 仍繼續提前執行程式碼。 有時,可以透過在正確的位置插入 Wait() 命令來解決這個問題(這裡並不明顯)。
回覆:可變擬合模型腳本可能嗎?MS,我已經嘗試過你的程式碼,似乎我正在查看一些錯誤?...我看到的是,有時實際的繪圖不會出現在報告的預測視窗中,而其他人則有,例如: drvros 的報告沒有實際的情節,而drvrus 的情節有實際的情節...我也嘗試根據順序最大化和最小化,例如先最大化,然後最小化,但它似乎也有效...任何想法?先謝謝!:)
PS:非常感謝您的專家指導,從您的兩個回復中我學到了很多東西,JSL真是讓人心煩哈哈,之前我在腳本指南中找不到response surface()函數(這是未在JMP9. 0.3 腳本編寫指南中列出)並使用其他方法,例如:
效果(
var1 和 RS,
var2 和 RS,
多項式 (var1,var2),
階乘(var1,var2),
)
可以使用響應面(var1,var2)函數來簡化...我只是決定嘗試一下,它有效哈哈...
回覆:可變擬合模型腳本可能嗎?抱歉,我錯過了響應表面部分。 正如您所經歷的那樣,另一個函數似乎不能很好地解析列表。 JSL 在這方面相當煩人,因為通常很難事先告知論證的要求。
因此,我們也必須對擬合模型物件執行相同的技巧,即使用表達式並替換。 例如:
dt =打開( “$ENGLISH_SAMPLE_DATA/Tiretread.jmp” ) ;
A = 0 ;
目標清單= {最小化,最大化} ; // 選項列表
變數列表= { :磨損, :硬度} ;
rs_列表= { :二氧化矽, :矽烷, :硫} ;
物件表達式=表達式(物件= dt <<適合模型(
是(變數列表[我] ) ,
效果,
性格(標準最小平方法) ,
強調(效果篩選) ,
不合適( 0 ) ,
排序估計( 1 ) ,
按預測繪製實際情況( 1 ) ,
繪圖回歸( 0 ) ,
按預測繪製殘差圖( 0 ) ,
劇情效應槓桿( 0 ) ,
跑步()
)) ;
objsettings_expr =表達式(
物件<<分析器(
1 ,
信賴區間( 1 ) ,
變數<<回應限制( {目標(最大最小) ,重要性( 1 )} ) ,
最大化意願( 1 ) ,
意願函數( 1 )
)
) ;
rs_cols =正規表示式(查爾( rs_列表) , “\{(.+)\}” , “\1” ) ; // 從大括號中刪除列表
代入(物件表達式,表達式(效果) ,解析( “效果(響應面(” || rs_cols || “))” ) ) ; // 將效果作為 Parse(string) 插入
代入( objsettings_expr ,表達式(最大最小) ,目標清單[ A + 1 ] ) ; //設定目標
為了(我= 1 ,我<= N 項(變數列表) ,我++,
物件表達式;
評估(代替(名稱表達式( objsettings_expr ) ,表達式(變數) ,變數列表[我] ) ) ; // 應用分析器設定
) ;
回覆:可變擬合模型腳本可能嗎?首先感謝mpb和ms的建議,非常感謝你們的幫忙! 首先,參考mpb的回复,我需要使用響應面()根據我的分析,似乎是這樣做的:
response surface(eval(rs_list))
不起作用。我之前多次嘗試過mpb建議的方法,但沒有成功。 使用了以下程式碼:
Cannot find specified column in access or evaluation of 'Eval' , Eval( rs_list )In the following script, error marked by /*###*/obj=Fit Model( Y( var_list ), //this part works perfectly fine if the response list is listed out below Effects( response surface( Eval/*###*/(rs_list) ) ), Personality( Standard Least Squares ), Emphasis( Effect Screening ), Run, invisible);
有什麼方法可以實現響應面或其他替代方法?
至於MS的回复,我想知道,你能讀懂我的心思嗎哈哈哈...是的,我面臨的主要問題是響應限制部分!它似乎沒有根據需要正確地最大化或最小化...我將嘗試上面的示例:)...但是謝謝您,非常感謝您的幫助,我真誠地感謝所有這些幫助,因為我一直在嘗試這個數週:)
可變擬合模型腳本可能嗎?如同 mpb 上面所指出的,Y() 和 Effects() 理解變數和評估的變數清單。 但是,探查器訊息「<< 回應限制({})」似乎不評估列變量,至少不由列表項表示。 因此,在變數列表上循環它並不是很簡單。
解決這個問題的一種方法是使用表達式並替換循環中的關鍵條目。
下面是一個範例(使用 JMP 範例資料檔之一):
dt =打開( “$ENGLISH_SAMPLE_DATA/Tiretread.jmp” ) ;
A = 0 ;
目標清單= {最小化,最大化} ; // 選項列表
var_list = { :磨損, :硬度} ;
rs_list = { :二氧化矽, :矽烷, :硫} ;
objsettings_expr =表達式(
物件<<分析器(
1 ,
信賴區間( 1 ) ,
變數<< Response Limits ( {目標( maxmin ) ,重要性( 1 )} ) ,
maximize desirability ( 1 ) ,
Desirability Functions ( 1 )
)
) ;
Substitute Into ( objsettings_expr ,表達式( maxmin ) , goal_list [ A + 1 ] ) ; // set goal
為了(我= 1 ,我<= N Items ( var_list ) ,我++,
物件= dt << Fit Model (
是( var_list [我] ) ,
效果(評估( rs_list ) ) ,
性格( Standard Least Squares ) ,
強調( Effect Screening ) ,
Lack of Fit ( 0 ) ,
Sorted Estimates ( 1 ) ,
Plot Actual by Predicted ( 1 ) ,
Plot Regression ( 0 ) ,
Plot Residual by Predicted ( 0 ) ,
Plot Effect Leverage ( 0 ) ,
跑步()
) ;
評估(代替( Name Expr ( objsettings_expr ) ,表達式(變數) , var_list [我] ) ) ; // apply profiler settings
) ;
可變擬合模型腳本可能嗎?這可能會有所幫助:
var_list={:DrvrOS,:DrvrUS};
rs_list={:SKEW,:PKGIMP,:MBIMP,:XT,:MBLEN};
fm = 擬合模型(
Y(評估(var_list)),
效果( eval(rs_list)),
個性(標準最小平方法),
重點(效果篩選)、
跑步()
);