このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
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)