時系列データ解析による予測と最適化 ~エネルギー需要、発電、 … ·...

32
1 © 2015 The MathWorks, Inc. 時系列データ解析による予測と最適化 ~エネルギー需要、発電、価格のモデリング~ MathWorks Japan アプリケーションエンジニアリング部 テクニカルコンピューティング 中川 慶子

Upload: others

Post on 20-Jul-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 時系列データ解析による予測と最適化 ~エネルギー需要、発電、 … · 一般化線形回帰モデル 非線形回帰モデル 回帰木 アンサンブル学習

1© 2015 The MathWorks, Inc.

時系列データ解析による予測と最適化~エネルギー需要、発電、価格のモデリング~

MathWorks Japan

アプリケーションエンジニアリング部 テクニカルコンピューティング

中川慶子

Page 2: 時系列データ解析による予測と最適化 ~エネルギー需要、発電、 … · 一般化線形回帰モデル 非線形回帰モデル 回帰木 アンサンブル学習

2

アジェンダ

需要予測:時系列データモデリング1. 機械学習 ニューラルネットワーク

データの取得

生データの前処理

ニューラルネットワークによるモデリング

2. 回帰多変量自己回帰VARモデル

非線形回帰

ARIMAモデル

VARモデル

その後の応用– リスク計量

– エクセルへの実装

Page 3: 時系列データ解析による予測と最適化 ~エネルギー需要、発電、 … · 一般化線形回帰モデル 非線形回帰モデル 回帰木 アンサンブル学習

3

データ解析ワークフロー

アルゴリズムの探求

データ解析

数理モデリング

x yE=V2

R

アルゴリズム開発

アプリケーション開発

結果の共有/IP化

ドキュメント生成

アプリケーション配布

組み込み開発

ファイル

コードやアプリケーション

ソフトウェア

ハードウェア

ウェブサービス

XML

JSON

HTML

データへのアクセス

Page 4: 時系列データ解析による予測と最適化 ~エネルギー需要、発電、 … · 一般化線形回帰モデル 非線形回帰モデル 回帰木 アンサンブル学習

4

目的:

– 過去データから未来の電力需要を予測する

変数:

1. 温度

2. 湿度

3. 時刻

4. 曜日

5. 休日・祝日フラグ

6. 前週の同時刻負荷

7. 前日の同時刻負荷

8. 前日の平均負荷

需要予測 機械学習

Page 5: 時系列データ解析による予測と最適化 ~エネルギー需要、発電、 … · 一般化線形回帰モデル 非線形回帰モデル 回帰木 アンサンブル学習

5

前処理構造化データをまとめる

CSV

気象データ

データベース電力

エクセル祝日情報

Page 6: 時系列データ解析による予測と最適化 ~エネルギー需要、発電、 … · 一般化線形回帰モデル 非線形回帰モデル 回帰木 アンサンブル学習

6

ニューラルネットワークの学習

0

0

1

0

出力層隠れ層入力層

1520.4

1251.2

1731.6

0.0057

0.1022

0.8516

0.0230

誤差逆伝搬

Page 7: 時系列データ解析による予測と最適化 ~エネルギー需要、発電、 … · 一般化線形回帰モデル 非線形回帰モデル 回帰木 アンサンブル学習

7

Database ToolboxODBC/JDBC 準拠の RDBMS へのアクセス

主なサポート対象データベース– IBM® DB2®

– IBM Informix®

– Ingres

– Microsoft® Access®

– Microsoft SQL Server®

– MySQL®

– Oracle®

– PostgreSQL

– Sybase®

GUIによる対話的なアクセスとSQL生成– Database Explore

Page 8: 時系列データ解析による予測と最適化 ~エネルギー需要、発電、 … · 一般化線形回帰モデル 非線形回帰モデル 回帰木 アンサンブル学習

8

本体の便利機能

Table 配列 変数名付データ

– 変数名を使ったデータアクセス

– innerjoin関数

ふたつのTable配列の結合:指定された変数の中で共通する値のあるデータのみを抽出し結合

例)観測時刻が同じデータのみを抽出

– セル配列や構造体に比べてサイズがコンパクト

Datetime型 演算可能な日付時刻データ

Name Size Bytes Class Attributes

Data 1495x18 3336530 cell

Name Size Bytes Class Attributes

Data 1495x18 663370 table

>> datetime('today')

ans =

2015/10/13

>> datetime('today') - calweeks(1)

ans =

2015/10/06

