LuckyOceanのブログ

新米技術士の成長ブログ

時系列分析を甘く見ていた(ビジネスデータ分析#7)

はじめに
2020年の春期後半の授業も今週が最後だ。ビジネスデータ分析の最後のトピックは時系列分析だ。あまり深く考えたことがなかったけど、学ぶと面白い。社会人学生の良いところは、普段使う頭脳が固定していて、普段使わない頭脳を活性化できる点にあるように思う。その意味では、もっと多くの社会人が学校に通う世の中になると日本も変わるのではないかと思ってしまう。

Rの勉強会
豊田教授はRの推進者でもある。学生からRの勉強会をしてほしいという要望もあり、昨年も実施した。最初は超簡単なところから入るが、加速度的に複雑な処理になる。勉強会も2回目になれば消化不良の比率も減少すると期待する。8月の月曜日の夜20時から21時までの1時間だけど、その前に動画がアップされて、その動画でよく理解できなかったことを先生に質問するという反転学習だ。オンライン学習でもここまでできるという良い実験になりそうな気がする。

時系列データ
株の売買をする人なら株価のチャートを長時間見ていても飽きないかもしれない。このタイミングで買って、このタイミングで売れば儲かるはずだとか、損したかもしれないと色々とシミュレーションできる。今回の講義では、一見、ランダムに値が変動するように見える時系列データもいくつかの成分に分ければ、説明可能となる。例えば次の3つだ。
・トレンド成分
・周期成分
・残差成分
f:id:hiroshi-kizaki:20200727213222p:plain
出典:https://info.midori-cloud.net/midoriblog/20190131_1026/

トレンド成分
ある時系列データの大きな傾向を示すものがトレンド成分だ。例えば、下の図で言えば、観測データ=トレンド成分+季節成分+残差成分となる。トレンド成分を求める典型的な方法は移動平均だ。理系的に言えば、ローパスフィルターで高周波成分を取り除く作業をした結果と言える。
f:id:hiroshi-kizaki:20200727213914p:plain
出典:https://data.gunosy.io/entry/statsmodel_trend

周期成分
世の中の活動は太陽と月の影響を受けている。つまり、一年間での周期と月の周期と週の周期と時間の周期だ。典型的なのは一年間でのサイクリックな周期だろう。ここでは測定したスパンでの年間の変動パターンや週の変動パターンは同一と割り切って、割り切れない部分は残差データとする。

残差成分
わかりやすく言えば、残差データとはモデルとの乖離だ。独立変数Xと従属変数Yの関係をリニアな関係と想定し、回帰直線を計算することはできる。しかし、実際に分布するここのデータは必ずしも回帰直線状にはない。この乖離が残差だ。例えば、一年間の周期モデルでトレンドを計算して生じた残差はゴミではない。ここにはまだ週の成分があるかもしれない。四半期の成分があるかもしれない。そのように残差をできるだけ少なくすることがデータ分析の面白さであり、醍醐味のような気がする。

移動平均
最も典型的な移動平均の求め方は、例えば下の図であれば、2期の中間移動平均とは1期と2期と3期の平均だ。3期の単純移動平均とは同じく1期と2期と3期の平均だ。中間移動平均は奇数の区間であれば簡単だけど偶数区間だと複雑だ。例えば4期だと。1期から4期の平均と2期から5期の平均のさらに平均を計算するという処理になってしまうので注意が必要だ。
f:id:hiroshi-kizaki:20200727215141p:plain
出典:https://bellcurve.jp/statistics/blog/15528.html

フーリエ変換
時間軸と周波数軸の変換がフーリエ変換だ。ある時間軸で変動する波形は、周波数軸に変換すると別の波形になる。唯一の例外は正規分布だ。フーリエ変換ラプラス変換は学生時代に知ってびっくりしたが、社会人になったらこれが商売道具になっていった。今回のテーマの時系列データでも、どのような周期性があるかは、フーリエ変換すれば明快だ。下の図にあるように、2Hzの信号と5Hzの信号と10Hzの信号に分解できる。実際の社会的なデータではこれほど明確には分離されることはないが、それでもPhythonやRを使えば、与えられた時系列データの周期性を分析できる。これは便利だが、今日の授業の枠を超えているので、これぐらいにする。
f:id:hiroshi-kizaki:20200727220122j:plain
出典:https://eetimes.jp/ee/articles/1505/14/news072_7.html

ボリンジャーバンド
英語ではBollinger Bandsという。1980年代にジョン・ボリンジャー氏が提唱した統計グラフの手法だ。秀逸なのは、台風の予想図のようにばらつきを考慮したマクロなトレンドをビジュアル化した点だ。±1シグマの間に収まる確率は68%だ。±2シグマでと95%、±3シグマなら99.7%だ。ポイントは、このシグマ(=標準偏差値)が小さい時は値の変動が収まっている時である。勝負すべきはこのシグマが拡大し、かつトレンドが上方志向の時だ。このような分析を駆使して稼いだのがジョン・ボリンジャーだ。ちなみに、このチャートの名前を聞かれた時に、とっさに思いついたらしい。デフォルト単純な移動平均だが、他のタイプの平均を使用できる。指数移動平均もよく使われるようだ。
f:id:hiroshi-kizaki:20200727220306g:plain
出典:https://www.avatrade.co.jp/kojiro/07/

エクセルの操作
棒線と折れ線や、複数の折れ線を一つのグラフにまとめたい時がある。その場合に悩ましいのが尺度の違いだ。しかし、エクセルでは、一つの数字列のみ主軸ではなく、第二軸として設定することができる。異なるグラフの合成は「組み合わせ」で可能だ。そして、別の尺度で表示したいグラフを選び、第二軸を設定すれば下のように見やすくなる。これはぜひマスターしたい。
f:id:hiroshi-kizaki:20200727221520g:plain
出典:Excel 2016:異なる系列を第2軸に設定するには

季節調整
トレンドのところで、「観測データ=トレンド成分+季節成分+残差となる。」と説明したが、このように成分の足し算で計算するのが加法モデルだ。一方、乗法モデルは掛け算で計算する。例えば、経済企画庁が開発したEPA法では、傾向変動Tと循環変動Cと季節変動Sと不規則変動Iとした場合に、観測値=TxCxSxIとして計算するモデルだ。
f:id:hiroshi-kizaki:20200727222926p:plain
出典:https://bellcurve.jp/ex/function/epa.html

トリム平均
観測データの中には異常値が含まれることがある。アンケートをとっていても、これはちょっとおかしいだろうというデータがある。そんな極端なデータを除いて(trim)処理する方法だ。トリミングといえば写真などで周辺をカットすることだ。そんな前処理をした上で平均することをトリム平均というようだ。知らなかった。
f:id:hiroshi-kizaki:20200727223415j:plain
出典:https://toukeigaku-jouhou.info/2018/09/03/trimmed-mean/

ARIMAモデル
時系列分析に使用される代表的なモデルとして有名なのがARIMAモデルだ。これは、過去のデータから将来を予測するモデルであり、自己回帰(AR:autoregressive model)と和分(I:Integration)と移動平均(MA:moving average)の3つを組み合わせたモデルだ。ARとMAのみならARMAモデルという。
f:id:hiroshi-kizaki:20200727223844p:plain
出典:

www.slideshare.net

VARモデル
自己回帰(AR)モデルにベクトル(V)を組み合わせたのがVARモデルだ。どこがすごいかといえば、単なる時系列のデータをnx1の列ベクトルで表現することで予測精度を高めていることだ。まだ、意味や方法を十分に理解できていないが、Rを使えば簡単に処理できるようだ。実際の世の中のデータは様々な時系列データとの関連性を有しているので、そのような前提ではVARモデルは有効らしい。まだまだ研鑽が必要だ。
f:id:hiroshi-kizaki:20200727224909p:plain
出典:https://tjo.hatenablog.com/entry/2013/07/25/194546

まとめ
課題の提出が残っているが、ビジネスデータ分析は面白かった。特に重回帰分析は、アンケート結果を集計したり、何か仮説を検証する上では必須だ。また、質のデータをダミー変数に置き換えて検証する方法も使えると思う。これから修論の本番だ。8月2日の発表でどんな意見が出てくるのだろう。楽しみのような恐怖のような。それよりは、革新性があって、実現性があって、拡張性があるようなプロジェクトにしたてあげることができるのだろうか(苦笑)。

以上

最後まで読んで頂きありがとうございました。