MATLAB Answers

Fitpercentについて(system identification toolbox)

8 views (last 30 days)
Takeshi Nakamura
Takeshi Nakamura on 20 Nov 2017
Commented: mizuki on 26 May 2018
armax関数で同定したモデルのFitPercentが99.98%にも関わらずcompare関数で元データとクロスプロットすると、Fit率(?)が4.4%となり、プロットデータも最初の部分があっているのみで、全体的には合っていません。 このFitPercent99.8%というデータはどういうデータを意味し、このFitPercent99.8%のデータとクロスプロットするためには、どのようにコマンド記述すればよろしいでしょうか?(compareOptionsで、何か指定するのでしょうか?)

  0 Comments

Sign in to comment.

Accepted Answer

mizuki
mizuki on 18 Apr 2018
  • FitPercent の意味

FitPercent はモデルの応答が推定データに対してどれくらいフィットしているかをパーセンテージで示した値です。このパーセンテージは、正規化された二乗平均誤差 (Normalized Root Mean Squared Error) を基準としています。

この説明は、以下 armax のドキュメントの出力変数 (Output Arguments) の sys (ARMAX モデル) の項目に記載されています。 https://jp.mathworks.com/help/ident/ref/armax.html

  • 元の値とフィッティングした推定値のクロスプロット

compare 関数を使用して元の値と推定値を描画することができます。

load iddata9;
z9.y = cumsum(z9.y);
model = armax(z9, [4 1]);
model.Report.Fit.FitPercent % FitPercent の値を出力
ans =
   96.8090
compare(z9,model, 1)   % 1-step ahead prediction

  2 Comments

Takeshi Nakamura
Takeshi Nakamura on 14 May 2018
ちなみにですが,compare(z9,model, 1)と,compare(z9,model)で描画結果が変わってくると思いますが,この違いの意味するところを教えて頂けませんか?
mizuki
mizuki on 26 May 2018
第三入力引数は、 compare のドキュメント内の prediction_horizon の変数になります。
Input Arguments の項目に詳細記載がありますが、既定では Inf になっています。これは、システムシミュレーションの応答とデータを比較しています。Nを入れた場合、N-step 先の予測応答とデータを比較しています。時系列モデルであれば数値を入れるべき (finite にするべき) との記載があります。

Sign in to comment.

More Answers (0)