• 検索結果がありません。

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

N/A
N/A
Protected

Academic year: 2021

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

Copied!
32
0
0

読み込み中.... (全文を見る)

全文

(1)

© 2015 The MathWorks, Inc.

時系列データ解析による予測と最適化

~エネルギー需要、発電、価格のモデリング~

MathWorks Japan アプリケーションエンジニアリング部 テクニカルコンピューティング 中川 慶子

(2)

アジェンダ

需要予測:時系列データモデリング

1. 機械学習 ニューラルネットワーク  データの取得  生データの前処理  ニューラルネットワークによるモデリング 2. 回帰 多変量自己回帰VARモデル  非線形回帰  ARIMAモデル  VARモデル 

その後の応用

– リスク計量 – エクセルへの実装

(3)

データ解析ワークフロー

アルゴリズムの探求 データ解析 数理モデリング x E = V2 y R アルゴリズム開発 アプリケーション 開発 結果の共有/IP化 ドキュメント生成 アプリケーション配布 組み込み開発 ファイル コードやアプリケーション ソフトウェア ハードウェア ウェブサービス XML JSON HTML データへのアクセス

(4)

目的:

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

変数:

1. 温度 2. 湿度 3. 時刻 4. 曜日 5. 休日・祝日フラグ 6. 前週の同時刻負荷 7. 前日の同時刻負荷 8. 前日の平均負荷

需要予測 機械学習

(5)

前処理

構造化データをまとめる

CSV 気象データ データベース 電力 エクセル 祝日情報

(6)

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

0 0 1 0 出力層 隠れ層 入力層 1520.4 1251.2 1731.6 0.0057 0.1022 0.8516 0.0230 誤差逆伝搬

(7)

Database Toolbox

ODBC/JDBC 準拠の RDBMS へのアクセス

主なサポート対象データベース

– IBM® DB2® – IBM Informix® – Ingres – Microsoft® Access® – Microsoft SQL Server® – MySQL® – Oracle® – PostgreSQL – Sybase® 

GUIによる対話的な

アクセスとSQL生成

– Database Explore

