Rによる単回帰分析 自己回帰モデルへの橋渡し 高崎経済大学 宮田庸一 Rとは • Rとは、統計処理、グラフ作成のために開発され た言語である。 • Rはフリーソフト • ダウンロードおよびインストールの仕方 →高崎経済大学 宮田研究室のRというページ • 高崎経済大学のRは現在のところ, 英語版しか入っていない・・・(-_-;) データのインポート • GDP.csvをRに取り込む. • Rにデータを取り込むために data1<-read.csv("C:\\Import\\GDP.csv",header=T,row.names=1) と入力しEnterを押す パスを指定する 1980~2009までの実質民間 最終消費支出(Private Final Consumption Expenditure) と実質GDP: http://www.esri.cao.go.jp/jp/s na/qe1022/gdemenu_ja.html 3 GDP(10億円) PFCE (10億円) 1980 287366.4 167753.7 1981 298687.1 171754.8 1982 308057 179712.9 1983 318921.7 185174.5 1984 334110.7 190722.2 1985 355096.2 199114.5 1986 361807.1 206209.7 データのグラフ表示 散布図:plot(data1,main="消費と支出") ヒストグラム:hist(data1$GDP,main="GDP") GDP 260000 220000 民間最終消費支出(PFCE) 6 4 180000 2 0 Frequency 8 300000 10 消費と支出 250000 300000 350000 400000 450000 data1$GDP 500000 550000 600000 300000 350000 400000 450000 GDP 500000 550000 データを指定 単回帰分析 回帰分析の実行 回帰分析の出力 result1<-lm(PFCE~GDP,data=data1) summary(result1) -----Rでの出力例-----------------------------------------------> summary(result1) Call: lm(formula = PFCE ~ GDP, data = data1) Residuals: Min 1Q Median 3Q Max -6695.1 -2768.7 196.3 2445.7 8813.3 y 8.126103 0.5465x 標準誤差 t値 P値 Coefficients: 推定値 Estimate Std. Error t value Pr(>|t|) (Intercept) 8.126e+03 3.941e+03 2.062 0.0486 * GDP 5.465e-01 8.585e-03 63.654 <2e-16 *** --Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 決定係数 Residual standard error: 3834 on 28 degrees of freedom Multiple R-Squared: 0.9931, Adjusted R-squared: 0.9929 F-statistic: 4052 on 1 and 28 DF, p-value: < 2.2e-16 自由度調整済み決定係数 回帰直線の上書き abline(result1) 他にもモデル診断もあるが省略する 260000 220000 180000 民間最終消費支出(PFCE) 300000 消費と支出 300000 350000 400000 450000 GDP 500000 550000 予測 200000 result.pre 直線に見えるが、実は曲線 250000 300000 • GDPが400000の時, 民間最終消費支出(PFCE)を予測する. > new<-data.frame(GDP=400000) > predict(result1,new,interval="predict",level=0.95) fit lwr upr 回帰直線と区間予測 [1,] 226718.4 218684.2 234752.6 300000 350000 400000 450000 new$GDP 500000 550000 時系列データ • 為替、株価、マクロ統計、心電図、筋電図etc 時刻tによりランダムに変動するデータを時系 列データと言う. , X 1, X 0 , X1, X 2 ,....,X T ,.... • 時系列データを通常の統計手法で処理するた めには,定常性を仮定しなくてはいけない. • 定常性とは, E( X t ) , Cov( X t , X t s ) ( s) 時系列分析の目的 • どこまで、過去のデータに影響を受けるのか を推定 • 株式データ、為替データの場合、リスクがど のくらいあるのかの推定 • 過去のデータから将来の値を予測する 時系列データのプロット 94 2010/1/4から2010/10/25までの円ドル為替相場の週足データ(rate_data.csv) data2<-read.csv("C:\\Import\\rate_data.csv",header=T,row.names=1) plot(data2$doll.yen,type="l",xlab="時刻",ylab="為替レート") 88 86 84 82 80 為替レート 90 92 これは定常ではないと考え られる. 0 10 20 時刻 30 40 データの差分を取る data3<-diff(log(data2$doll.yen)) plot(data3,type="l“,xlab="時刻",ylab="差分したデータ") 定常でないデータ 0.02 , X 1, X 0 , X1, X 2 ,....,X T ,.... 0.00 -0.01 -0.02 ,Y1,Y0 ,Y1,Y2 ,....,YT ,.... -0.03 定常なデータとなる 差分したデータ Xt Yt log log X t log X t 1 X t 1 0.01 差分を取る 0 10 20 時刻 30 40 自己相関係数(acf) • 時系列データ y1 , y2 ,..., yT 1 T 1 T y yt , ˆ (0) ( yt y ) 2 T t 1 T t 1 T 1 ˆ ( s) ( yt y )( yt s y ) T t s 1 t ドル/円 ドル/円 t-1 1月11日 90.7799 92.61 1月4日 1月18日 89.8899 90.7799 1月11日 1月25日 90.3 89.8899 1月18日 2月1日 89.33 90.3 1月25日 2月8日 90.0199 89.33 2月1日 2月15日 91.5899 90.0199 2月8日 2月22日 88.8499 91.5899 2月15日 3月1日 90.29 88.8499 2月22日 3月8日 90.4599 90.29 3月1日 • 自己相関係数(Auto-correlation) T (y ˆ ( s ) t s 1 ˆ ( s ) ˆ (0) t y ) ( yt s y ) T (y t 1 t y) 2 Rでの実行 ˆ (0), ˆ (1),...,ˆ (20) をプロット acf(data3, main="ACF") 0.4 0.2 0.0 -0.2 ACF 0.6 0.8 1.0 ACF 0 5 10 Lag 15 1次の自己回帰モデル Y1 , Y2 ,...,YT Yt Yt 1 ut (t 1,...,T ) ここをXtと考えると, 単回帰モデルと同じように推定が出来 そう. →Xtは定数ではなく,確率変数であるが,実はこの推定法 はある条件の下で正しいことが知られている. 2 • パラメーター ( , ) 推定法 • Yule Walker法(山本 p57) T ˆ (Y Y )(Y t 2 t t 1 Y ) T 2 ( Y Y ) t t 1 T 1 T 1 2 ˆ (Yt Y ) ˆ (Yt Y )(Yt 1 Y ) T t 1 T t 2 2 1 T Y Yt T t 1 Rでの実行(ar) ar01<-ar(data3,aic=FALSE,order.max=1) > ar01 Call:ar(x = data3, aic = FALSE, order.max = 1) Coefficients: 1 -0.2281 Yt 0.2281Yt 1 ut ut~N (0,0.0001944) Order selected 1 sigma^2 estimated as 0.0001944 金融工学においては, 0.0001944をリスクと考える. 1次の自己回帰モデル • 切片のある時系列モデルも考えられる Yt Yt 1 ut (t 1,...,T ) ここをXtと考えると, 単回帰モデルと同じように推定が出来 そう. 2 • パラメーター ( , , ) Rでの実行 data2<-read.csv("C:\\Import\\rate_data.csv",header=T,row.names=1) data3<-diff(log(data2$doll.yen)) ar1<-arima(data3, order=c(1,0,0)) ARIMA Modelという,より一般的なモデルがある. > ar1 Call: arima(x = data3, order = c(1, 0, 0)) Yt 0.0033 0.2328Yt 1 ut ut~N (0,0.0001847) Coefficients: ar1 intercept -0.2328 -0.0033 s.e. 0.1514 0.0017 sigma^2 estimated as 0.0001847: log likelihood = 120.91, aic = -235.83 参考文献 [1]平成20年度国民経済計算 (平成12年基準・ 93SNA)http://www.esri.cao.go.jp/jp/sna/h20kaku/22annual-report-j.html [2] 山本拓, (2009), 経済の時系列分析,創文 社 [3] 船尾 暢男, (2009), The R tips, オーム社
© Copyright 2024 ExpyDoc