2021 年电工杯 B 题

Posted zhuo木鸟

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2021 年电工杯 B 题相关的知识,希望对你有一定的参考价值。


(更新中)

本人专挑数据挖掘、机器学习和 NLP 类型的题目做,有兴趣也可以逛逛我的数据挖掘竞赛专栏

如果本篇博文对您有所帮助,请不要吝啬您的点赞 😊

赛题官网:http://shumo.neepu.edu.cn/

概念解析

基本概念

成交量

成交量就是开盘至收盘达成的成交数量,单位为手(100 股),是一个单边概念,也即,是指成交量既代表了买的数量,也代表了卖的数量,而非总和。

成交额

成交额 = = = 成交量 × \\times × 现价

跌涨

跌涨 = = = 现价 − - 上一次交易的收盘价

跌涨幅值

跌涨幅 = 现价 − 上一次交易的收盘价 上一次交易的收盘价 \\text{跌涨幅} =\\frac{\\text{现价}-\\text{上一次交易的收盘价}}{\\text{上一次交易的收盘价}} 跌涨幅=上一次交易的收盘价现价上一次交易的收盘价

指数概念

总股本

总股本即股份有限公司发行的所有股份,包括流通股本和非流通股本。流通股本即理论上,或名义上可在市场上流通、交换的股本,但有些也是名义上的。因此,流通股本亦分为自由流通股本,和非自由流通股本。所谓非只有流通股本,是指那些名义上流通,但实际上很难流通的股份。比如大股东的股份(个人股份超过 5 5% 5),国有持股,战略持股,或员工持股计划等一些限售的股份。而自由流通股份,就是在各大政权交易所中,能够在散户中流通的股份,便是自由流通了。

而非流通股份,在我国的股份市场上,占比已经很少了。

调整股本数

调 整 股 本 数 = 总 股 本 × 加 权 比 例 调整股本数 = 总股本 \\times 加权比例 =×
其中加权比例为:
加 权 比 例 = f ( 自 由 流 通 比 例 ) 加权比例 = f(自由流通比例) =f()
所谓自由流通比例,即为:
自 由 流 通 比 例 = 自由流通股本数 总股本数 自由流通比例 = \\frac{\\text{自由流通股本数}}{\\text{总股本数}} =总股本数自由流通股本数
而 f 为一个通过表格的映射,表格如下(来自中证指数的计算公式):
在这里插入图片描述

收盘指数

收盘指数的计算公式如下:
收 盘 指 数 = ∑ ( 收盘价 × 调整股本数 × 权重因子 ) 基期调整市值 × 1000 收盘指数 = \\frac{\\sum (\\text{收盘价}\\times \\text{调整股本数}\\times \\text{权重因子}) }{\\text{基期调整市值}}\\times 1000 =基期调整市值(收盘价×调整股本数×权重因子)×1000

基期调整市值是指基期(选的一个标尺)中,所遇证券的证券价格 × \\times × 调整股本数的总和。

权重因子一般是以市值加权,即该证券的权重因子:
权 重 因 子 = 单个证券市值 板块市值 权重因子 = \\frac{\\text{单个证券市值}}{\\text{板块市值}} =板块市值单个证券市值

计算示例

以东旭蓝天为例,首先上网查:http://stock.quote.stockstar.com/,可以得到:
在这里插入图片描述

所以其自由流通比例为:71%,故加权比例为:80%。

故其调整股本数为: 148687.39 × 80 148687.39\\times 80%=118949.912 148687.39×80 万股。

上证指数

上、证指数是反映上海证券交易所挂牌股票总体走势的统计指标。 其前身为上海静安指数,是由中国工商银行上海市分行信托投资公司静安证券业务部于1987年11月2日开始编制,于1991年7月15日公开发布,以1990年12月19日为基期,基期值为100,以全部的上市股票为样本,以股票发行量为权数进行编制。

第一问

第一问的关键在于,根据各股票(以下称为证券)的收盘价,计算出证券们的市值。之后,再根据市值,根据收盘指数的计算公式,计算出光伏建筑板块的收盘指数。

但难的地方,在于证券的数据不是连续的,可能因为数据收集的确实,抑或是证券交易所的正常休息日。另外,一些证券在 19-4-1 时尚未上市,因此在数据上也无从谈起。于是,在缺失值重重的情况下,如何计算板块的指数,就需要我们灵活解决。

出现缺失数据:
在这里插入图片描述

2021-1-19 日上市:
在这里插入图片描述

如何解决呢?

对于中间缺失,即缺失值发生在 2019-4-12021-4-30 之间,我们可以将**上一次的值,原封不动地填补缺失值。**这样做的逻辑是,在交易所休息阶段,收盘价是不会变的。

对于开头缺失,即证券上市的时间晚于 2019-4-1 时,我们直接不用管,在代码上表现为用 nan 填补。幸运的是,Python 在计算时会忽略 nan

