Main Content

aic

推定モデルの赤池情報量基準

説明

value = aic(model) は、推定モデルの正規化された赤池情報量基準 (AIC)の値を返します。

value = aic(model1,...,modeln) は、複数の推定モデルの正規化された AIC の値を返します。

value = aic(___,measure) は、AIC のタイプを指定します。

すべて折りたたむ

伝達関数モデルを推定します。

load iddata1 z1;
np = 2;
sys = tfest(z1,np);

正規化された赤池情報量基準の値を計算します。

value = aic(sys)
value = 0.5453

値はモデルの推定中にも計算されます。あるいは、モデルの Report プロパティを使用してこの値にアクセスします。

sys.Report.Fit.nAIC
ans = 0.5453

伝達関数モデルを推定します。

load iddata1 z1;
np = 2;
sys = tfest(z1,np);

正規化された赤池情報量基準 (AIC) の値を計算します。この構文は、aic_raw = aic(sys) と等価です。

aic_raw = aic(sys,'nAIC')
aic_raw = 0.5453

生の AIC の値を計算します。

aic_raw = aic(sys,'aic')
aic_raw = 1.0150e+03

サンプルサイズの補正された AIC の値を計算します。

aic_c = aic(sys,'AICc')
aic_c = 1.0153e+03

ベイズ情報量基準 (BIC) の値を計算します。

bic = aic(sys,'BIC')
bic = 1.0372e+03

これらの値はモデルの推定中にも計算されます。あるいは、モデルの Report.Fit プロパティを使用してこれらの値にアクセスします。

sys.Report.Fit
ans = struct with fields:
    FitPercent: 70.7720
       LossFcn: 1.6575
           MSE: 1.6575
           FPE: 1.7252
           AIC: 1.0150e+03
          AICc: 1.0153e+03
          nAIC: 0.5453
           BIC: 1.0372e+03

複数の出力誤差 (OE) モデルを推定し、小さいサンプルサイズの補正された赤池情報量基準 (AIC) の値を使用して精度と複雑度のトレードオフが最適なものを選択します。

推定データを読み込みます。

load iddata2

1:4 の範囲で変化するモデル次数を指定します。

nf = 1:4;
nb = 1:4;
nk = 0:4;

選択した次数範囲の考えられるすべての組み合わせで OE モデルを推定します。

NN = struc(nf,nb,nk); 
models = cell(size(NN,1),1);
for ct = 1:size(NN,1)
   models{ct} = oe(z2, NN(ct,:));
end

モデルに対する小さいサンプルサイズの補正された AIC の値を計算し、最も小さい値を返します。

V = aic(models{:},'AICc');
[Vmin,I] = min(V);

AIC の値が最も小さい最適なモデルを返します。

models{I}
ans =
Discrete-time OE model: y(t) = [B(z)/F(z)]u(t) + e(t)
  B(z) = 1.067 z^-2                                  
                                                     
  F(z) = 1 - 1.824 z^-1 + 1.195 z^-2 - 0.2307 z^-3   
                                                     
Sample time: 0.1 seconds
  
Parameterization:
   Polynomial orders:   nb=1   nf=3   nk=2
   Number of free coefficients: 4
   Use "polydata", "getpvec", "getcov" for parameters and their uncertainties.

Status:                                     
Estimated using OE on time domain data "z2".
Fit to estimation data: 86.53%              
FPE: 0.9809, MSE: 0.9615                    
 

入力引数

すべて折りたたむ

同定されたモデル。次のモデル オブジェクトのいずれかとして指定します。

AIC のタイプ。次の値のいずれかとして指定します。

  • 'nAIC' — 正規化された AIC

  • 'aic' — 生の AIC

  • 'AICc' — 小さいサンプルサイズの補正された AIC

  • 'BIC' — ベイズ情報量基準

詳細については、赤池情報量基準 (AIC)を参照してください。

出力引数

すべて折りたたむ

品質測定の値。スカラーまたはベクトルとして返されます。複数モデルの場合、valuevalue(k)k 番目の推定モデル modelk に対応する行ベクトルになります。

詳細

すべて折りたたむ

赤池情報量基準 (AIC)

赤池情報量基準 (AIC) は、モデルの品質を示す尺度です。モデルを異なるデータ セットでテストする状況をシミュレートすることで取得されます。複数の異なるモデルを計算した後、この基準を使用してそれらを比較できます。赤池の理論では、精度が最も高いモデルの AIC が最も小さくなります。モデルの推定と検証の両方に同じデータ セットを使用する場合、モデル次数を増やすほどモデル構造の柔軟性が高まり、常に適合度が向上します。

赤池情報量基準 (AIC) には次の品質メトリクスが含まれます。

  • 生の AIC。定義は次のとおりです。

    AIC=N*log(det(1N1Nε(t,θ^N)(ε(t,θ^N))T))+2np+N*(ny*(log(2π)+1))

    ここで、

    • N は推定データ セット内の値の数です。

    • ε(t) は予測誤差の ny 行 1 列のベクトルです。

    • θN は推定パラメーターを表します。

    • np は推定パラメーターの数です。

    • ny はモデルの出力の数です。

  • 小さいサンプルサイズの補正された AIC。定義は次のとおりです。

    AICc=AIC+2np*np+1Nnp1

  • 正規化された AIC。定義は次のとおりです。

    nAIC=log(det(1N1Nε(t,θ^N)(ε(t,θ^N))T))+2npN

  • ベイズ情報量基準。定義は次のとおりです。

    BIC=N*log(det(1N1Nε(t,θ^N)(ε(t,θ^N))T))+N*(ny*log(2π)+1)+np*log(N)

ヒント

  • ソフトウェアによるモデルの推定時、すべてのタイプの赤池情報量基準メトリクスが計算されて格納されます。それらの値にアクセスする場合は、モデルの Report.Fit プロパティを参照します。

参照

[1] Ljung, L. System Identification: Theory for the User, Upper Saddle River, NJ, Prentice-Hall PTR, 1999. See sections about the statistical framework for parameter estimation and maximum likelihood method and comparing model structures.

バージョン履歴

R2006a より前に導入