関連情報
ホーム > 製品 > NAG Toolbox for MATLAB® > サンプルコード集 > 指数平滑化による予測

指数平滑化による予測

NAG Toolbox for MATLAB®用のサンプルコード

Keyword: 指数平滑化, ホルトウィンタース, 線形ホルト, 2重指数平滑化, Holt Winters

概要

本サンプルはC言語により指数平滑化による予測を行うプログラムです。 入力データとして11個の観察データと指数平滑パラメータ(α、γ、φ)を与え、5ステップ分の予測を行います。 

指数平滑化による予測例

以下のプログラム例では線形ホルト指数平滑化を利用して予測を行いますが、その他に単純指数平滑化、ブラウン2重指数平滑化、ホルトウィンタース乗法、ホルトウィンタース加法の各平滑化法にも対応しています。

※本サンプルはNAG Toolbox for MATLAB®が提供する関数 g13am()のExampleコードです。実行にはMATLAB®本体(他社製品)とNAG Toolbox for MATLAB®が必要です。
本サンプル及び関数の詳細情報はg13am のマニュアルページをご参照ください。

入力データ


mode = int32(2);
itype = int32(3);
p = int32(0);
param = [0.01;
     1;
     1];
y = [180;
     135;
     213;
     181;
     148;
     204;
     228;
     225;
     198;
     200;
     187];
k = int32(11);
init = [-1.666051209955092e-47;
     4.853144920788553e-270];
nf = int32(5);
r = [1.910201800633982e-313;
     -1.601103737937077e-47;
     -1.678629904873684e-47;
     -4.300360784598706e-39;
     -0.09138826798201372;
     -1.668172686220112e-47;
     2.572155976556066e-306;
     -1.601102994801293e-47;
     4.940656458412465e-324;
     2.514055054265363e-306;
     -4.296977237061931e-39;
     2.514055056853075e-306;
     -4.300811189660317e-39];
[initOut, fv, fse, yhat, res, dv, ad, rOut, ifail] = g13am(mode, itype, p, param, y, k, init, nf, r)

  • mode には初期値の与え方を指定しています。"2"は初期値が観測データから推定されることを意味します。
  • itype には平滑化の手法を与えています。"3"は線形ホルト指数平滑化を意味します。
  • p には季節次数を与えますが、線形ホルト指数平滑化ではこの値は参照されません。
  • param には指数平滑化パラメータであるα(=0.01)、γ(=1.0)、φ(=1.0)を与えています。
  • y には観察データの値を与えています。
  • k には初期値の推定に使用する観察データ数 (=11)を与えています。
  • init には平均とトレンドの初期値を与えています。
  • nf には予測を行うステップ数 (=5)を与えています。
  • r にはトレンドを与えています。
  • 最後に本関数を呼び出す構文を指定しています。

出力結果


initOut =
  168.0182
    3.8000
fv =
  213.8545
  217.6851
  221.5157
  225.3462
  229.1768
fse =
   25.4733
   25.4784
   25.4899
   25.5102
   25.5420
yhat =
  171.8182
  175.7818
  178.8480
  183.0050
  186.7805
  189.8003
  193.4920
  197.7318
  202.1719
  206.2559
  210.2565
res =
    8.1818
  -40.7818
   34.1520
   -2.0050
  -38.7805
   14.1997
   34.5080
   27.2682
   -4.1719
   -6.2559
  -23.2565
dv =
   25.4733
ad =
   21.2328
rOut =
   1.0e+03 *
    2.4680
         0
    0.0000
    0.0010
         0
    0.0010
         0
    7.1378
    0.2336
    0.2100
    0.0038
    0.0110
         0
ifail =
           0

  • initOut は計算に使われた初期値を示しています。
  • fv は5ステップ分の予測値を示しています。
  • fse は上記の標準誤差を示しています。
  • yhat は1ステップ予測を示しています。
  • res は残差を示しています。
  • dv は平均偏差を示しています。
  • ad は絶対偏差を示しています。平均偏差と絶対偏差双方ともモデルの当てはまり具合を示しています。 小さい値であればあるほど当てはまりが良いことを示します。
  • rOut は平滑化の現在の状態を示しています。
  • ifail は関数がエラーを検知しなければ"0"を出力します。

Results matter. Trust NAG.

Privacy Policy | Trademarks