资源描述:
《主成分回归及岭回归课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、有偏估计Smallmonster有偏估计Stein估计主成分估计岭估计刘估计几乎无偏估计统一无偏估计Andsoon.估计量偏差:是估计量的期望值与估计参数的真值之差,偏差为0的估计量称为无偏估计;否则,称为有偏估计。收集数据从wind终端下载sz50综合指数Sz50成分股的日线数据。时间段:2017.01.01~2017.04.15有偏估计在金融大数据中的应用模型建立模型选择模型评估有偏估计在金融中的应用收集数据:sz50的成分股数据sz50的综合指数数据预处理:缺失值处理,由于成分股中信威集团的缺失值太多,故剔除掉该列
2、。其它某些行出现少量的缺失值,通过观察数据走势图,用回归、移动平均加随机扰动项进行填充。待处理股票数据:贵州茅台,原始数据中贵州茅台数值较大。是否会对模型产生影响?ThinkingModelone:主成分回归将49个成分股全部进入模型,包括贵州茅台.Rcode:ww=read.table("C://Users/wxs623128/Desktop/sz50stock.csv",header=T,sep=',')ww2=read.table("C://Users/wxs623128/Desktop/sz50stock.csv
3、",header=T,sep=',')ww1=scale(ww[1:49])cormat=cor(ww1)value=eigen(cormat)model3=princomp(cormat,loading=T)summary(model3)datz=data.frame(model3$loadings[,1:3])mat=matrix(c(load1=datz[,1],load2=datz[,2],load3=datz[,3]),ncol=3)colnames(mat)=c("load1","load2","load3"
4、)matww1=matrix(ww1,nrow=59)zhuchengfen=matww1%*%matyy=ww[,50]datreg=data.frame(zhuchengfen,yy)lmmod=lm(yy~.,data=datreg)Modelone:主成分回归colmat=cov(ww2)colvec=c()meanxx=sapply(ww2,mean,2)for(iin1:49){colvec[i]=colmat[i,i]}colvecintercep=0for(iin1:49){intercep=interc
5、ep-(1.334*mat[i,1]+5.213*mat[i,2]-3.797*mat[i,3])*meanxx[i]/sqrt(colvec[i])}intercep#截距coefvec=c()for(iin1:49){coefvec[i]=(1.334*mat[i,1]+5.213*mat[i,2]-3.797*mat[i,3])/sqrt(colvec[i])}predata=as.matrix(ww2[,1:49])predict1=predata%*%coefvec+intercep+2341.192datt=
6、data.frame(predict1,yy)res=yy-predict1da=data.frame(res,t=1:59)plot(res,col=5:10,main="residualgraph(includingmaotai)",col.main="blue",lwd=4)Modelone结果及分析Modeltwo:主成分回归剔除掉贵州茅台数据(数值很大)由于模型1的残差很大,拟合效果较差,故而考虑修改模型,首先,从奇异值入手(贵州茅台),通过主成分回归建立新的模型;通过新模型来预测,得到预测值predict1,
7、它与truevalue之间的差值,以及方差来评判模型好坏。NewmethodModeltwo:主成分回归ww=read.table("C://Users/wxs623128/Desktop/sz50stock1.csv",header=T,sep=',')ww2=read.table("C://Users/wxs623128/Desktop/sz50stock1.csv",header=T,sep=',')ww1=scale(ww[1:48])#标准化cormat=cor(ww1)#相关矩阵value=eigen(cor
8、mat)#特征值和特征向量model3=princomp(cormat,loading=T)#新主成分分析模型summary(model3)Modeltwo:主成分回归datz=data.frame(model3$loadings[,1:3])mat=matrix(c(load1=datz[,1],load2=dat