가변 맞춤 모델 스크립팅이 가능합니까?<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개의 변수가 있고 이를 모두 사용하여 fitmodelling을 통해 일련의 최소 제곱 분석을 진행하고 싶지만 제대로 작동하지 않는 것 같습니다. 위의 코드는 처음에는 for 루프는 10번 반복됩니다. (이것은 변수의 수가 많거나 적을 수 있으므로 달라질 수 있습니다.) 그러나 문제는 위 목록에서 원하는 분석을 수행하도록 jmp에 명령하는 루프를 사용하고 싶다는 것입니다. 또한 배치하는 것이 가능합니까? rs_list 위의 반응 표면 기능에? (목록이 제대로 작동하지 않는 것 같습니다.)...어떤 아이디어나 조언이라도 대단히 감사하겠습니다! 미리 감사드리며, 좋은 하루 보내세요! 
가변 맞춤 모델 스크립팅이 가능합니까?안내해주신 MS님께 정말 감사드립니다. 감사합니다! 
가변 맞춤 모델 스크립팅이 가능합니까?좋습니다. 제가 사용한 예제 테이블에 적용하면 제 코드가 여기에서 작동합니다. 더 큰 테이블에 적용하면 일부 반복에서 실제 예측 플롯이 누락되는 경우도 있습니다. 바람직도가 느리게 맞춰지는 결과일 수 있으며 현재 계산이 완료되지 않았음에도 불구하고 JMP가 계속해서 코드를 실행하는 것 같습니다. 때로는 올바른 위치에 Wait() 명령을 삽입하여 이 문제를 해결할 수 있습니다(여기서는 어디에 있는지 명확하지 않습니다).
Re: 가변 맞춤 모델 스크립팅이 가능합니까?MS, 귀하의 코드를 시도해 보았는데 버그가 있는 것 같은데요?...제가 보고 있는 것은 때로는 실제 플롯이 보고서의 예측 창에 나타나지 않는 반면 다른 것에는 나타나는 경우가 있다는 것입니다. 예: drvros의 보고서에는 실제 플롯이 없지만 drvrus 플롯에는 실제 플롯이 있습니다. 또한 시퀀스에 따라 최대화 및 최소화를 시도했습니다. 예를 들어 먼저 최대화한 다음 최소화하지만 잘 작동하는 것 같습니다...아무거나 아이디어? 미리 감사드립니다! 
추신: 귀하의 전문적인 지도에 진심으로 감사드립니다. 귀하의 두 답변에서 많은 것을 배웠습니다. JSL은 정말 신경을 거슬리게 할 수 있습니다. 하하, 이전에는 스크립팅 가이드에서 응답 표면() 함수를 찾을 수 없었습니다. JMP9.0.3 스크립팅 가이드에 나열되지 않음) 다음과 같은 다른 방법을 사용했습니다.
효과(
var1 및 RS,
var2 및 RS,
다항식(var1,var2),
계승(var1,var2),
)
이는 응답 표면(var1,var2) 함수를 사용하여 단순화할 수 있습니다... 방금 시도해 보기로 결정했고 작동합니다 ㅋㅋㅋ...
Re: 가변 맞춤 모델 스크립팅이 가능합니까?죄송합니다. 응답 표면 부분을 놓쳤습니다. 그리고 여러분도 경험하셨듯이 목록을 잘 해결하지 못하는 것 같은 또 다른 기능이 있습니다. JSL은 인수에 대한 요구 사항을 미리 말하기가 종종 어렵기 때문에 이 점에서 매우 짜증스럽습니다.
따라서 Fit Model 객체에 대해서도 동일한 트릭을 수행해야 합니다. 즉, 표현식을 사용하고 대체해야 합니다. 예를 들어:
dt = 열려 있는 ( "$ENGLISH_SAMPLE_DATA/Tiretread.jmp" ) ;
ㅏ = 0 ;
목표_목록 = { 최소화 , 최대화 } ; // 옵션 목록
var_list = { : 연마 , : 경도 } ;
rs_list = { : 규토 , : 실란 , : 황 } ;
obj_expr = 특급 ( 객체 = dt << 모델 맞춤 (
와이 ( var_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 ) ,
달리다 ()
)) ;
objsettings_expr = 만료 (
obj << 프로파일러 (
1 ,
신뢰 구간 ( 1 ) ,
var << 응답 제한 ( { 목표 ( 최대최소 ) , 중요성 ( 1 )} ) ,
바람직함을 극대화하다 ( 1 ) ,
만족도 함수 ( 1 )
)
) ;
rs_cols = 정규식 ( 숯 ( rs_list ) , "\{(.+)\}" , "\1" ) ; // 중괄호에서 목록 제거
대체하다 ( obj_expr , 만료 ( 효과 ) , 구문 분석 ( "효과(반응 표면(" || rs_cols || "))" ) ) ; // Effect를 Parse(string)로 삽입합니다.
대체하다 ( objsettings_expr , 만료 ( 최대최소 ) , 목표_목록 [ ㅏ + 1 ] ) ; // 목표를 설정하다
을 위한 ( 나 = 1 , 나 <= N개 품목 ( var_list ) , 나 ++,
obj_expr ;
평가 ( 대리자 ( 이름 만료 ( objsettings_expr ) , 만료 ( var ) , var_list [ 나 ] ) ) ; // 프로파일러 설정 적용
) ;
Re: 가변 맞춤 모델 스크립팅이 가능합니까?우선, 조언을 주신 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);
응답 표면이나 다른 대체 방법을 구현하는 방법이 있습니까?
As for MS' reply, i was wondering, can you read my mind hahaha...yeah, the main problem i'm facing is the response limit part! it doesn't seem to maximize or minimize corrrectly as needed...i'll try out your example above:)... but thank you,so much for your help, i sincerely appreciate all this help as i have been trying this for weeks:)
Variable Fit Model Scripting possible?As noted above by mpb, Y() and Effects() understand variables and evaluated lists of variables. However, the Profiler message "<< Response limits({})" appears not to evaluate a column variable, at least not represented by a list item. To loop this over a variable list is therefore not very straightforward.
One way to get around that is to use expressions and substitute the critical entries within the loop.
Here's an example (using one of JMPs sample data files):
dt = Open( "$ENGLISH_SAMPLE_DATA/Tiretread.jmp" );
a = 0;
goal_list = {Minimize, Maximize}; // options list
var_list = {:ABRASION, :HARDNESS};
rs_list = {:SILICA, :SILANE, :SULFUR};
objsettings_expr = Expr(
obj << Profiler(
1,
Confidence Intervals( 1 ),
var << Response Limits( {Goal( maxmin ), Importance( 1 )} ),
maximize desirability( 1 ),
Desirability Functions( 1 )
)
);
Substitute Into( objsettings_expr, Expr( maxmin ), goal_list[a + 1] ); // set goal
For( i = 1, i <= N Items( var_list ), i++,
obj = dt << Fit Model(
Y( var_list[i] ),
Effects( Eval( rs_list ) ),
Personality( Standard Least Squares ),
Emphasis( 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 ),
Run()
);
Eval( Substitute( Name Expr( objsettings_expr ), Expr( var ), var_list[i] ) );// apply profiler settings
);
Variable Fit Model Scripting possible?This may be helpful:
var_list={:DrvrOS,:DrvrUS};
rs_list={:SKEW,:PKGIMP,:MBIMP,:XT,:MBLEN};
fm = Fit Model(
Y(eval(var_list)),
Effects( eval(rs_list)),
Personality( Standard Least Squares ),
Emphasis( Effect Screening ),
Run()
);