非線形モデルのフィッティング実行時にさまざまなカテゴリの予測式を保存する方法非線形モデルのカスタム式に適合するスクリプトがあります(Nonlib では使用できません) モデル パラメーターの推定値を取得します。 赤い三角ボタンのメニューで式を保存し、予測式の保存を選択すると、新しい結果用に新しい列が作成されます。 これをすべてのカテゴリに対して行うことができます。
New Column( "Fitted Model By Sample",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Property( "By ID", 207957763 ),
Formula(
If( :Sample == "Barley 2710",
If( :Days > 0,
0.171070850115799 * Exp( -Exp( ((0.00826868962267886 * Exp()) / 0.171070850115799) * (8.5626914275992 - :Days) ) )
+0.189197655815188 * Exp( -Exp( ((0.0822175769423173 * Exp()) / 0.189197655815188) * (1.00952608535815 - :Days) ) ),
0
),
.
)
),
Set Property( "Predicting", {:Average, Creator( "Nonlinear" )} ),
Set Selected
);
Set Label Columns( :Label );
ただし、手動で実行する必要がないように、データテーブル内のすべてのカテゴリに対して実行できるようにしようとしています。 これを行う方法について何か提案はありますか?
新しい数式を公開しようとしましたが、次のように手動で実行した場合のように列が作成されません。
obj = Nonlinear( Y( :Average ), X( :Model ), Loss( :Err ), Iteration Limit( 5000 ), By( :Sample ) );
obj << go;
obj << Publish prediction formula;
obj << Set name( "Fitted Model by sample" );
また、JSL に記録されたスクリプトを以下のように変更してみましたが、残念ながら式は機能しません。 ご協力をよろしくお願いいたします。
obj = Nonlinear( Y( :Average ), X( :Model ), Loss( :Err ), Iteration Limit( 5000 ), By( :Sample ) );
obj << go;
//returns a list of vectors where each vector, contains the parameters estimates
obj << get estimates;
obj << get prediction formula;
col11 = New Column( "Fitted Model By Sample",
set formula(
If( :Days > 0,
(Y1_Y1_0 * Exp( -Exp( ((K1_K1_0 * Exp()) / Y1_Y1_0) * (P1_P1_0 - :Days) ) ) + Y2_Y2_0 * Exp(
-Exp( ((K2_K2_0 * Exp()) / Y2_Y2_0) * (P2_P2_0 - :Days) )
)),
0
),
By( :Sample ),
Set Property( "Predicting", {:Average, Creator( "Nonlinear" )} ),
Set Selected
),
Set Label Columns( :Label )
);
Re: 非線形モデルのフィッティング実行時にさまざまなカテゴリの予測式を保存する方法素晴らしい! コミュニティでこの解決策を見逃していたと信じられます。 あらゆる種類の例を検索しました。 「保存」するだけで十分でした。
フィルさん、本当にありがとう!
Re: 非線形モデルのフィッティング実行時にさまざまなカテゴリの予測式を保存する方法解決策は次のとおりですか@txnelsonでこの郵便受けヘルプ? (「予測式をテーブルに保存する」)
Names Default To Here( 1 );
dt = Open(
"$SAMPLE_DATA/Nonlinear Examples/Bioassay.jmp"
);
obj = Fit Curve(
Y( :Toxicity ),
X( :log Conc ),
Group( :formulation ),
Fit Logistic 4P
);
obj << (Fit[1] << Save Prediction Formula);
これは、予測式の公開ではなく、予測式の保存コマンドを使用します。 これはあなたがやりたいことであり、Pro は必要ないと思います。
これにより、事実上、各グループのモデルを含む結果予測式列が得られます。
Match( :Formulation,
"standard",
0.599015186864584 + (1.10686367677145 - 0.599015186864584) / (1
+Exp( -5.84379312234502 * (:log Conc - 0.32019959502239) )),
"test A",
0.590902329849433 + (1.1012080930316 - 0.590902329849433) / (1
+Exp( -5.98069280093278 * (:log Conc - 0.284551221955609) )),
"test B",
0.592984828033858 + (1.0972015134296 - 0.592984828033858) / (1
+Exp( -5.75586785289505 * (:log Conc - 0.084429442746212) )),
"test C",
0.593403681513877 + (1.10597929999838 - 0.593403681513877) / (1
+Exp( -6.00992746207644 * (:log Conc - 0.298749145989595) )),
.
)
Re: 非線形モデルのフィッティング実行時にさまざまなカテゴリの予測式を保存する方法こんにちは、フィルさん
フィードバックをお寄せいただきありがとうございます。
この返信についてもう少し詳しく説明してみます。
はい、私の質問は、モデルのフィッティングを自動化し、各グループの結果の予測式を含む列を生成する方法についてです。 作成したいのは 1 つの列だけです。 モデル式はすでに各グループの 1 つの列にあり、推定された新しいパラメーターを使用してそれを複製したいだけです。
これを行うというアイデアは、各グループの結果を個別にレポートできるようにするだけでなく、グラフ ビルダーを使用してモデル曲線と実験データを異なる方法でグラフィカルに表現できるようにするためです。
これがもっと明確になることを願っています。
それでも、これを行うには Jump Pro が必要なようですが、そうですか?
ありがとう
イボ
Re: 非線形モデルのフィッティング実行時にさまざまなカテゴリの予測式を保存する方法フィードバックありがとうございます。
スクリプトを試してみましたが、標準の JMP しか持っていないため、機能しませんでした…悲しいことに、その通りです。
Re: 非線形モデルのフィッティング実行時にさまざまなカテゴリの予測式を保存する方法予測式の公開は、JMP Pro の式デポに公開する機能に関連します。 標準の JMP を使用している場合、これは機能しないと思います。 スクリプト インデックスのサンプル スクリプトを使用して確認できます。
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Boston Housing.jmp" );
obj = K Nearest Neighbors(
Y( :mvalue ),
X(
:crim,
:zn,
:indus,
:chas,
:nox,
:rooms,
:age,
:distance,
:radial,
:tax,
:pt,
:b,
:lstat
),
K( 10 )
);
obj << (Response[1] << Publish Prediction Formula);
(ところで、これは JSL の挿入オプションについて私が言いたかったことであり、より明確ですよね?)
それは動作しますか? Formula Depot が表示されるはずです。 繰り返しますが、JMP Pro を使用している場合にのみ機能すると思います。
Re: 非線形モデルのフィッティング実行時にさまざまなカテゴリの予測式を保存する方法こんにちは、
あなたの課題を解決するために人々を助けるためのヒントをいくつか紹介します。
まず、スクリプトに関する質問を投稿するときに JSL オプションを使用できると助かります。 投稿ウィンドウの上にあるツールバーで をクリックし、そこに JSL を追加するだけです。 人々があなたの JSL を理解し、あなたを助けてくれるのがはるかに明確です。
次に、ここには複雑な非線形モデルのフィッティングがありますが、実際の質問は、モデルのフィッティングと各グループの予測式列の生成をどのように自動化するかについてです。 対処しようとしている問題の特定の部分を示す簡単な例を提供すると、人々が助けやすくなります。 また、これによって問題の解決策が得られるかどうかを他のコミュニティ メンバーが理解しやすくなります。 古典的な Big Class サンプル データ セットを使用した例は常に優れています。 あなたの場合、大きなクラスのセックスの各グループに単純なモデルを当てはめることで、あなたの課題を実証するには十分だと思います。 あるいは、それよりも複雑なのかもしれません。 ご提供いただいた情報が少し不明確なのでわかりません。
最後に、最終的に何を達成しようとしているのかについて少し説明していただけると役立つかもしれません。 グループごとに数式列を作成するのはなぜですか? 目的を達成するには、他にもっと良い方法があるかもしれません。
これらの手順に従えば、投稿した質問についてさらに多くのサポートが得られることがわかると思います。
よろしくお願いします。
フィル