時系列データ解析による予測と最適化 ~エネル …...matlab...
TRANSCRIPT
![Page 1: 時系列データ解析による予測と最適化 ~エネル …...MATLAB における機械学習 機械学習 教師なし学習 教師あり学習 クラスタリング 回帰](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e363060241ffb26bc19af74/html5/thumbnails/1.jpg)
1© 2015 The MathWorks, Inc.
時系列データ解析による予測と最適化~エネルギー需要、発電、価格のモデリング~
MathWorks Japan
アプリケーションエンジニアリング部 テクニカルコンピューティング
中川慶子
![Page 2: 時系列データ解析による予測と最適化 ~エネル …...MATLAB における機械学習 機械学習 教師なし学習 教師あり学習 クラスタリング 回帰](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e363060241ffb26bc19af74/html5/thumbnails/2.jpg)
2
アジェンダ
需要予測:時系列データモデリング1. 機械学習 ニューラルネットワーク
データの取得
生データの前処理
ニューラルネットワークによるモデリング
2. 回帰多変量自己回帰VARモデル
非線形回帰
ARIMAモデル
VARモデル
その後の応用– リスク計量
– エクセルへの実装
![Page 3: 時系列データ解析による予測と最適化 ~エネル …...MATLAB における機械学習 機械学習 教師なし学習 教師あり学習 クラスタリング 回帰](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e363060241ffb26bc19af74/html5/thumbnails/3.jpg)
3
データ解析ワークフロー
アルゴリズムの探求
データ解析
数理モデリング
x yE=V2
R
アルゴリズム開発
アプリケーション開発
結果の共有/IP化
ドキュメント生成
アプリケーション配布
組み込み開発
ファイル
コードやアプリケーション
ソフトウェア
ハードウェア
ウェブサービス
XML
JSON
HTML
データへのアクセス
![Page 4: 時系列データ解析による予測と最適化 ~エネル …...MATLAB における機械学習 機械学習 教師なし学習 教師あり学習 クラスタリング 回帰](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e363060241ffb26bc19af74/html5/thumbnails/4.jpg)
4
目的:
– 過去データから未来の電力需要を予測する
変数:
1. 温度
2. 湿度
3. 時刻
4. 曜日
5. 休日・祝日フラグ
6. 前週の同時刻負荷
7. 前日の同時刻負荷
8. 前日の平均負荷
需要予測 機械学習
![Page 5: 時系列データ解析による予測と最適化 ~エネル …...MATLAB における機械学習 機械学習 教師なし学習 教師あり学習 クラスタリング 回帰](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e363060241ffb26bc19af74/html5/thumbnails/5.jpg)
5
前処理構造化データをまとめる
CSV
気象データ
データベース電力
エクセル祝日情報
![Page 6: 時系列データ解析による予測と最適化 ~エネル …...MATLAB における機械学習 機械学習 教師なし学習 教師あり学習 クラスタリング 回帰](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e363060241ffb26bc19af74/html5/thumbnails/6.jpg)
6
ニューラルネットワークの学習
0
0
1
0
出力層隠れ層入力層
1520.4
1251.2
1731.6
0.0057
0.1022
0.8516
0.0230
誤差逆伝搬
![Page 7: 時系列データ解析による予測と最適化 ~エネル …...MATLAB における機械学習 機械学習 教師なし学習 教師あり学習 クラスタリング 回帰](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e363060241ffb26bc19af74/html5/thumbnails/7.jpg)
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: 時系列データ解析による予測と最適化 ~エネル …...MATLAB における機械学習 機械学習 教師なし学習 教師あり学習 クラスタリング 回帰](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e363060241ffb26bc19af74/html5/thumbnails/8.jpg)
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: 時系列データ解析による予測と最適化 ~エネル …...MATLAB における機械学習 機械学習 教師なし学習 教師あり学習 クラスタリング 回帰](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e363060241ffb26bc19af74/html5/thumbnails/9.jpg)
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: 時系列データ解析による予測と最適化 ~エネル …...MATLAB における機械学習 機械学習 教師なし学習 教師あり学習 クラスタリング 回帰](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e363060241ffb26bc19af74/html5/thumbnails/10.jpg)
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: 時系列データ解析による予測と最適化 ~エネル …...MATLAB における機械学習 機械学習 教師なし学習 教師あり学習 クラスタリング 回帰](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e363060241ffb26bc19af74/html5/thumbnails/11.jpg)
11
MATLAB における機械学習
機械学習
教師なし学習 教師あり学習
クラスタリング 回帰 分類
線形回帰モデル
一般化線形回帰モデル
非線形回帰モデル
回帰木
アンサンブル学習
ニューラルネット
線形判別器・2次判別器
K-最近傍識別
単純ベイズ分類
決定木
アンサンブル学習
ニューラルネット
サポートベクターマシン
K-平均法
階層的クラスタリング
ニューラルネット
混合ガウス分布
自己組織化マップ
訓練データあり訓練データなし
![Page 12: 時系列データ解析による予測と最適化 ~エネル …...MATLAB における機械学習 機械学習 教師なし学習 教師あり学習 クラスタリング 回帰](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e363060241ffb26bc19af74/html5/thumbnails/12.jpg)
12
アジェンダ
需要予測:時系列データモデリング1. 機械学習 ニューラルネットワーク
データの取得
生データの前処理
ニューラルネットワークによるモデリング
2. 回帰多変量自己回帰VARモデル
非線形回帰
ARIMAモデル
VARモデル
その後の応用– リスク計量
– エクセルへの実装
![Page 13: 時系列データ解析による予測と最適化 ~エネル …...MATLAB における機械学習 機械学習 教師なし学習 教師あり学習 クラスタリング 回帰](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e363060241ffb26bc19af74/html5/thumbnails/13.jpg)
13
需要予測 自己回帰
目的:
新しい予測モデルの開発:
– 動的モデル
長期的な増加と減少も予測可能
時刻とともにデータを追加して予測
をアップデート
– 経済指標も考慮する
エネルギー価格、GDP、失業率など
![Page 14: 時系列データ解析による予測と最適化 ~エネル …...MATLAB における機械学習 機械学習 教師なし学習 教師あり学習 クラスタリング 回帰](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e363060241ffb26bc19af74/html5/thumbnails/14.jpg)
14
時系列解析Curve Fitting Toolbox
課題:
– 長期的なエネルギー需要に変化が生じた
– 歴史的に増加をしていたエネルギー需要が減少に転じた
– 既存のモデルでは予想が困難になった
![Page 15: 時系列データ解析による予測と最適化 ~エネル …...MATLAB における機械学習 機械学習 教師なし学習 教師あり学習 クラスタリング 回帰](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e363060241ffb26bc19af74/html5/thumbnails/15.jpg)
15
モデルの選択1
単変量モデル– ARIMA – Autoregressive Integrated
Moving Average
自らの過去データと移動平均に依存するモデル
– GARCH – Generalized
Autoregressive conditional
heteroskedasticity
時系列のボラティリテも含んだモデル
– 定常な時系列データに対して使える
![Page 16: 時系列データ解析による予測と最適化 ~エネル …...MATLAB における機械学習 機械学習 教師なし学習 教師あり学習 クラスタリング 回帰](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e363060241ffb26bc19af74/html5/thumbnails/16.jpg)
16
Box Jenkins 法
時系列モデルによる予測の手順
1. 定常性のあるデータにする
2. ARMA(p,q)過程のpとqを決める
3. 係数パラメーターを推定する
4. 観測データを使った検証
![Page 17: 時系列データ解析による予測と最適化 ~エネル …...MATLAB における機械学習 機械学習 教師なし学習 教師あり学習 クラスタリング 回帰](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e363060241ffb26bc19af74/html5/thumbnails/17.jpg)
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: 時系列データ解析による予測と最適化 ~エネル …...MATLAB における機械学習 機械学習 教師なし学習 教師あり学習 クラスタリング 回帰](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e363060241ffb26bc19af74/html5/thumbnails/18.jpg)
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: 時系列データ解析による予測と最適化 ~エネル …...MATLAB における機械学習 機械学習 教師なし学習 教師あり学習 クラスタリング 回帰](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e363060241ffb26bc19af74/html5/thumbnails/19.jpg)
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: 時系列データ解析による予測と最適化 ~エネル …...MATLAB における機械学習 機械学習 教師なし学習 教師あり学習 クラスタリング 回帰](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e363060241ffb26bc19af74/html5/thumbnails/20.jpg)
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: 時系列データ解析による予測と最適化 ~エネル …...MATLAB における機械学習 機械学習 教師なし学習 教師あり学習 クラスタリング 回帰](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e363060241ffb26bc19af74/html5/thumbnails/21.jpg)
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: 時系列データ解析による予測と最適化 ~エネル …...MATLAB における機械学習 機械学習 教師なし学習 教師あり学習 クラスタリング 回帰](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e363060241ffb26bc19af74/html5/thumbnails/22.jpg)
22
モデルの選択3
Vector Autoregressive (VAR)
– 多変量の時系列 (ベクトル)のモデル
1. 電力需要量
2. 月次平均最高気温
3. 月次平均最低気温
4. 人口
5. 失業率
6. GDP
– 時系列間の線形な相互依存性を利用する
![Page 23: 時系列データ解析による予測と最適化 ~エネル …...MATLAB における機械学習 機械学習 教師なし学習 教師あり学習 クラスタリング 回帰](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e363060241ffb26bc19af74/html5/thumbnails/23.jpg)
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: 時系列データ解析による予測と最適化 ~エネル …...MATLAB における機械学習 機械学習 教師なし学習 教師あり学習 クラスタリング 回帰](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e363060241ffb26bc19af74/html5/thumbnails/24.jpg)
24
モデルの選択3
Vector Autoregressive (VAR)
– 複数の時系列 (ベクトル)のモデル
1. 電力需要量
2. 月次平均最高気温
3. 月次平均最低気温
4. 人口
5. 失業率
6. GDP
– 時系列間の線形な相互依存性を利用する
![Page 25: 時系列データ解析による予測と最適化 ~エネル …...MATLAB における機械学習 機械学習 教師なし学習 教師あり学習 クラスタリング 回帰](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e363060241ffb26bc19af74/html5/thumbnails/25.jpg)
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: 時系列データ解析による予測と最適化 ~エネル …...MATLAB における機械学習 機械学習 教師なし学習 教師あり学習 クラスタリング 回帰](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e363060241ffb26bc19af74/html5/thumbnails/26.jpg)
26
VARモデルによる解析
Spec = vgxset('n', numel(YSeries), …'Constant', true, 'nAR', nAR, 'Series', YSeries);
Spec = vgxvarx(Spec, Y);FI = vgxproc(Spec, WX, [], Y1)
インパルス応答を見ることもできる。
![Page 27: 時系列データ解析による予測と最適化 ~エネル …...MATLAB における機械学習 機械学習 教師なし学習 教師あり学習 クラスタリング 回帰](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e363060241ffb26bc19af74/html5/thumbnails/27.jpg)
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: 時系列データ解析による予測と最適化 ~エネル …...MATLAB における機械学習 機械学習 教師なし学習 教師あり学習 クラスタリング 回帰](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e363060241ffb26bc19af74/html5/thumbnails/28.jpg)
28
その後の応用:
燃料価格モデルの構築
発電計画最適化
リスク計量
![Page 29: 時系列データ解析による予測と最適化 ~エネル …...MATLAB における機械学習 機械学習 教師なし学習 教師あり学習 クラスタリング 回帰](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e363060241ffb26bc19af74/html5/thumbnails/29.jpg)
29
Excelへの展開
MATLAB Compiler SDKによりエクセルアドインを作成して配布
![Page 30: 時系列データ解析による予測と最適化 ~エネル …...MATLAB における機械学習 機械学習 教師なし学習 教師あり学習 クラスタリング 回帰](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e363060241ffb26bc19af74/html5/thumbnails/30.jpg)
30
ご紹介したツールボックス
Neural Network Toolbox
ニューラルネットワークの構築、学習
データフィッティング
クラスタリング
パターン認識
深層学習
GPUによる計算の高速化
Database Toolbox
各種データベースへの
アクセス
ODBC
JDBC
GUIを用いた対話的な
アクセスとSQLの作成
![Page 31: 時系列データ解析による予測と最適化 ~エネル …...MATLAB における機械学習 機械学習 教師なし学習 教師あり学習 クラスタリング 回帰](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e363060241ffb26bc19af74/html5/thumbnails/31.jpg)
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: 時系列データ解析による予測と最適化 ~エネル …...MATLAB における機械学習 機械学習 教師なし学習 教師あり学習 クラスタリング 回帰](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e363060241ffb26bc19af74/html5/thumbnails/32.jpg)
32