2015年4月16日木曜日

つまずかないR言語入門(時系列オープンデータの移動平均)

前回まで、気象庁のオープンデータで、平均気温の可視化や、トレンドを除去した偏差に
ついて記述してきた。

株価なども時系列データの典型であるが、例えば「5日移動平均線」は直近5日分の終値を
合計して5で割った株価を結んだものである。
日々の細かい値動きより、滑らかな傾向値をプロットすることで、
過去の経緯から、今後の株価を推測することが良くある。

そこで、移動平均についてお勉強!
まず、CRANからパッケージをダウンロードします。ミラーサイトは
なるべく近隣のサイトから選択します。

> install.packages("TTR")

これで、つぎのような表示がでます。
URL 'http://cran.md.tsukuba.ac.jp/bin/windows/contrib/3.1/TTR_0.22-0.zip' を試しています
Content type 'application/zip' length 283023 bytes (276 KB)
開かれた URL
downloaded 276 KB

パッケージ ‘TTR’ は無事に展開され、MD5 サムもチェックされました

ダウンロードされたパッケージは、以下にあります
C:\Users\xxxxxx\AppData\Local\Temp\RtmpYZXkVr\downloaded_packages

これで、TTRパッケージをよびだします。
> library(TTR)
要求されたパッケージ xts をロード中です
要求されたパッケージ zoo をロード中です

次のパッケージを付け加えます: ‘zoo’

The following objects are masked from ‘package:base’:

as.Date, as.Date.numeric

次に、東京の平均気温データを呼び出します。

> temp<-read.table("kion.txt",header=TRUE,row.names=1)
先頭6行を確認。
> head(temp)
jan feb mar apr may jun jul aug sep oct dec nov ave
1876 1.6 3.4 8.1 12.2 16.9 18.4 24.3 26.7 22.6 14.8 9.1 4.8 13.6
1877 2.9 3.3 6.0 13.5 16.4 21.9 26.2 25.7 21.1 15.6 9.3 5.7 14.0
1878 2.1 2.2 7.0 11.4 18.0 19.9 25.9 24.4 22.6 15.5 9.5 5.0 13.6
1879 3.1 5.2 7.9 12.2 17.9 21.4 26.1 26.5 21.0 14.7 9.4 7.8 14.4
1880 2.3 5.6 8.2 12.1 17.4 19.7 24.1 25.3 22.1 16.4 9.9 3.6 13.9
1881 2.0 3.4 5.1 11.3 17.0 21.2 23.8 26.5 22.4 15.5 10.8 4.1 13.6

属性を確認すると
> class(temp)
[1] "data.frame"

次に、時系列データにするために、年平均気温(ave)を抜き出します。
> temp.ts<-as.ts(temp$ave)
> head(temp.ts)
[1] 13.6 14.0 13.6 14.4 13.9 13.6
> class(temp.ts)
[1] "ts"
ということで、時系列データであることが確認できました。

> plot(temp.ts)
> temp.ts5<-SMA(temp.ts,5)
> par(new=T)
> plot(temp.ts5,col="blue")

このままでは、y軸の表記がおかしいので、

> plot(temp.ts,xlab="year",ylab="temp",xlim=c(0,150),ylim=c(12,18))
> par(new=T)
> plot(temp.ts5,xlab="year",ylab="temp",xlim=c(0,150),ylim=c(12,18),col="red")

この作業で、一年ごとの平均気温と赤色で5年移動平均がグラフ化できました。

細かい作り込みは、いま一つですが、時系列解析における移動平均が
ようやく理解できました。

Rは奥が深い。


----------------------
スマートテクノロジーネットワークのホームページはこちら
----------------------

0 件のコメント:

コメントを投稿