Page 9: 時系列データ解析による予測と最適化 ~エネルギー需要、発電、 … · 一般化線形回帰モデル 非線形回帰モデル 回帰木 アンサンブル学習

9

データ抽出に便利な機能

ismember関数 論理値0/1を返す

論理演算子

>> ismember([1 2 3 4],[1 3])

ans =

1 0 1 0

>> X = [1 2 3 4 5]

X =

1 2 3 4 5

>> idx = X>3

idx =

0 0 0 1 1

>> X(idx)

ans =

4 5

A>B BよりAが大きい

A>=B BがA以上

A==B AとBが等しい

A~=B AとBが等しくない

& かつ

| または

>> X = [1 2 3 4 5]

X =

1 2 3 4 5

>> idx = X>3 & X<=5

idx =

0 0 0 1 1

>> X(idx)

ans =

4 5

Page 10: 時系列データ解析による予測と最適化 ~エネルギー需要、発電、 … · 一般化線形回帰モデル 非線形回帰モデル 回帰木 アンサンブル学習

10

予測のステップ

ニューラルネットワーク:net = fitnet(trainX', trainY', 20);net = train(net, trainX', trainY');forecastLoad = sim(net, testX')';

決定木:Trees = TreeBagger(100, trainX, trainY);

forecastLoad = predict(trees, testX);

0.前処理1.モデルの設定2.データによる学習・フィッティング3.予測4.検証

Page 11: 時系列データ解析による予測と最適化 ~エネルギー需要、発電、 … · 一般化線形回帰モデル 非線形回帰モデル 回帰木 アンサンブル学習

11

MATLAB における機械学習

機械学習

教師なし学習 教師あり学習

クラスタリング 回帰 分類

線形回帰モデル

一般化線形回帰モデル

非線形回帰モデル

回帰木

アンサンブル学習

ニューラルネット

線形判別器・2次判別器

K-最近傍識別

単純ベイズ分類

決定木

アンサンブル学習

ニューラルネット

サポートベクターマシン

K-平均法

階層的クラスタリング

ニューラルネット

混合ガウス分布

自己組織化マップ

訓練データあり訓練データなし

Page 12: 時系列データ解析による予測と最適化 ~エネルギー需要、発電、 … · 一般化線形回帰モデル 非線形回帰モデル 回帰木 アンサンブル学習

12

アジェンダ

需要予測:時系列データモデリング1. 機械学習 ニューラルネットワーク

データの取得

生データの前処理

ニューラルネットワークによるモデリング

2. 回帰多変量自己回帰VARモデル

非線形回帰

ARIMAモデル

VARモデル

その後の応用– リスク計量

– エクセルへの実装

Page 13: 時系列データ解析による予測と最適化 ~エネルギー需要、発電、 … · 一般化線形回帰モデル 非線形回帰モデル 回帰木 アンサンブル学習

13

需要予測 自己回帰

目的:

新しい予測モデルの開発:

– 動的モデル

長期的な増加と減少も予測可能

時刻とともにデータを追加して予測

をアップデート

– 経済指標も考慮する

エネルギー価格、GDP、失業率など

Page 14: 時系列データ解析による予測と最適化 ~エネルギー需要、発電、 … · 一般化線形回帰モデル 非線形回帰モデル 回帰木 アンサンブル学習

14

時系列解析Curve Fitting Toolbox

課題:

– 長期的なエネルギー需要に変化が生じた

– 歴史的に増加をしていたエネルギー需要が減少に転じた

– 既存のモデルでは予想が困難になった

Page 15: 時系列データ解析による予測と最適化 ~エネルギー需要、発電、 … · 一般化線形回帰モデル 非線形回帰モデル 回帰木 アンサンブル学習

15

モデルの選択1

単変量モデル– ARIMA – Autoregressive Integrated

Moving Average

自らの過去データと移動平均に依存するモデル

– GARCH – Generalized

Autoregressive conditional

heteroskedasticity

時系列のボラティリテも含んだモデル

– 定常な時系列データに対して使える

Page 16: 時系列データ解析による予測と最適化 ~エネルギー需要、発電、 … · 一般化線形回帰モデル 非線形回帰モデル 回帰木 アンサンブル学習

16

Box Jenkins 法

時系列モデルによる予測の手順

1. 定常性のあるデータにする

2. ARMA(p,q)過程のpとqを決める

3. 係数パラメーターを推定する

4. 観測データを使った検証

Page 17: 時系列データ解析による予測と最適化 ~エネルギー需要、発電、 … · 一般化線形回帰モデル 非線形回帰モデル 回帰木 アンサンブル学習

17

概念

「定常」なデータとは?

定常: 平均と標準偏差などが時間によらず一定

非定常であるが単位根を持つとは?

– N回微分をすると定常過程になる

0 100 200 300 400 500 600 700 800 900 1000-50

0

50

100

150

200

250

300

Trend Stationary

Difference Stationary

Trend Line

Page 18: 時系列データ解析による予測と最適化 ~エネルギー需要、発電、 … · 一般化線形回帰モデル 非線形回帰モデル 回帰木 アンサンブル学習

18

ARIMA モデル

AR(1) with constant term

𝑦𝑡 = 𝛿 + 𝑎1𝑦𝑡−1 + 𝜖𝑡

MA(1) = moving average

𝑦𝑡 = 𝜖𝑡 + 𝑏1𝜖𝑡−1

ARMA(1,1) with constant term

𝑦𝑡 = 𝛿 + 𝑎1𝑦𝑡−1 + 𝜖𝑡 + 𝑏1𝜖𝑡−1

ARIMA(1,1,1)

– I (integrated)は微分の階数

𝑦𝑡 = 𝛿 + 𝒚𝒕−𝟏 + 𝑎1𝑦𝑡−1 + 𝜖𝑡 + 𝑏1𝜖𝑡−1

Page 19: 時系列データ解析による予測と最適化 ~エネルギー需要、発電、 … · 一般化線形回帰モデル 非線形回帰モデル 回帰木 アンサンブル学習

19

GARCH Model

Default model: GARCH(1,1)

12

1

2

11

2

ttt

tt

AG

Cy

標準偏差も含めた時系列モデル

),0(~

1

2

1

22

11

tt

Q

j

jtj

P

i

itit

t

M

j

jtj

R

i

itit

N

AG

byay

Generalized ARCH

MAAR

Page 20: 時系列データ解析による予測と最適化 ~エネルギー需要、発電、 … · 一般化線形回帰モデル 非線形回帰モデル 回帰木 アンサンブル学習

20

GARCH 効果の検証

定常性はありますか? 単位根検定 unit root test

• Augmented Dickey-Fuller 検定

• adftest

• Phillips-Perron 検定

• pptest

• KPSS 検定 (トレンド定常性)

• kpsstest

ARCH/GARCH 効果はありますか?

• Engle 検定

• archtest

• Ljung-Box Q-test

• lbqtest

Page 21: 時系列データ解析による予測と最適化 ~エネルギー需要、発電、 … · 一般化線形回帰モデル 非線形回帰モデル 回帰木 アンサンブル学習

21

モデルの選択

0 5 10 15 20-0.5

0

0.5

1

Lag

Sam

ple

Part

ial A

uto

corr

ela

tions PACF: Returns

0 5 10 15 20-0.5

0

0.5

1

Lag

Sam

ple

Auto

corr

ela

tion

ACF: Returns

0 5 10 15 20-0.5

0

0.5

1

Lag

Sam

ple

Part

ial A

uto

corr

ela

tions PACF: Returns2

0 5 10 15 20-0.5

0

0.5

1

Lag

Sam

ple

Auto

corr

ela

tion

ACF: Returns2

偏自己相関係数→AR項のラグ

二乗データの偏自己相関係数→ボラティリティの

MR項のラグ

二乗データの偏自己相関係数→ボラティリティの

AR項のラグ

自己相関係数→MA項のラグ

Page 22: 時系列データ解析による予測と最適化 ~エネルギー需要、発電、 … · 一般化線形回帰モデル 非線形回帰モデル 回帰木 アンサンブル学習

22

モデルの選択3

Vector Autoregressive (VAR)

– 多変量の時系列 (ベクトル)のモデル

1. 電力需要量

2. 月次平均最高気温

3. 月次平均最低気温

4. 人口

5. 失業率

6. GDP

– 時系列間の線形な相互依存性を利用する

Page 23: 時系列データ解析による予測と最適化 ~エネルギー需要、発電、 … · 一般化線形回帰モデル 非線形回帰モデル 回帰木 アンサンブル学習

23

6変量VAR(p)モデル

1. Yt は(縦)ベクトル で与えられた時系列

2. a は定数ベクトル

3. Wt は平均が 0 ベクトルで、共分散行列Q の 6 次元正規分布に従う乱数

t

t

t

t

y

y

y

y

6

5

2

1

Page 24: 時系列データ解析による予測と最適化 ~エネルギー需要、発電、 … · 一般化線形回帰モデル 非線形回帰モデル 回帰木 アンサンブル学習

24

モデルの選択3

Vector Autoregressive (VAR)

– 複数の時系列 (ベクトル)のモデル

1. 電力需要量

2. 月次平均最高気温

3. 月次平均最低気温

4. 人口

5. 失業率

6. GDP

– 時系列間の線形な相互依存性を利用する

Page 25: 時系列データ解析による予測と最適化 ~エネルギー需要、発電、 … · 一般化線形回帰モデル 非線形回帰モデル 回帰木 アンサンブル学習

25

予測のステップ

VAR:Model = vgxset('n', numel(YSeries), 'Constant', true, 'nAR', nAR, 'Series', YSeries);Fit = vgxvarx(Model, Y);FY = vgxpred(Fit, Horizon, [], Y, [], NumPaths);

ARIMA:garchMdl = garch(1,1);Model = arima(‘D’, 1, ‘Seasonality’, 12, 'MALags', 1, 'SMALags', 1, 'Variance', garchMdl); Fit = estimate(Model, Fin);FY = forecast(Fit, 12, 'Y0', Fin);

0.前処理1.モデルの設定2.データによる学習・フィッティング3.予測4.検証

Page 26: 時系列データ解析による予測と最適化 ~エネルギー需要、発電、 … · 一般化線形回帰モデル 非線形回帰モデル 回帰木 アンサンブル学習

26

VARモデルによる解析

Spec = vgxset('n', numel(YSeries), …'Constant', true, 'nAR', nAR, 'Series', YSeries);

Spec = vgxvarx(Spec, Y);FI = vgxproc(Spec, WX, [], Y1)

インパルス応答を見ることもできる。

Page 27: 時系列データ解析による予測と最適化 ~エネルギー需要、発電、 … · 一般化線形回帰モデル 非線形回帰モデル 回帰木 アンサンブル学習

27

モデルの選択

ARIMA

• Specify

• Test

• Estimate

• Simulate

• Forecast

VAR

• Specify

• Test

• Estimate

• Simulate

• Forecast

GARCH

• Specify

• Test

• Estimate

• Simulate

• Forecast

SDE

• Specify

• Simulate

データの前処理

Financial & Econometrics Toolboxes:

Page 28: 時系列データ解析による予測と最適化 ~エネルギー需要、発電、 … · 一般化線形回帰モデル 非線形回帰モデル 回帰木 アンサンブル学習

28

その後の応用:

燃料価格モデルの構築

発電計画最適化

リスク計量

Page 29: 時系列データ解析による予測と最適化 ~エネルギー需要、発電、 … · 一般化線形回帰モデル 非線形回帰モデル 回帰木 アンサンブル学習

29

Excelへの展開

MATLAB Compiler SDKによりエクセルアドインを作成して配布

Page 30: 時系列データ解析による予測と最適化 ~エネルギー需要、発電、 … · 一般化線形回帰モデル 非線形回帰モデル 回帰木 アンサンブル学習

30

ご紹介したツールボックス

Neural Network Toolbox

ニューラルネットワークの構築、学習

データフィッティング

クラスタリング

パターン認識

深層学習

GPUによる計算の高速化

Database Toolbox

各種データベースへの

アクセス

ODBC

JDBC

GUIを用いた対話的な

アクセスとSQLの作成

Page 31: 時系列データ解析による予測と最適化 ~エネルギー需要、発電、 … · 一般化線形回帰モデル 非線形回帰モデル 回帰木 アンサンブル学習

31

Financial Toolbox

ポートフォリオ分析

キャッシュフローとイールドカーブ

オプションの価格付け

確定利付証券分析

テクニカル指標

Econometric Toolbox

時系列モデル GARCH

ARIMAX

VAR

状態空間モデル

パラメータ推定

モデルの検証

Datafeed Toolbox

データサービス配信会社へのアクセス

Bloomberg, Thomson Reuters, etc.

GUIを用いた対話的なアクセス

ご紹介したツールボックス

MATLAB Compiler SDK

C/C++ 共有ライブラリの作成

.NETアセンブリの作成

Java パッケージの作成

Python パッケージの作成

サーバー向けコンポーネントの作成

インストーラーの作成

Page 32: 時系列データ解析による予測と最適化 ~エネルギー需要、発電、 … · 一般化線形回帰モデル 非線形回帰モデル 回帰木 アンサンブル学習

32