1

次のMatlabの観察には非常に困惑しています。

私の問題では、離散的にサンプリングされた入出力データから ARX/ARMAX モデルを推定しようとしています。コマンドラインで線形モデルを識別するためのMatlabのガイドに従っています(システム識別ツールボックスを使用)

  • 私のデータセットは 980 の入力と出力のペア (実験) で、サンプリング時間はTs = 102 秒 (入力 2 つ、出力 1 つ) です。my_data私はデータを 490 回の実験の 2 つのサブセットに分割しました:experimentalvalidation.
  • 実行delayest(my_data)すると、どの入力にも遅延がないことがわかります。したがってnk1=0、 とnk2=0.
  • と で注文を識別するとselstruc、、 、 の注文をarxstruc選択できます。nanb1nb2
  • システムの初期条件をゼロに設定opt=armaxOptions('InitialCondition','z')しました (Matlab で推定変数として扱うことはありません)。

上記のすべてを考慮して、私は実行します

my_model = arx(experimental,[6,[2,5],[0,0]],opt)

コマンドラインで次のモデルを提供します(pastebinのリンク)。

experimental上記のリンクから下にスクロールすると、データへの適合がかなり良好であることがわかります。


そして、ここに私の質問があります:

サブセットを使用してデータを検証する場合は、次のコマンドvalidationで比較を実行します。compare

% the model had zero initial condition as well
opt=compareOptions('InitialCondition','z'); 
[~,fit_vector,~]=compare(validation,my_model,opt);
disp(num2str(cell2mat(fit_vector)))

これは興味深いことです。表示された数値が-109.626 %適切になりました。

  • arxこのコマンドの正確な動作を知っている人はいますか? (上記の貼り付けリンクで)モデルを生成するときのフィットとコマンドを使用するときのフィットとの間にこのような不一致があるのはなぜcompareですか?

  • experimental異なるデータセットとであっvalidationても、それらは両方とも同じファミリの入力 (入力 1 の異なる持続時間と振幅のパルス、入力 2 は外因性入力) に由来するため、非常に奇妙に感じます。

4

0 に答える 0