pythonとRによる時系列解析の練習-その2-
目的
統計学のとても基本的な概念のおさらいと、基本的な時系列解析に関しての復習を行うこと
当時はRで学習していたのだが、Rの新しいラブラリや、pythonのpandasやmatpltlibに関して、もうちょっと慣れること
手段
pythonによるデータ解析入門とRによる時系列分析入門を用いる
- 練習用のサンプルデータとして、以下の株価データを使用する
https://github.com/pydata/pydata-book/blob/master/ch09/stock_px.csv
さて、その1では、単純に描画をすることをメインにコードを書きました。
今日は、少し、解析っぽい何かをやってみます。
移動平均は、時系列データのt時点のデータとして、その時点と隣接する前後数期間(この場合N期)のデータの平均値をとったもので、下記のようになります。
\begin{align*} Y(t) = \frac{ \sum_{k=-N}^{N} Y_{t+k}} { 2 \times N + 1} \end{align*}
k = 1のとき(3期移動平均)
\begin{align*} Y(t) = \frac{Y_{t-1} + Y_{t} + Y_{t+1}} {3} \end{align*}k = 2のとき(5期移動平均)
\begin{align*} Y(t) = \frac{Y_{t-2} + Y_{t-1} + Y_{t} + Y_{t+1} + Y_{t+2}} {5} \end{align*}
- tips
移動平均の算出する際に、filterの第3引数 slidesに関して現在を中心として計上するか、現在を先端として遡るかを指定できます。
\( sides=2 \Leftrightarrow \frac{Y_{t-1} + Y_{t} + Y_{t+1}} {3} \)
\( sides=1 \Leftrightarrow \frac{Y_{t} + Y_{t-1} + Y_{t-2}} {3} \)
で、さてここで、1枚の画像に2つ以上のグラフを描画したい時にどうするのかな??というのが、少々疑問です。 例えば、4枚を
\begin{array}{cc} 1 & 2 \\ 3 & 4 \ \end{array}
このように、表示したい場合どのようにすればいいのかということがあるはずです。 Rの標準ならば
par(mfrow=c(2,2))
ですが、これは、あまりにもダサい...
そこで、オシャレグラファー御用達のggplotを使用するならば
faced_wrap() facet_grid()
を指定してもいいのですが、予め、matrixを絶対指定できて、かつ直感的に書きたいなぁ...と、普通ならば思うはずです。
そこで、library(grid)を用いて、位置を固定します。
- 2行1列の描画エリアを予め作成
grid.newpage() pushViewport(viewport(layout=grid.layout(2, 1) ))
ふむぅ...
markdownpadにmathjaxを入れると、ライブラリの読み込みにえらい時間がかかる上に、頻繁にhang upするのであまり実用性がなく...
はてぶのtex(mathjax)って独自仕様が強いのが苦戦した...
stack edit結構いいなっていう...ブラウザ専用じゃなければ...