一、公司简介
(一)招商银行简介
招商银行是国内最大的零售银行,信用卡发卡最多的银行,是权重股,一线蓝筹股,而在最近几年的金融板块的表现也是极其亮眼,股价在两年内几乎翻了一倍。作为股份制银行,招商银行在目前的金融机构业务中经营非常良好,是国内信用卡发卡最多的银行,而且正加快实现战略转型,加大收入结构和客户结构的调整力度,大力发展零售银行业务、中间业务、信用卡业务和中小企业业务,不断提高非利息收入的占比,经营转型取得了良好的效果,是值得投资的白马股。
如上,画出核心指标的折线图,我们会发现,近几年来,无论是净利润还是营业总收入,都是保持了增长稳中向好。。。
二、实证分析
本文的数据来源于国泰安数据库,招商银行的每个交易日的开盘价、收盘价、成交量等。
变量选取,本文选取了从2011年1月到2022年9月的上证指数以及招商银行的每个交易日的收盘价作为原始数据,在此基础上进行时间序列分析。
首先对招商银行的股价进行描述性统计分析,计算其最大值最小值等统计量如表2所示,然后画出其时序图如图2所示:
time=as.Date(data$date)
price=as.numeric(data$close)
summary(price)
表 招商银行股价描述性统计
Min. | 1stQu. | Median | Mean | 3rdQu. | Max. |
55.00 | 72.00 | 83.00 | 89.98 | 101.50 | 229.00 |
画出股价随着时间变化的时序图:
price2=zoo(price,time)
plot(price2 ,main = "招商银行股价",xlab = "日期",ylab="股价",type='l')
下面对终极硬汉股价进行纯随机性检验和平稳性检验结果
#白噪声检验
for(i in 1:4) print(Box.test(price,type = "Ljung-Box",lag=3*i))
adf.test(price,3)
表 纯随机检验
滞后期数 | 卡方统计量 | P值 |
滞后3期P值 | 8548.3 | 0.000 |
滞后6期P值 | 17057 | 0.000 |
滞后9期P值 | 25531 | 0.000 |
滞后12期P值 | 33969 | 0.000 |
表 平稳性检验
检验形式 | no drift no trend | with drift no trend | with drift and trend |
ADF统计量 | 0.0745 | -1.15 | -2.48 |
对应P值 | 0.665 | 0.649 | 0.375 |
从表3和表4可以看到在0.05的显著性水平下,滞后3,6,9,12期都拒绝原假设,即都不是纯随机性序列,可以进行后续分析。
将招商银行股价数据进行一阶差分处理
表 差分后纯随机检验
滞后期数 | 卡方统计量 | P值 |
滞后3期P值 | 5.4064 | 0.1443 |
滞后6期P值 | 15.087 | 0.01959 |
滞后9期P值 | 25.747 | 0.002247 |
滞后12期P值 | 28.35 | 0.004915 |
表 差分后平稳性检验
检验形式 | no drift no trend | with drift no trend | with drift and trend |
ADF统计量 | -54.4 | -54.4 | -54.4 |
对应P值 | 0.01 | 0.01 | 0.01 |
即该差分后的序列数据为平稳序列。可以进行下一步建模。
ARIMA模型要观察数据的自相关图和偏自相关图来进行模型阶数的确定。对一阶差分的序列画出其ACF图和PACF图:
下面进行R语言的自动定阶的函数auto.arima,计算得到模型应该采用ARIMA(1,1,1),拟合得到模型系数:
auto.arima(price)
x.fit<-arima(price,order=c(1,1,1))
x.fit
表 模型系数检验
系数 | AR1 | MA1 |
P值 | 0.00 | 0.00 |
在0.01 的显著性水平下,所有系数都通过了显著性检验。
残差检验
#模型残差检验
for(i in 1:4) print(Box.test(x.fit$residual,lag=3*i))
#p大于0.05,不拒绝原假设,残差为白噪音,模型拟合有效
#dwtest(x.fit,order.by=xlag)
plot(x.fit$residuals,main = "招商银行股价模型残差图",xlab = "日期",ylab="模型残差")
最后进行预测,得到的整体拟合和预测图如下
#个性化输出预测图
L1<-x.fore$fitted-1.96*sqrt(x.fit$sigma2)
U1<-x.fore$fitted+1.96*sqrt(x.fit$sigma2)
L2<-ts(x.fore$lower[,2])
U2<-ts(x.fore$upper[,2])
c1<-min(price,L1,L2)
c2<-max(price,L2,U2)
plot(price2,type = "p",pch=3,col=6,ylim = c(c1,c2),main='招商银行股价预测图')
lines(x=time,y=x.fore$fitted,lwd=2,type = "l")
lines(x=time,x.fore$mean,col=2,lwd=2)
lines(x=time,L1,col=4,lty=2)
#lines(x=time,L2,col=4,lty=2)
lines(x=time,U1,col=4,lty=2)
可以看到ARIMA模型的拟合值和真实值的走势几乎算为一致,静态预测的拟合效果良好。后面的动态预测了30期股价,其走势较为平滑,由于数据量过大图上展示的不明显。。。。
三、结论
如上分析,最终本文得到的了招商银行股价的ARIMA拟合公式。并且在静态预测上得到了很好的效果。但是对于在2020年之后的年份,招商银行股价波动性变大,其模型拟合的残差也增大,说明ARIMA模型对于波动性较大的位置拟合效果一般。。。。
参考文献
[1]熊政,车文刚.ARIMA-GARCH-M模型在短期股票预测中的应用[J].陕西理工大学学报(自然科学版),2022,38(04):69-74.
[2]夏如玉,王梓桥.基于ARIMA模型对重庆市GDP预测分析[J].中国储运,2022(08):93-94.DOI:10.16301/j.cnki.cn12-1204/f.2022.08.044.
创作不易,希望大家多点赞关注评论!!!(类似代码或报告定制可以私信)