MATLAB Answers

Fitpercentについて(system identification toolbox)

14 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)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!