JMP での「パワー フィット」モデルの実装とモデルのチューニング全て、
Excel の「パワー フィット」に適合するデータがいくつかあります。
この投稿でいくつかの役立つ情報を見つけました( https://community.jmp.com/t5/Discussions/Power-Fit-Equation-for-JMP/td-p/5783 )
このトピックについてさらにガイダンスをいただければ幸いです。
- Excel のデータに対してべき乗を実行すると、適合はかなり妥当に見えます。
- JSL のデータに対してべき乗を実行するには、theta1 と theta2 が 2 つの調整可能なパラメーターです。 フィットモデルをデータにうまく適合させるための theta2 と theta 1 の妥当な値は何かを試行錯誤の結果見つけました。
モデルをオーバーフィットせずに、特定のデータセットの theta1 と theta2 の最適な値をユーザーが特定するにはどうすればよいでしょうか?
可能であれば、親切に例を提供してください。
Re: JMPに「Power Fit」モデルを実装し、モデルをチューニングする最後に、テクニカル サポートから受け取った回答を掲載します。
基本的に、JSL を介した非線形プラットフォームの起動には特定の制限があります。つまり、非線形モデルを活用する最善の方法は、次の手順を実行することです。
1. モデルを管理する式をエンコードする列を定義します
2. 定式化された列を、非線形プラットフォームの関数呼び出しへの入力として提供します。
これは、初期の開始値を必要とする一方で、これまでに見つけた最良の答えです。
dt << New Column("Model E", Numeric, Continuous,
Formula( Parameter( {theta1 = 0.03, theta2 = 1.25}, theta1 * :year ^ theta2 ) )
);
dt << New Column("Exponential 3", Numeric, Continuous,
Formula( Parameter( {a = -20, b = 0.01, c = 0.01},
a + b * Exp( c * :year ) ) )
);
dt << New Column("Mechanistic Growth", Numeric, Continuous,
Formula( Parameter( {a = -40, b = 0.01, c = -0.01},
a * (1 - b * Exp( -c * :year ) ) ) )
);
dt << Run Formulas;
fc = Nonlinear( Y( :pop ), X( :Name("Exponential 3" )) );
fc << Finish;
fc << Save Prediction Formula;
//End Script;Re: JMPに「Power Fit」モデルを実装し、モデルをチューニングする非線形プラットフォームがどのように機能するかについての私の理解は少し異なります。そのプラットフォームを実行するには、パラメーターを使用して数式予測列を作成します。これらのパラメーターの初期値を推測として入力する必要があると思います。「Go」をクリックすると、プラットフォームは解に収束したかどうかを教えてくれます。収束して解を保存すると、作成した予測列にそれらの値が配置されますが、式は元の式と同じままです。つまり、予測列には、初期化して最適化する必要があるパラメーターが含まれています。ただし、他の JMP プラットフォームとは異なり、保存列は新しい列を作成せず、作成した同じ数式列に非線形最適化の解の値を配置するだけです。
私の理解が間違っているかもしれないので、誰かが私を訂正してください。
Re: JMPに「Power Fit」モデルを実装し、モデルをチューニングする@dale_lehman 、 @susan_walsh1
提案ありがとう 。
ワークフローを理解するために例をまとめようとしています。
「非線形」モデル プラットフォームを起動し、次のように指定します。
- Y - 変数
- X - 変数
- 非線形モデル
予測式を保存 - 値がデータ テーブルに保存されます。
モデルのパラメーターに開始値を設定していないため、これらの手順に従うことで、JMP が自動的に考えられる最適な値をモデルのパラメーターに設定し、予測データを列としてデータ表 。
ただし、同じデータ テーブルで 2 番目のモデルを実行しようとすると、非線形プラットフォームを 2 回目に起動した後に追加される列には、古いモデルの方程式が含まれます。以下のサンプル コードを参照してください。
Clear Log();
Clear Globals();
dt = Open( "$SAMPLE_DATA/Nonlinear Examples/US Population.jmp" );
/* Run Predictions using different models*/
PowerFitPredModel = Nonlinear(Y(:pop),X(:Name("X-formula")),"Model E(2P)");
PowerFitPredModel << Save Prediction Formula ;
PowerFitPredModel << Close Window;
Wait(0.1);
CPredModel = Nonlinear(Y(:pop),X(:Name("X-formula")),"Mechanistic Growth Model(3P)");
CPredModel << Save Prediction Formula ;
CPredModel << Close Window;
さて、私が従わないことのいくつかは次のとおりです。
- Non Linear Platform を複数回起動すると、最初に呼び出したモデル方程式だけが上記のスクリプトに適用されるのはなぜですか?
- JMP がモデルに適合すると仮定しているパラメータが、収束する解をもたらすかどうかを判断するにはどうすればよいですか?

Re: JMPに「Power Fit」モデルを実装し、モデルをチューニングする答えはありませんが、興味深い議論が始まるかもしれません。添付されているのは、自動車の速度と停止距離に関するいくつかの観察結果を含む小さなデータ セットです。パワー カーブがうまく適合しているように見えます。JMP の非線形プラットフォームと推定列を使用しました - 1,1 の初期パラメーター推測を使用しました (正しい値に近すぎず、それほど離れていません) - データセットに保存されるのは、非線形からの最適なものです。 platfrom (あなたの質問に対する部分的な回答として、JMP は theta1 と theta2 を計算するので、「過剰適合」について心配する必要はありませんが、最初の推測として使用する値に応じて、JMP が解に収束するかどうかという問題があります) .また、Power fit トレンドラインに対して Excel が提供する数式を使用して列を配置します。それらは同じではないことに注意してください!JMP の適合性は、Excel の適合性より優れています。Excel は多くの場合、最適な統計分析を実行しないため、これは驚くべきことではありません。しかし、このかなり単純なデータに対する 2 つのソリューションの違いには驚きました。
JMP と Excel の両方が、力関係をデータに適合させるときに問題に遭遇する可能性があると思います。JMP は、収束する場合でも解に収束する場合としない場合がありますが、その解は信頼できると思います。Excel は単に適合を示します - 適合しない場合にエラーが発生するかどうか、または何が起こるかはわかりません - おそらく、誰かが Excel がべき乗関数をデータにどのように適合させるかを明らかにすることができます。ここでの「オーバーフィッティング」は厄介な問題だと思います。それは、力関係が適切な関係であるかどうかに関係するものであり、適合している特定の力関係ではありません。アルゴリズムは theta1 値と theta2 値を選択しているため、データに最も適合する値になります。オーバーフィッティングは常に可能性がありますが、それはデータを適合させるために使用している関数のプロパティであり、特定の選択ではありません。アルゴリズムが選択するパラメータ。より明確な言い方をすれば、この特定のデータがモデル化しようとしているデータの適切なサンプルではない場合 (おそらく別のタイプの車)、このデータに力関係を当てはめることはオーバーフィッティングのリスクを冒すということです。
ExcelとJMPの質問は別のものであり、誰かが2つの違いを明らかにできるかどうかに興味があります.