pythonとRによる時系列解析の練習-その3-
目的
統計学のとても基本的な概念のおさらいと、基本的な時系列解析に関しての復習を行うこと
当時はRで学習していたのだが、Rの新しいラブラリや、pythonのpandasやmatpltlibに関して、もうちょっと慣れること
手段
pythonによるデータ解析入門とRによる時系列分析入門とRクックブックを用いる
- 練習用のサンプルデータとして、以下の株価データを使用する
https://github.com/pydata/pydata-book/blob/master/ch09/stock_px.csv
単回帰分析を超真面目に再考する
大別すると決定論的モデルと、確率モデルになる。今回の場合は、株価のデータを使用しているので、原因となる変数xを与えても結果となる変数yを一意には定めないとの前提をおく。
- 直線的関係の確率モデル
\( Y(j) = \alpha + \beta \times X_{j} + u_{j}, {\hspace{5mm}} u_{j} \sim N, {\hspace{5mm}} j=1,2,\cdots,n \)
- Dataの読み込みから、線形回帰
data <- read.csv('stock_px.csv') xom <- data$XOM msft <- data$MSFT regr <- lm(xom ~ msft)
- summaryの読み方
>summary(regr) Call: lm(formula = xom ~ msft) Residuals: Min 1Q Median 3Q Max -27.435 -10.974 -0.954 9.406 38.121 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) -14.9952 2.1000 -7.14 1.26e-12 *** msft 3.1135 0.0869 35.83 < 2e-16 *** --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 13.31 on 2212 degrees of freedom Multiple R-squared: 0.3672, Adjusted R-squared: 0.3669 F-statistic: 1284 on 1 and 2212 DF, p-value: < 2.2e-16
- Estimateはパラメータの推定値
- Std. Errorは回帰係数の標準誤差
- t valueは \(T_{0}\) (t-値)
Multiple R-squared: は直線の当てはまりの良さの指標 今回の場合 0.3672
confint(モデル係数の信頼区間)はデフォルトで95%の信頼水準を使用する。第2引数にlevelを指定してもよい。
> confint(regr) 2.5 % 97.5 % (Intercept) -19.113386 -10.876946 msft 2.943073 3.283906 > confint(regr, level=0.99) 0.5 % 99.5 % (Intercept) -20.409134 -9.581198 msft 2.889453 3.337526
15から40まで、刻み込み幅0.5のxの値xhを作成して、p=0.9の信頼区間で予測区間の推定を行う。
xh <- seq(15, 40, by=0.5) single_regr(regr, xh, 0.9)
結果
分かっていたとはいえ、Rの標準のプロットダサすぎるだろ...