データのお砂場(16) R言語、LakeHuron、ヒューロン湖の水位とな?

Joseph Halfmoon

前回に続き、今回も時系列データです。北米大陸の巨大な湖、ヒューロン湖の水位のデータ。前回4半期毎の季節変動をトレンドと分離できたので、今回もその手か、と思ったのですが違いました。1年1点のデータであるので季節変動などはありません。長い目でみた長期のトレンドを探れということみたい。

※「データのお砂場」投稿順Indexはこちら

今回のデータセットの解説ページは以下にあります。

Level of Lake Huron 1875–1972

ほぼ100年間のヒューロン湖の水位データです。残念ながらこのページには、「こう処理してみよ」といった例は記載されていません。フリーハンドです。

ヒューロン湖と来ましたか。ヒューロン湖の岸辺に立ったことはないのですが、上空を通過したことは何度かあります。ヒューロン湖を超えた先、オンタリオ湖畔のトロントとの往復のためであります。印象に残っているのは秋の「紅葉シーズン」にヒューロン湖畔を飛行したときの北岸の眺めです。カナダ国旗の赤色のカエデが延々と。ともかく大きな湖です。

遠くから見るとそのままの大自然にも思えるのですが、近づいてみたらば環境問題深刻みたいです。一般財団法人環境イノベーション情報機構様の以下のニュースにリンクを貼らせていただきます。

五大湖の低水位続く

今回処理してみるのは、40年以上前までのデータなので、最近のトレンドとかは分かりませんが、データを見ると相当前から水位低下が起こっていたのではないかと思えます。

なお、今回はフリーハンドで処理とのことで、同志社大 データサイエンス研究室様の以下のページを参考に処理を書いてみました。ありがとうございます。

Rと時系列(1)

まずは生データ

例によって生データの読み込みと、データの形式です。ts、時系列データです。LakeHuronRawDataOpr

 

生データのプロット結果がこちら。なお縦軸の水位はフィート単位です。

LakeHuronRawDataPlot

年によって大きく変動しながらも、長期低落傾向にあるような気がします。大丈夫かヒューロン湖。

移動平均を取ってみる

毎年の変動が大きいので、よくやる手、株屋さんお馴染みの移動平均を取ってみました。5年移動平均、25年移動平均です。移動平均の計算が以下に。

LakeHuronMovingAVGOpr

 

Rで移動平均を取るのに、バッチリの関数があるのかと思ったら、まずはフィルタをかけるウインドウを作って、「コンボリューション」的な処理(filter)をさせるのが定石みたいです。

フィルタをかけた結果も同形式の時系列データであるので、重ねてプロットするのは素直にできます。

LakeHuronMovingAVGPlotOpr

上記のコマンドで描いた移動平均を重ねたプロットを、冒頭のアイキャッチ画像に掲げました。

緑の25年移動平均を見ると、低落傾向は1930年代くらいを底に反転しているようにも見えます。しかしニュースなど読むと、株価のトレンドが過去の移動平均トレンドから推し量れないように、ヒューロン湖もこの後も余談を許せない状態、ってことでしょうかね。

トレンド除去

本当は、長期トレンドの抽出をやりたかったのですが、どうも難しくて良くわかりません。参照させていただいているページに「トレンド除去」については凄く簡単な方法が書かれていたのでやってみました。

LakeHuronDiffOpr

となりあうデータの差分(階差)をとるだけ。「線形な」トレンドならこれで除去できる、と。ホントか。

LakeHuronDiffPlot
おお、0を中心にガタガタしている(毎年の揺らぎ部分?)ように見えないこともないです。ということは背景には「線形なトレンド」があって、長期低落してるってことかい?拡大解釈すぎるか。知らんけど。

結構、恐ろしいデータですな。最近のデータも見てみたいもんです。

データのお砂場(15) R言語、JohnsonJohnson、4半期毎一株あたり利益 へ戻る

データのお砂場(17) R言語、LifeCycleSavings、各国の貯蓄データとな? へ進む