Main Content

selstruc

単出力 ARX モデルのモデル次数を選択する

構文

nn = selstruc(v)
[nn,vmod] = selstruc(v,c)

説明

メモ

selstruc は単出力システムにのみ使用します。selstruc は単入力と多入力の両方のシステムをサポートします。

selstruc は、arxstruc または ivstruc から出力として取得した行列 v に含まれている情報からモデル構造 (次数) を選択できるようにする関数です。

c の既定値は 'plot' です。プロットは、使用されたパラメーターの数の関数として、モデルによって説明されていない出力分散のパーセントを示しています。各値は、その数のパラメーターの最良の適合を示しています。プロット内をクリックすることで、どの次数が興味深いかを調べることができます。[選択] をクリックすると、選択した数のパラメーターで最適なモデル構造として変数 nn がワークスペースにエクスポートされます。複数の選択を行うことができます。

c = 'aic' はプロットを示しませんが、以下を最小化する構造を nn で返します。

Vmod=log(V(1+2dN))=log(V)+2dN,Nd

ここで、V は損失関数、d は対象の構造の合計パラメーター数、N は推定に使用するデータ点の数です。log(V)+2dN は赤池情報量基準 (AIC) です。詳細については、aic を参照してください。

c = 'mdl' はリサネンの最小記述長 (MDL) 基準を最小化する構造を nn で返します。

Vmod=V(1+dlog(N)N)

c が数値に等しいとき、Vmod=V(1+cdN) を最小化する構造が

選択されます。

出力引数 vmodv と同じ形式ですが、適宜変更された基準の対数を含みます。

すべて折りたたむ

推定と検証のデータ セットを作成します。

load iddata1;
ze = z1(1:150);
zv = z1(151:300);

モデルの次数と遅延の範囲を指定して、推定用のモデル次数の組み合わせを生成します。

NN = struc(1:3,1:2,2:4);

操作変数法を使用して ARX モデルを推定し、それぞれのモデル次数の組み合わせについて損失関数を計算します。

V = ivstruc(ze,zv,NN);

検証データに最もよく適合するモデル次数を選択します。

order = selstruc(V,0);

選択された次数の ARX モデルを推定します。

M = iv4(ze,order);

推定と検証のデータ セットを読み込み、変数名を表示します。

load co2datatt tte ttv
head(tte,3)
     Time      u1     u2      y1   
    _______    ___    __    _______

    0.5 sec    170    50    -44.302
    1 sec      170    50    -44.675
    1.5 sec    170    50     -45.29

モデル次数の組み合わせを生成します。

  • na = 2:4

  • nb = 2:5 (1 番目の入力)、1 または 4 (2 番目の入力)。

  • nk = 1:4 (1 番目の入力)、0 (2 番目の入力)。

NN = struc(2:4,2:5,[1 4],1:4,0);

それぞれのモデル次数の組み合わせについて ARX モデルを推定します。

V = arxstruc(tte,ttv,NN);

検証データに最もよく適合するモデル次数を選択します。

order = selstruc(V,0)
order = 1×5

     2     4     4     2     0

選択された次数の ARX モデルを推定します。

M = arx(tte,order)
M =
Discrete-time ARX model: A(z)y(t) = B(z)u(t) + e(t)               
  A(z) = 1 - 1.252 z^-1 + 0.302 z^-2                              
                                                                  
  B1(z) = -0.3182 z^-2 - 0.1292 z^-3 + 0.2883 z^-4 + 0.001051 z^-5
                                                                  
  B2(z) = -0.02705 + 0.01948 z^-1 + 0.1695 z^-2 + 0.3278 z^-3     
                                                                  
Sample time: 0.5 seconds
  
Parameterization:
   Polynomial orders:   na=2   nb=[4 4]   nk=[2 0]
   Number of free coefficients: 10
   Use "polydata", "getpvec", "getcov" for parameters and their uncertainties.

Status:                                          
Estimated using ARX on time domain data "tte".   
Fit to estimation data: 88.59% (prediction focus)
FPE: 3.993, MSE: 3.938                           
 

バージョン履歴

R2006a より前に導入