このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
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 次モデルより優れた適合を得られます。
入力引数
x
— テストするデータ
行列 (既定値) | cell 配列
テストするデータ。行列または cell 配列として指定します。
単一のテスト データ セットの場合は Ns 行 N 列の行列を指定します。Ns はサンプルの数、N はチャネルの数です。複数チャネル データを使用するには
cost_fun
を'NRMSE'
または'NMSE'
として指定する必要があります。複数のテスト データ セットの場合、長さが Nd の cell 配列を指定します。Nd はテストと参照のペアの数で、各 cell には 1 つのデータ行列が含まれます。
x
には、NaN
または Inf
値のいずれも含めることはできません。
xref
— 参照データ
行列 (既定値) | cell 配列
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
値のいずれも含めることはできません。
cost_func
— コスト関数
'MSE'
| 'NRMSE'
| 'NMSE'
適合度を決定するコスト関数。以下のいずれかの値として指定します。方程式において、fit 値はテスト データ セットと参照データ セットの単一の組み合わせに適用されます。
値 | 説明 | 方程式 | メモ |
---|---|---|---|
'MSE' | 平均二乗誤差 |
ここで、Ns はサンプルの数で、‖ はベクトルの 2 ノルムを示します。 | fit はスカラーです。 |
'NRMSE' | 正規化平方根平均二乗誤差 |
ここで、‖ はベクトルの 2 ノルムを示します。 | fit は行ベクトルです。 |
'NMSE' | 正規化平均二乗誤差 |
| fit は行ベクトルです。 |
出力引数
fit
— 適合度
スカラー | 行ベクトル | cell 配列
テスト データ セットと参照データ セットのペアの適合度。スカラー、行ベクトル、または 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 で導入R2020a: goodnessOfFit
:3 つのすべてのコスト関数における適合結果は誤差ノルムを表し、値 0 は完全適合を示す
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 コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- 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)