均值回归、分位数回归、岭回归、Lasso回归

(一)不同来源的数据合并

需要注意的是,由于国债收益率从Wind导入(为数据框类型),而股票数据是使用quantmod包爬取(为zoo、xts类型),因此出现了数据类型和时间不匹配问题。

先通过设置UTC(美国标准时间)来避免时区不一致问题(因为后面的合并是基于索引),再将国债日收益率导入,然后转化为xts类型数据,最后根据索引来合并,最后得到需要的两个变量。具体见下面:

ir=read.table(“clipboard”,header=T)
Sys.setenv(TZ = "UTC") #设置时区
r=data.frame(ir[,2])
date=as.POSIXlt(ir[,1])
rownames(r)=date
gr=as.xts(r) #转化为xts 类型数据
data1=merge.xts(SR_daily,gr/30,join="inner")
data2=merge.xts(GR_daily,gr/30,join="inner") data=merge.xts(SR_daily/100,gr/30,join="inner")#merge函数除了inner参数,还有outer、left等参数
x=data1[,1]-data1[,2]
y=data2[,1]-data2[,2]

(二)均值回归

#回归分析
setSymbolLookup(SZZZ=list(name="000001.ss",src='yahoo'))
getSymbols("SZZZ",from=from,to=to)
ZR=dailyReturn(na.approx(SZZZ[,4]),type="log")
lr=lm(ZR~SR_daily)
summary(lr)

#异方差检验
library(lmtest)
sde=resid(lr)
chartSeries(sde)
bptest(lr,studentize=FALSE)#Breusch-Pagan test
gqtest(lr)#Goldfeld-Quandt test

#自相关检验
acf(sde)
pacf(sde)
dwtest(lr)#Durbin-Watson test
bgtest(lr)#Breusch-Godfrey test
Box.test(sde1)#Box-Pierce test

#正态检验
hist(sde,nclass = 200)
st(sde)#shapiro.te分析

(三)分位数回归

从最小二乘法可以看出,传统回归中最小化残差的平方极易受极端值的影响,而且属于均值回归,这种方法不能得到不同分布下的数据关系,而分位数回归与均值回归的区别在于参数估计,通过对不同分布下的残差进行赋权来估计系数,属于最小一乘加权估计,其参数估计是优化求解问题。

分位数回归不考虑同方差、正态分布的假设,具有异常点抗耐性、捕捉分布尾部特征等特点,回归结果更加稳健。

library(quantreg)
r2=rq(ZR~SR_daily,tau=c(0.05,0.25,0.5,0.75,0.95))
summary(r2)

Z=as.numeric(ZR)
S=as.numeric(SR_daily)
taus=c(0.05,0.25,0.5,0.75,0.95)
plot(Z,S)
for(i in 1:length(taus)){
  abline(rq(ZR~SR_daily,tau=taus[i]))
  }

 (四)岭回归——带二范数惩罚的最小二乘回归

在实际情况中,如果样本数量不足使得X’X不可逆,或者存在共线性,我们将无法使用OLS回归,这时我们可以通过加入惩罚函数使得可逆,或者以较小偏差的代价(即有偏估计)来降低方差。根据不同的惩罚函数,估计方法有弹性网(岭回归、Lasso、ENet等)、非凸(SACD等)、极大极小凸点(MCP等)等方法。具体各种方法是如何加入惩罚函数的可以自学。下面是岭回归实现:

library(MASS)
S1=SR_daily
S2=dailyReturn(na.approx(AB[,4]),type="log")
r3=lm.ridge(ZR~S1+S2)
plot(lm.ridge(ZR~S1+S2,lambda=seq(0,10,0.5)))#得到岭迹图
select(lm.ridge(ZR~S1+S2,lambda=seq(0,10,0.5)))

 (五)Lasso回归——解决多重共线性

library(lars)
data=matrix(nrow=length(S1),ncol=2)
data[,1]=S1
data[,2]=S2
r4=lars(data,ZR)
plot(r4)

猜你喜欢

转载自www.cnblogs.com/amosding/p/12318015.html
今日推荐