R语言数据分析案例35-针对招商银行股价预测分析

一、公司简介

(一)招商银行简介

招商银行是国内最大的零售银行,信用卡发卡最多的银行,是权重股,一线蓝筹股,而在最近几年的金融板块的表现也是极其亮眼,股价在两年内几乎翻了一倍。作为股份制银行,招商银行在目前的金融机构业务中经营非常良好,是国内信用卡发卡最多的银行,而且正加快实现战略转型,加大收入结构和客户结构的调整力度,大力发展零售银行业务、中间业务、信用卡业务和中小企业业务,不断提高非利息收入的占比,经营转型取得了良好的效果,是值得投资的白马股。

如上,画出核心指标的折线图,我们会发现,近几年来,无论是净利润还是营业总收入,都是保持了增长稳中向好。。。

二、实证分析

本文的数据来源于国泰安数据库,招商银行的每个交易日的开盘价、收盘价、成交量等。

变量选取,本文选取了从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.

创作不易,希望大家多点赞关注评论!!!(类似代码或报告定制可以私信)

  • 26
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值