1、獲取數據dom
在yahoo抓取自2012年以來,美日匯率、日經指數和美國道指指數價差。code
> library(quantmod) > Indexdata<-list() > Index<-c("^N225","DJIA") > IndexName<-c("N225","US30","USD/JPY") > for(i in 1:2){ + n<-Index[i] + res<-get(getSymbols(n,src="yahoo",from="2012-01-01",to=Sys.Date())) + cp<-res[,4] + Indexdata[[i]]<-cp + next} > forex<-get(getFX("USD/JPY",from="2012-01-01",to=Sys.Date(),auto.assign=TRUE)) > Indexdata[[3]]<-forex > Returndata<-do.call(merge,Indexdata) > names(Returndata)<-IndexName > mydata<-na.omit(Returndata) > mydata$diff<-mydata$US30-mydata$N225 > getdata<-mydata[,3:4] > head(getdata) #查看前6條記錄 USD.JPY diff 2012-03-12 82.2687 3069.850 2012-03-13 82.5322 3278.600 2012-03-14 83.3701 3143.580 2012-03-15 83.6701 3129.479 2012-03-16 83.5102 3102.790 2012-03-19 83.3502 3097.140 > tail(getdata) #查看後6條記錄 USD.JPY diff 2017-03-03 114.315 1536.541 2017-03-06 113.846 1575.199 2017-03-07 113.963 1580.609 2017-03-08 114.100 1601.701 2017-03-09 114.622 1539.609 2017-03-10 115.178 1298.371 > dim(getdata) [1] 1199 2
2、數據的初步探索orm
> cordata<-cor(getdata[,1:2]) > cordata USD.JPY diff USD.JPY 1.0000000 -0.9195801 diff -0.9195801 1.0000000
由上面能夠看到,美日匯率與美日股市指數差價具備強負相關性。圖片
3、構造線性迴歸模型ip
一、以匯率爲因變量,指數價差爲自變量:ci
> model<-lm(USD.JPY~diff,getdata) > summary(model) Call: lm(formula = USD.JPY ~ diff, data = getdata) Residuals: Min 1Q Median 3Q Max -10.8174 -4.4264 -0.7552 4.0511 13.7444 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 1.115e+02 1.799e-01 619.80 <2e-16 *** diff -6.825e-03 8.428e-05 -80.97 <2e-16 *** --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 5.339 on 1197 degrees of freedom Multiple R-squared: 0.8456, Adjusted R-squared: 0.8455 F-statistic: 6557 on 1 and 1197 DF, p-value: < 2.2e-16
P值小,說明迴歸效果顯著。get
當美日股市指數差價爲2000時,預測美日匯率:it
> new<-data.frame(diff=2000) > myforex<-predict(model,new,interval="prediction",level=0.95) > myforex fit lwr upr 1 97.82946 87.34874 108.3102