goodnessOfFit
同定されたモデルの解析および検証用のテスト データと参照データの適合度
説明
goodnessOfFit は、テスト データ セットと参照データ セットの間の誤差ノルムを表す適合値を返します。シミュレートされたモデル出力を測定データと比較して可視化する場合は、compare も参照してください。
例
推定されたモデルの測定出力データとシミュレーション出力の適合度を算出します。
測定出力を取得します。
load iddata1 z1 yref = z1.y;
z1 は、測定入出力データを含む iddata オブジェクトです。z1.y は測定出力です。
2 次伝達関数モデルを推定し、モデル出力 y_est をシミュレートします。
sys = tfest(z1,2); y_est = sim(sys,z1(:,[],:));
測定出力と推定出力の適合度、つまり誤差ノルムを計算します。コスト関数として正規化平方根平均二乗誤差 (NRMSE) を指定します。
cost_func = 'NRMSE';
y = y_est.y;
fit = goodnessOfFit(y,yref,cost_func) fit = 0.2943
あるいは、compareを使用して適合値を計算します。compare はコスト関数 NRMSE を使用し、誤差ノルムの 1 の補数を使用して適合率を表現します。したがって、compare と goodnessOfFit の適合関係は となります。100% の compare 結果は、0 の goodnessOfFit 結果と等価です。
goodnessOfFit で仮定される初期条件と一致する、ゼロの初期条件を指定します。
opt = compareOptions('InitialCondition','z'); compare(z1,sys,opt);

適合結果は等価です。
2 つのモデルの測定出力と推定出力の適合度を算出します。
入出力測定 z2 を iddata2 から取得します。測定出力を参照出力 yref にコピーします。
load iddata2 z2 yref = z2.y;
z2 を使用して 2 次および 4 次伝達関数モデルを推定します。
sys2 = tfest(z2,2); sys4 = tfest(z2,4);
両方のシステムをシミュレートし、推定された出力を取得します。
y_sim2 = sim(sys2,z2(:,[],:)); y2 = y_sim2.y; y_sim4 = sim(sys4,z2(:,[],:)); y4 = y_sim4.y;
参照出力と推定出力から cell 配列を作成します。参照データ セットはどちらのモデル比較でも同じであるため、等価な参照 cell を作成します。
yrefc = {yref yref};
yc = {y2 y4};3 つのコスト関数の fit 値を計算します。
fit_nrmse = goodnessOfFit(yc,yrefc,'NRMSE')fit_nrmse = 1×2
0.1429 0.1345
fit_nmse = goodnessOfFit(yc,yrefc,'NMSE')fit_nmse = 1×2
0.0204 0.0181
fit_mse = goodnessOfFit(yc,yrefc,'MSE')fit_mse = 1×2
1.0811 0.9586
0 の適合値は、参照出力と推定出力の完全適合を示します。適合度が下がると、適合値は高くなります。3 つのすべてのコスト関数において、4 次モデルの方が 2 次モデルより優れた適合を得られます。
入力引数
テストするデータ。行列または cell 配列として指定します。
単一のテスト データ セットの場合は Ns 行 N 列の行列を指定します。Ns はサンプルの数、N はチャネルの数です。複数チャネル データを使用するには
cost_funを'NRMSE'または'NMSE'として指定する必要があります。複数のテスト データ セットの場合、長さが Nd の cell 配列を指定します。Nd はテストと参照のペアの数で、各 cell には 1 つのデータ行列が含まれます。
x には、NaN または Inf 値のいずれも含めることはできません。
x と比較される参照データ。行列または cell 配列として指定します。
単一の参照データ セットの場合は Ns 行 N 列の行列を指定します。Ns はサンプルの数、N はチャネルの数です。
xrefはxと同じサイズでなければなりません。複数チャネル データを使用するにはcost_funを'NRMSE'または'NMSE'として指定する必要があります。複数の参照データ セットの場合、長さが Nd の cell 配列を指定します。Nd はテストと参照のペアの数で、各 cell には 1 つの参照データ行列が含まれます。個々のデータ行列と同様に、
xとxrefの cell 配列のサイズは一致しなければなりません。fit のi番目の各要素は、それぞれxとxrefの i 番目の cell のペアに対応します。
xref には、NaN または Inf 値のいずれも含めることはできません。
適合度を決定するコスト関数。以下のいずれかの値として指定します。方程式において、fit 値はテスト データ セットと参照データ セットの単一の組み合わせに適用されます。
| 値 | 説明 | 方程式 | メモ |
|---|---|---|---|
'MSE' | 平均二乗誤差 |
ここで、Ns はサンプルの数で、‖ はベクトルの 2 ノルムを示します。 | fit はスカラーです。 |
'NRMSE' | 正規化平方根平均二乗誤差 |
ここで、‖ はベクトルの 2 ノルムを示します。 | fit は行ベクトルです。 |
'NMSE' | 正規化平均二乗誤差 |
| fit は行ベクトルです。 |
出力引数
テスト データ セットと参照データ セットのペアの適合度。スカラー、行ベクトル、または cell 配列として返されます。
単一のテスト データ セットと参照データ セットのペアの場合、
fitはスカラーまたは行ベクトルとして返されます。cost_funが'MSE'の場合、fitはスカラーです。cost_funが'NRMSE'または'NMSE'の場合、fitは長さが N の列ベクトルです。N はチャネルの数です。
複数のテスト データ セットと参照データ セットのペアの場合、
xおよびxrefは長さが ND の cell 配列で、fitはベクトルまたは行列として返されます。cost_funが'MSE'の場合、fitは長さが ND の行ベクトルです。cost_funが'NRMSE'または'NMSE'の場合、fitはサイズが N 行 Nd 列の行列です。N はチャネル (データ列) の数、Nd はテストのペアの数を表します。
fitの各要素には、対応するテスト データと参照ペアの適合度の値が含まれます。
個々の適合要素に指定できる値は、cost_func の選択によって異なります。
cost_funcが'MSE'の場合、各fit値は、テスト データと参照データの間の誤差により増加する正のスカラーです。fit値が0の場合、テスト データと参照データは完全に一致しています。cost_funcが'NRMSE'または'NMSE'の場合、fit値は -Inf~ 1 です。0— 参照データに完全に適合 (ゼロ誤差)Inf— 適合率が低い1—xは、一致するxrefにある直線とほぼ同等
バージョン履歴
R2012a で導入goodnessOfFit は、3 つのすべてのコスト関数 (MSE、NRMSE、および NMSE) において誤差ノルム E を適合値として返すようになりました。以前の goodnessOfFit は、コスト関数 NRMSE または NMSE を使用する適合値に対して誤差ノルムの 1 の補数 1-E を返していました。この変更によって、3 つのコスト関数における適合値の解釈が一致し、完全適合を示す 0 が最適な適合値になります。
以前に計算された NRMSE と NMSE の適合値は、現在のソフトウェアで計算される適合値の 1 の補数です。同様に、NRMSE 適合値は、compare で計算されるパーセンテージ値で使用される適合値の 1 の補数になりました。たとえば、以前の goodnessOfFit 適合値が 0.8 であった場合、現在の適合値は 0.2 です。goodnessOfFit の適合値 0.2 は、compare の適合率 80% と等価です。
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)