(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

(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

(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.予測

(11)

MATLAB における機械学習

機械学習

教師なし学習

教師あり学習

クラスタリング

回帰

分類

線形回帰モデル 一般化線形回帰モデル 非線形回帰モデル 回帰木 アンサンブル学習 ニューラルネット 線形判別器・2次判別器 K-最近傍識別 単純ベイズ分類 決定木 アンサンブル学習 ニューラルネット サポートベクターマシン K-平均法 階層的クラスタリング ニューラルネット 混合ガウス分布 自己組織化マップ

訓練データあり

訓練データなし

(12)

アジェンダ

需要予測:時系列データモデリング

1. 機械学習 ニューラルネットワーク  データの取得  生データの前処理  ニューラルネットワークによるモデリング 2. 回帰 多変量自己回帰VARモデル  非線形回帰  ARIMAモデル  VARモデル 

その後の応用

– リスク計量 – エクセルへの実装

(13)

需要予測 自己回帰

目的:

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

– 動的モデル  長期的な増加と減少も予測可能  時刻とともにデータを追加して予測 をアップデート – 経済指標も考慮する  エネルギー価格、GDP、失業率など

(14)

時系列解析

Curve Fitting Toolbox

課題:

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

– 歴史的に増加をしていたエネルギー需要が減少に転じた – 既存のモデルでは予想が困難になった

(15)

モデルの選択1

単変量モデル

– ARIMA – Autoregressive Integrated Moving Average  自らの過去データと移動平均に依存するモデル – GARCH – Generalized Autoregressive conditional heteroskedasticity  時系列のボラティリテも含んだモデル – 定常な時系列データに対して使える

(16)

Box Jenkins 法

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

1.

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

2.

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

3.

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

4.

観測データを使った検証

(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

(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)は微分の階数

(19)

GARCH Model

Default model: GARCH(1,1)

1 2 1 2 1 1 2  

t t t t t

A

G

C

y

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

)

,

0

(

~

1 2 1 2 2 1 1 t t Q j j t j P i i t i t t M j j t j R i i t i t

N

A

G

b

y

a

y

       

Generalized ARCH MA AR

(20)

GARCH 効果の検証

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

Augmented Dickey-Fuller 検定

adftest

Phillips-Perron 検定

pptest

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

kpsstest

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

Engle 検定

archtest

Ljung-Box Q-test

lbqtest

(21)

モデルの選択

0 5 10 15 20 -0.5 0 0.5 1 Lag S a m p le P a rt ia l A u to c o rr e la ti o n s PACF: Returns 0 5 10 15 20 -0.5 0 0.5 1 Lag S a m p le A u to c o rr e la ti o n ACF: Returns 0 5 10 15 20 -0.5 0 0.5 1 Lag S a m p le P a rt ia l A u to c o rr e la ti o n s PACF: Returns2 0 5 10 15 20 -0.5 0 0.5 1 Lag S a m p le A u to c o rr e la ti o n ACF: Returns2 偏自己相関係数 →AR項のラグ 二乗データの 偏自己相関係数 →ボラティリティの MR項のラグ 二乗データの 偏自己相関係数 →ボラティリティの AR項のラグ 自己相関係数 →MA項のラグ

(22)

モデルの選択3

Vector Autoregressive (VAR)

– 多変量の時系列 (ベクトル)のモデル 1. 電力需要量 2. 月次平均最高気温 3. 月次平均最低気温 4. 人口 5. 失業率 6. GDP – 時系列間の線形な相互依存性を利用する

(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 

(24)

モデルの選択3

Vector Autoregressive (VAR)

– 複数の時系列 (ベクトル)のモデル 1. 電力需要量 2. 月次平均最高気温 3. 月次平均最低気温 4. 人口 5. 失業率 6. GDP – 時系列間の線形な相互依存性を利用する

(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.予測

(26)

VARモデルによる解析

Spec = vgxset('n', numel(YSeries), …

'Constant', true, 'nAR', nAR, 'Series', YSeries);

Spec = vgxvarx(Spec, Y);

FI = vgxproc(Spec, WX, [], Y1)

(27)

モデルの選択

ARIMA

• Specify • Test • Estimate • Simulate • Forecast

VAR

• Specify • Test • Estimate • Simulate • Forecast

GARCH

• Specify • Test • Estimate • Simulate • Forecast

SDE

• Specify • Simulate

データの前処理

(28)

その後の応用:

燃料価格モデルの構築

発電計画最適化 リスク計量

(29)

Excelへの展開

(30)

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

Neural Network Toolbox

 ニューラルネットワークの構築、学習  データフィッティング  クラスタリング  パターン認識  深層学習  GPUによる計算の高速化 Database Toolbox  各種データベースへの アクセス  ODBC  JDBC  GUIを用いた対話的な アクセスとSQLの作成

(31)

Financial Toolbox  ポートフォリオ分析  キャッシュフローとイールドカーブ  オプションの価格付け  確定利付証券分析  テクニカル指標 Econometric Toolbox  時系列モデル  GARCH  ARIMAX  VAR  状態空間モデル  パラメータ推定  モデルの検証 Datafeed Toolbox  データサービス配信会社へのアクセス

 Bloomberg, Thomson Reuters, etc.

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

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

MATLAB Compiler SDK  C/C++ 共有ライブラリの作成  .NETアセンブリの作成  Java パッケージの作成  Python パッケージの作成  サーバー向けコンポーネントの作成  インストーラーの作成

(32)

参照

関連したドキュメント

工学部の川西琢也助教授が「米 国におけるファカルティディベ ロップメントと遠隔地 学習の実 態」について,また医学系研究科

[Nitanda&amp;Suzuki: Fast Convergence Rates of Averaged Stochastic Gradient Descent under Neural Tangent Kernel Regime,

Optimal stochastic approximation algorithms for strongly convex stochastic composite optimization I: A generic algorithmic framework.. SIAM Journal on Optimization,

Dual averaging and proximal gradient descent for online alternating direction multiplier method. Stochastic dual coordinate ascent with alternating direction method

目標を、子どもと教師のオリエンテーションでいくつかの文節に分け」、学習課題としている。例

子どもの学習従事時間を Fig.1 に示した。BL 期には学習への注意喚起が 2 回あり,強 化子があっても学習従事時間が 30

 文学部では今年度から中国語学習会が 週2回、韓国朝鮮語学習会が週1回、文学

重回帰分析,相関分析の結果を参考に,初期モデル