0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

経済・ファイナンスデータの計量時系列分析(沖本)1章 Rコード

Last updated at Posted at 2021-08-17

#1章
1章のRコードの解答例です。

・par(mfrow = c(2,2))
・library(lubridate) data$X = ymd(data$X) %データの構造を割と柔軟に解釈して変換して時系列に変換してくれる。
・Box.test

の3つは覚えときたい。

カバン検定(Box.test)はH_0:全ての自己相関係数が0 を棄却する形で自己相関を見つける。(実質F検定)
OLSにおけるF検定と構造は同じだけど、偏自己相関ではなく自己相関を求めているので形がちょっと変?(重回帰ではなくそれぞれの_に行っているイメージ)。また誤差項の形に仮定をおいていないのでexactにはカイ二乗分布には従わない。(漸近的に自由度mのカイ二乗分布に従うので検定可能。)

(偏自己相関の検定は沖本には載っていなかったが、F検定で対応可能?怪しいので調べておく。)

mの調整によってよって高次の自己相関と検出力のトレードオフがあるので注意。グラフを見ながら見当をつけてやる必要がありそう。(m = log(T)が目安)

#コード

setwd("Okimoto/1")
library(tidyverse)
library(gdata)
library(lubridate)
library(rugarch)

data = read.xls("economicdata.xls")

data$X = ymd(data$X)

par(mfrow = c(3,3))
names = colnames(data)
col_index = 0
x = data$X
for (col_name in colnames(data)){
  col_index = col_index + 1
  y = data[,col_name] #$で撮ろうとするとうまくいかない
  if (col_index != 0){
    plot(x,y)
    title(col_name)
  }
}

data = mutate(data,topix_ln = log(topix),exrate_ln = log(exrate), indprod_ln = log(indprod) ) %>%
  mutate(topix_diff  = topix_ln - dplyr::lag(topix_ln,n=1) ,exrate_diff  = exrate_ln - dplyr::lag(exrate_ln,n=1),indprod_diff  = indprod_ln - dplyr::lag(indprod_ln,n=1))

par(mfrow = c(2,2))
plot(x,data$topix_diff,type="l")
plot(x,data$exrate_diff,type="l")
plot(x,data$indprod_diff,type="l")

Box.test(data$topix_diff, lag = 5)
Box.test(data$exrate_diff, lag = 10)
Box.test(data$indprod_diff, lag = 10)

for文のループ内で$で参照しようとするとうまくいかなかった。ループしてる変数で参照するときは素直に[]で指定してあげた方が良さそう。

#結果
##グラフ
Rplot01.png

Rplot.png

#アウトプット

> Box.test(data$topix_diff, lag = 10)

	Box-Pierce test

data:  data$topix_diff
X-squared = 45.416, df = 10, p-value = 1.829e-06

> Box.test(data$exrate_diff, lag = 10)

	Box-Pierce test

data:  data$exrate_diff
X-squared = 53.189, df = 10, p-value = 6.868e-08

> Box.test(data$indprod_diff, lag = 10)

	Box-Pierce test

data:  data$indprod_diff
X-squared = 58.148, df = 10, p-value = 8.107e-09

p-value = P(H_1|データ, H_0) は十分小さいので、棄却できる。(自己相関はどこかには存在。)

#reference
Rによる基本的な時系列処理のまとめ
http://user.keio.ac.jp/~nagakura/R/ts_R1.pdf

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?