変数適合モデルのスクリプト作成は可能ですか?<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_list上記の応答曲面関数に? (私もリストを機能させることができないようです)...アイデアやアドバイスをいただければ幸いです。よろしくお願いします。良い一日をお過ごしください!:)
変数適合モデルのスクリプト作成は可能ですか?MS さん、ご指導ありがとうございました。感謝しています!:)
変数適合モデルのスクリプト作成は可能ですか?OK、私のコードは、使用したサンプルテーブルに適用すると機能します。 より大きなテーブルに適用すると、予測による実際のプロットが一部の反復で欠落していることも経験します。 これは、望ましさの適合が遅いことと、現在の計算が完了していないにもかかわらず、JMP がコードを先に実行し続けることが原因である可能性があると思います。 場合によっては、適切な場所に Wait() コマンドを挿入することでこれを解決できることがあります (ここでは、それらがどこにあるかは明らかではありません)。
Re: 変数適合モデルのスクリプト作成は可能ですか?MS、あなたのコードを試しましたが、いくつかのバグがあるようです?...私が見ているのは、レポートの予測ウィンドウに実際のプロットが表示されない場合がありますが、他のものには表示されることがあります。 drvros のレポートには実際のプロットがありませんが、drvrus プロットには実際のプロットがあります...シーケンスに従って最大化と最小化も試みました。たとえば、最初に最大化し、次に最小化しますが、同様に機能するようです...任意アイデアは?よろしくお願いします!:)
PS: 専門家の指導をしていただき、本当にありがとうございます。2 つの返信から多くのことを学びました。JSL は本当に神経質になることがあります (笑)、以前は、スクリプト ガイドで応答サーフェス() 関数が見つかりませんでした( JMP9.0.3 スクリプト ガイドにはリストされていません)、次のような他の方法を使用しました。
効果(
var1 と RS、
var2 と RS、
多項式 (var1,var2)、
階乗(var1,var2)、
)
これは、response surface(var1,var2) 関数を使用して簡素化できます...試してみることにしましたが、うまくいきました (笑)
Re: 変数適合モデルのスクリプト作成は可能ですか?申し訳ありませんが、応答の表面部分を見逃していました。 また、あなたも経験したように、リストをうまく解決できないように見える別の関数もあります。 JSL は、引数の要件を事前に伝えるのが難しい場合が多いため、この点で非常に面倒です。
したがって、Fit Model オブジェクトに対しても同じトリックを実行する必要があります。つまり、式を使用して置換する必要があります。 例えば:
dt =開ける( "$ENGLISH_SAMPLE_DATA/タイヤトレッド.jmp" ) ;
ある= 0 ;
目標リスト= {最小化する、最大化する} ; // オプションリスト
var_list = { :摩耗、 :硬度} ;
rs_list = { :シリカ、 :シラン、 :硫黄} ;
obj_expr =式(オブジェクト= dt <<フィットモデル(
Y ( var_list [私】 ) 、
効果、
人格(標準最小二乗法) 、
強調(効果のスクリーニング) 、
運動不足( 0 ) 、
分類された見積もり( 1 ) 、
実際の値と予測値をプロットする( 1 ) 、
回帰プロット( 0 ) 、
予測による残差のプロット( 0 ) 、
プロット効果の活用( 0 ) 、
走る()
)) ;
objsettings_expr =エクスプレッション(
オブジェクト<<プロファイラー(
1 、
信頼区間( 1 ) 、
変数<<応答制限( {ゴール(最大値) 、重要性( 1 )} ) 、
望ましさを最大化する( 1 ) 、
好感度関数( 1 )
)
) ;
rs_cols =正規表現(シャア( rs_list ) 、 「\{(.+)\}」 、 「\1」 ) ; // 中括弧からリストを削除します
に代入( obj_expr 、エクスプレッション(効果) 、解析する( "エフェクト( 応答曲面(" || rs_cols || "))" ) ) ; // エフェクトを Parse(string) として挿入します
に代入( objsettings_expr 、エクスプレッション(最大値) 、目標リスト[ある+ 1 】 ) ; // 目標を設定する
のために(私= 1 、私<= N 個のアイテム( var_list ) 、私++、
obj_expr ;
評価(代わりの(名前の説明( objsettings_expr ) 、エクスプレッション(変数) 、 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);
応答曲面または他の代替方法を実装する方法はありますか?
MS の返答については、私の心が読めるか、と思っていました。ははは...そう、私が直面している主な問題は、応答制限の部分です。必要に応じて正しく最大化または最小化されないようです...上記の例を試してみます:)...しかし、助けてくれてありがとう、私はこれを試してきたので、このすべての助けに心から感謝しています数週間:)
変数適合モデルのスクリプト作成は可能ですか?mpb で前述したように、Y() と Effects() は変数を理解し、変数のリストを評価します。 ただし、プロファイラ メッセージ「<< Responselimits({})」は、列変数 (少なくともリスト項目で表されていない) を評価していないようです。 したがって、変数リストに対してこれをループすることは、あまり単純ではありません。
これを回避する 1 つの方法は、式を使用し、ループ内の重要なエントリを置き換えることです。
以下に例を示します (JMP サンプル データ ファイルの 1 つを使用)。
dt =開ける( "$ENGLISH_SAMPLE_DATA/タイヤトレッド.jmp" ) ;
ある= 0 ;
目標リスト= {最小化する、最大化する} ; // オプションリスト
var_list = { :摩耗、 :硬度} ;
rs_list = { :シリカ、 :シラン、 :硫黄} ;
objsettings_expr =エクスプレッション(
オブジェクト<<プロファイラー(
1 、
信頼区間( 1 ) 、
変数<<応答制限( {ゴール(最大値) 、重要性( 1 )} ) 、
望ましさを最大化する( 1 ) 、
好感度関数( 1 )
)
) ;
Substitute Into ( objsettings_expr 、 Expr ( maxmin ) 、 goal_list [ある+ 1 】 ) ; // set goal
のために(私= 1 、私<= N Items ( var_list ) 、私++,
オブジェクト= dt << Fit Model (
Y ( var_list [私】 ) 、
効果(評価( rs_list ) ) 、
人格( Standard Least Squares ) 、
強調( Effect Screening ) 、
運動不足( 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 ) 、 Expr (変数) 、 var_list [私】 ) ) ; // apply profiler settings
) ;
変数適合モデルのスクリプト作成は可能ですか?これは役立つかもしれません:
var_list={:DrvrOS,:DrvrUS};
rs_list={:SKEW、:PKGIMP、:MBIMP、:XT、:MBLEN};
fm = モデルの適合(
Y(eval(var_list)),
エフェクト( eval(rs_list))、
性格(標準最小二乗法)、
強調(効果スクリーニング)、
走る()
);