実験データに適合する非線形モデルを報告する最良の方法を見つけようとしています。
非線形モデルに適合し、損失関数を使用してパラメータ推定値を求めるスクリプトを書くことができました。次に、各パラメータ推定値と非線形誤差を報告します。
しかし、得られた近似のRMSEまたはR二乗も求めたいと思います。これは非線形モデルでは利用できませんか?それとも、追加の分析ステップを追加する必要がありますか?
非線形解析プラットフォームを対話的に実行すると、結果のプロットに実験データとモデル曲線の両方が表示されます。ただし、スクリプトを自動的に実行すると、実験データのみが表示されます。なぜこれが起こるのか誰かが知っていますか?以下のスクリプトに何か足りないのでしょうか。
データ対結果のモデルのフィットのグラフを取得し、フィットのR二乗を報告することができるように、誰かがいくつかの文献/本/リンクを提供できますか?
非線形モデルの近似に使用しているスクリプトは、現時点では以下のものです。
col1 = New Column( "Model" );
col1 << set formula(
Parameter(
{Y1_Y1_0 = 0.2, K1_K1_0 = 0.01, P1_P1_0 = 0.004, Y2_Y2_0 = 0.15, K2_K2_0 = 0.06, P2_P2_0 = 0.3},
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
)
)
);
col2 = New Column( "Err" );
col2 << set Formula( Sum( (:Average - :Model) ^ 2 ) );
col2 << Evalformula;
col2 << Get formula;
obj = Nonlinear( Y( :Methane Yield ), X( :Model ), Loss( :Err ), Iteration Limit( 600 ), By( :Sample ) );
obj << go;
//returns a list of vectors where each vector, contains the parameters estimates
obj << get estimates;
//also see Get SSE, Get Parameter Names, Get CI
//Alternately, make a table
_xx = obj << Xpath( "//OutlineBox[@helpKey='Nonlinear Solution']" );
//only 2 groups so only 2 are found; each contains two sub tables
fit_dt = (_xx[1] << Find( Table Box( 1 ) )) << Make Combined Data Table;
est_dt = (_xx[1] << Find( Table Box( 2 ) )) << Make Combined Data Table;
fit_dt << set Name( "NonLin Fit Errors" );
est_dt << set Name( "NonLin Fit Estimates" );
あなたのRMSEはSqrt Avg Lossです。
不在の原因はわかりません。
ありがとうマーク。
あなたが提案したように私は損失関数を変更しました。フィッティングを実行しましたが、それでもプロット上にモデル曲線が表示されません。
私のソリューションでは、Avg LossとSqrt Avg Lossが得られます。これは私のRSMEが平均の損失であることを意味しますか?
RMSEはソリューションの概要で報告されています。

フィットモデルと縮小モデルの2つのモデルが必要なため、Rの二乗法は利用できません。非線形モデルの場合、縮小モデルはありません。(OLS回帰の縮小モデルは、切片の項が一定のモデルのみです。)
Nonlinearのデフォルトの損失関数を誤って再定義しています。デフォルトの損失は最小二乗誤差です。あなたのスクリプトから、最小二乗誤差を使いたいように見えます。列の式は、サンプル全体ではなく、観測ごとに損失が生じるはずです。だからあなたの損失式は二乗差だけでなければなりません。(つまり、差の2乗の合計を計算しないでください。)デフォルトの損失ではなく、この方法では、次のようになります。

そのため、カスタム損失を使用すると、ソリューション概要の情報が合計損失(この場合はSSE)、平均損失(この場合はMSE)、および平均平均損失(この場合はRMSE)に変更されます。
Nonlinearからスクリプトを保存して実行しました。データプロットはまだ非線形関数のグラフを表す曲線を示しています。