R言語所蔵のサンプルデータをABC順にみております。今回登場は1960年代から80年代中盤にかけての英国のガス消費量のデータです。時系列データの定番サンプル的なやつ。結構あちこちで目にするような気がします。データは天然ガス限定と書いていないですが、今や無色無臭の天然ガスも、ガス臭い、いや、きな臭くなった世界。
※「データのお砂場」投稿順Indexはこちら
さて、サンプルデータセットの説明ページは以下です。定番データといいつつ、素っ気ないページです。残念ながら大した処理例も書いてありません。後はこちらを見てね、みたいな感じでリンクが張ってあるのですが、リンク切れてます。
しかし、流石に定番データ、いつもお世話になっております同志社大の方の以下のページでもいろいろ処理例が書かれていたので、今回は以下ページでご紹介いただいている例を中心に演習させていただきました。
ガスの単位
サンプルデータは、非常にシンプルな時系列データです。4半期毎の消費量を26年分並べた時系列データです。ただそこで使われている単位、なじみがないものです。Thermとな。英国らしく ヤードポンド法の単位みたいです。non-SIだぜ。
熱量の単位。100000 British thermal unit(BTU) ≒ 105.5Mジュール
だそうな。門外漢、まったく実感ありませんな。熱量の単位なのでいくつか前提条件を置かなければ体積には変換できないと想像します。しかし前提条件は知らず2.83立米という数字を見つけました。数字が独り歩きするの類?でも「立米」言われると分かった気になるのはなぜ。
データは therm のような「小さな」単位ではなく、1国の消費量であるので millions of therms 単位の数字です。1985年前後で消費量の多い4半期で1000millions of thermsくらい。少ない四半期では数百 millions of therms といった感じ。今の日本と比べたらどんな雰囲気なんでしょうか?以下のページを見つけました。天然ガスの消費量です。サンプルデータの方はただガスとあるので天然ガスだけでない可能性も大有りですが、まあ雰囲気はいけるじゃないかと勝手に想像。
なお、上記のページで採用されている単位はメートル法の容積でした。
bcm (billion cubic meter) 10億立米
先ほどの数字で勝手に換算するならば、
1000 millions of therms ≒ 2.83 bcm
上記ページによれば、最近の日本では年間100bcm、英国では73bcmを消費しておるのだそうな。ザックリした暗算で最近は1985年付近の数十倍の消費量になっているような気がします。大丈夫か?暗算なんてできたのか?
それでも近年消費量は年数%という感じですが減少傾向だそうです。
まずは生データ
いつも生データは、ロードしたあと、class()してhead()してましたが、今回はstr()してみました。一発でデータ形式とその先頭付近のデータが見れます。数少ない処理例のお陰。
時系列プロットなので、ts.plot()を呼んで生データそのままのグラフを描いてみます。ついでに開始、終了、そしてfrequency(4は1年に4回の意だとおもいます。)
グラフが以下に、典型的な?季節変動パターンかと。それが年々振れ幅がデカくなっていて「どうすんの」という感じ。
差分をとればトレンドは消えて、季節変動が残るということで差分プロット。
差分のラグもいろいろ変化させてみます。
4半期x4で一年ずらして差分をとると、対前年同4半期のグラフ。1970年頃から大きく伸びることがあったのね。時々大きく落ち込むのは不況かxxショックの類か?
Rと時系列(1)の処理例ではもっとカッコ良かったです。ラグ変えてグラフ描くのも一撃(勝手に余白調整を入れてしまいましたが。)
そのグラフが以下に。
また時系列で周期性のあるデータで定番の自己相関は以下で
スペクトルで見ることもできると。
グラフは以下に、周期1年のスペクトルが卓越?
季節変動ばかり見て来たけれどもトレンドが知りたい
上記では季節変動の抽出ばかりでしたけど、私は長期のトレンドが知りたいです。当然、R言語にはそのための関数もありました。まさに季節変動取り除く、ドンピシャの機能が以下に。
Seasonal Decomposition of Time Series by Loess
良く分かってもいないのに「適用」してみたところ。
上から、生データ、季節変動分、トレンド、そして残差という感じですかね。真似っこでもなんとなくグラフは描けると。しかし、ここの設定の詳しい意味を調べないと。。。