データのお砂場(19) R言語、Nile、ナイル川の水量百年とな?

Joseph Halfmoon

第16回でヒューロン湖の水位変動データを扱ってみましたが、今回はナイル川の水量データです。1871年から1970年までの100年間のものです。その最大水量1370×108立方m/yearとな。エジプト南端のアスワンでの値のようです。そういえば1970年、アスワン・ハイ・ダムの完成の年らしいです。

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

R言語をインストールすると多分もれなくついてくるサンプルデータセットをABC順(大文字が先ね)に眺めておりますが、今回はナイル川の水量の変動データです。解説ページへのURLが以下に

Flow of the River Nile

有名なアスワン・ハイ・ダム完成に先立つ100年間のデータみたいです。データは3桁4桁の数字ですが、水量の単位100Mm3です。ちと想像つかない量ですな。後で計算してみましょ。

そういえば最近、上流のエチオピアの青ナイルにできた「グランド・エチオピアン・ルネサンス・ダム」が部分的に発電を始めたというニュースが流れていました。下流のエジプト、スーダンともめているみたい。日本的にいうと「水争い」ですかね。日本でも近代以前は水争いで村同士の紛争はたびたびあったと。実際、今でも「調整」大変みたいです。

昔、北陸地方の「暴れ川」で有名な川の支流域で「実証実験」あり、参加したことがあったです。聞けば、水量を調整しているのは上流のダムの管理事務所の人なのですが、放水量を決めるのに、流域の漁業関係者、農業関係者、河川の堤防や浚渫などの土木事業者など利害関係者多数の調整必要。なかなか一筋縄ではいかない感じでした。そこで50とか30とか数字が出ていたので「単位」を聞いたら「立米/秒」みたいでした(結構土木関係者「りゅーべー」好きな気がします。個人の感想です。)50m3/secですな。ここから計算するに

50 x 3600 x 24 x 365 ≒ 15.8 x 108 m3/year

サンプルデータセットのナイル川の水量のMAXが 1370 x 108 m3/year であるようなので、私が目にしていた川のだいたい87倍の水量ってことね。とはいえそれでは皆さんに伝わらないので、日本一の大河、信濃川が5百数十立米毎秒くらいだということであります。信濃川と比べて8倍くらいってことかい。多いような気もするが、大したことない気もしないでもないです。ホントか、計算間違えてないか、自分。

閑話休題

まずは生データ

いつものように生データからみて行きます。データは予想どおり ts、時系列データです。Nile_tsplot_opr

 

上記のts.plotで生データをそのままプロットしたものがこちら

Nile_tsplot

1年1点のデータなので、季節変動はない筈ですが、トレンド的にちょっと「減ってる」ような気がしてなりません。ヒューロン湖の時にも叫びますが再度言わせていただきます「大丈夫かナイル川」

移動平均とってみた

ヒューロン湖のときも減っている感じがしてました。その時は移動平均をとってその様子を観察しました。今回も同様に処理してみました。

y5<-rep(1,5)
y25<-rep(1,25)
Nile5<-filter(Nile, y5)/sum(y5)
Nile25<-filter(Nile, y25)/sum(y25)
ts.plot(Nile, Nile5, Nile25, main="Nile", xlab="year", ylab="100Mm^3", col=c(1:3))
legend(locator(1),c("Raw", "moving 5 years", "moving 25 years"),lty=c(1,1,1),col=c(1:3))

結果のグラフは、冒頭のアイキャッチ画像に掲げました。緑の25年移動平均線をみると明らかですが、

  • 19世紀から20世紀初頭にかけて減っている
  • 1920年あたりでようやく歯止めがかかって横ばい?

という感じです。気候変動が理由なのか、上流での農業開発などが進んだためなのか、理由は不明であります。また、データの最終年の1970年にアスワン・ハイ・ダム完成。その後の水位に影響があったのでしょうか。そして今回、「ルネサンス」ダムも稼働。

例題は、acf, pacf、ar, arimaとお道具を繰り出し解析。

今回、前述の説明ページには処理例が掲載されています。それもかなり分量多いです。処理例では移動平均などというお手軽なツールでお茶を濁さず、このデータを延々と処理してモデルを構築していっています。その目論見はというと、1箇所引用させていただくと、

apparent changepoint near 1898

という変曲点に向けて論理を組み立てているみたいです。しかし、当方、そこへ行き着く前にもはや落ちこぼれています。最初のステップ「小手調べ的な」がこちら。

par(mfrow = c(2, 2))
plot(Nile)
acf(Nile)
pacf(Nile)
ar(Nile)
cpgram(ar(Nile)$resid)

上記で得られたグラフがこちら。

Nile_AR

 

このARモデルが、「はかばかしくない」感じは、なんとなく分かります。目論見の変化点の説明になってない感じがします。そこでなのか、この後、新手(の手法)を次々繰り出し、解析を進めていくのです。でもね、上のところで私は既にサッパリ、理解を超えています。なので、以降の処理はパス。そういうことでいいのか。まあ、何度もやっている内に慣れてくる?ホントか?

データのお砂場(18) R言語、Lobololly、テーダマツの成長「曲線」とな? へ戻る

データのお砂場(20) R言語、Orange、オレンジの木の幹の太さの成長曲線とな? へ進む