因为计算指数时,常常把第一天(对本题而言即 19-4-1)的板块调整市值作为基期市值,因此,要注意,对于开头缺失,在计算收盘指数时,在一个新的证券加入之后,我们需要更新基期调整市值

于是,可以计算出 2019-4-12021-4-30 的光伏-建筑板块指数(收盘指数)如下:
在这里插入图片描述

移动平均

这里采用的移动平均是“拖尾”平均,也即当前平均值 x ˉ ( t ) = m e a n ( x ( t − 1 ) + x ( t − 2 ) + ⋯ + x ( t − 20 ) ) \\bar{x}(t) = mean(x(t-1)+x(t-2)+\\cdots+x(t-20)) xˉ(t)=mean(x(t1)+x(t2)++x(t20))

于是可以计算出 5、10、20 天的移动平均模型:
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

第二问

数据分析

画出当前数据,和时间延迟为 1 的数据的值的散点图:
在这里插入图片描述

从上图其实可以看出,数据的自相关性是非常好的。

选择时间延迟为 5,画出散点图如下,同样可以看出数据的相关性依旧有所保持:
在这里插入图片描述

我们也可以计算出 x ( t ) x(t) x(t) x ( t − k ) x(t-k) x(tk) 的 pearson 相关系数,其中 x 为我们的光伏-建筑板块指数,取 k = 1 ∼ 5 k=1\\sim5 k=15,计算相关系数的结果如下:

自相关系数矩阵:
           x(0)      x(1)      x(2)      x(3)      x(4)      x(5)
x(0)  1.000000  0.976863  0.956510  0.934874  0.911770  0.891546
x(1)  0.976863  1.000000  0.976870  0.956515  0.934891  0.911917
x(2)  0.956510  0.976870  1.000000  0.976867  0.956514  0.934971
x(3)  0.934874  0.956515  0.976867  1.000000  0.976867  0.956591
x(4)  0.911770  0.934891  0.956514  0.976867  1.000000  0.976919
x(5)  0.891546  0.911917  0.934971  0.956591  0.976919  1.000000

从上述数据上,其实就可以看出数据的相关性良好了。

我们也可以计算出偏相关系数,如下:

偏相关系数矩阵:
           x(0)      x(1)      x(2)      x(3)      x(4)      x(5)
x(0)  1.000000  0.681154  0.061355  0.003722 -0.064742  0.046126
x(1)  0.681154  1.000000  0.455402  0.042487  0.048458 -0.063912
x(2)  0.061355  0.455402  1.000000  0.455051  0.042977  0.003071
x(3)  0.003722  0.042487  0.455051  1.000000  0.454815  0.062041
x(4) -0.064742  0.048458  0.042977  0.454815  1.000000  0.682089
x(5)  0.046126 -0.063912  0.003071  0.062041  0.682089  1.000000

也可以画出自相关图,并画出 Bartlett 和 5% 的显著性水平画出的置信区间:
在这里插入图片描述

若落在置信区间上,则意味着自相关性不显著。

当然,也可画出偏相关系数图像,同样取显著性水平为 5%:
在这里插入图片描述

自回归(AR)分析

Naive 模型

我们用上一次的值,作为当前的预测值,可得结果如下:
在这里插入图片描述
模型在测试集中的 MSE 为: 58.5791472606866

自相关模型建立与分析

使用延迟步数为:  20
自回归模型的参数为:  [ 1.80549268e+01  9.34884531e-01  7.27418192e-02  2.37805594e-02
 -9.43148653e-02  7.99250975e-02 -1.16602633e-01  1.47335232e-02
  3.60941428e-02  5.18376777e-02 -1.44899005e-02  2.76797174e-03
 -6.97366769e-02  8.09751250e-02 -9.26388627e-02  6.60714196e-02
  1.28421576e-02 -2.41336183e-02 -6.22946828e-03 -2.84517794e-02
  4.89253490e-02]

模型在测试集中的 MSE 为: 306.3751995174739

在这里插入图片描述

移动平均(MA)分析

在自回归模型中,对于训练集,我们画出实际数据和拟合数据,如下所示:
在这里插入图片描述

可以看到是非常好的(但在测试集上就不一样了。)

代码与提问

若需要代码,请点赞,关注、私信、说明题目和年份

如果有其他问题,请到评论区留言,私信提问,概不回答。也在此鼓励大家独立思考。

本人不会回访,不互关,不互吹,以及谢绝诸如此类事

以上是关于2021 年电工杯 B 题的主要内容,如果未能解决你的问题,请参考以下文章

2021 年电工杯 B 题

2021电工杯数学建模B题思路(更新)--最强思路

2021 年电工杯 A 题(第一题第二题第四题)

2021 年电工杯 A 题(第一题第二题第四题)

2021电工杯B题思路分析程序示例及参考文献

2021电工杯B题股票预测思路分析程序示例及参考文献