BC变换的EWMA控制图对顺丰控股股票的分析研究

news/2024/11/13 8:55:39/文章来源:https://www.cnblogs.com/tecdat/p/18355962

全文链接:https://tecdat.cn/?p=37326

原文出处:拓端数据部落公众号

量化投资可以带来不菲的回报,但缺乏丰富的知识却难以实现。统计质量管理的思想通俗易懂,且对于市场相对稳定的股市有监控作用。结合历史股票数据和统计质量管理的思想,对数据作合适的处理并设计合理的控制图是十分关键的。本文将通过展示如何用基于BC变换的EWMA控制图对顺丰控股股票分析,并结合一个Python神经网络、Lasso回归、线性回归、随机森林、ARIMA股票价格时间序列实例的代码数据,为读者提供一套完整的实践数据分析流程。

解决方案

任务/目标

根据历史股票数据,设计控制图并运用控制图监控股票价格变换并给投资建议。

数据获取

原数据为 2019 年 12 月 2 日到 2021 年 2 月 26 日之间顺丰控股股票的交易日期(trade_date)、股票代码(ts_code)、开盘价(open)、最高价(high)、最低价(low)、收盘价(close)、前一日收盘价(pre_close)、涨跌额(change)、涨跌幅(pct_chg)、成交量(volume)、成交额(amount)及换手率(turnover_rate)。以上均通过tushare网站的数据接口运用python获取。以下则均用R语言实现。

数据预处理

首先,对原始数据进行筛选,保留了研究所需数据,计算了振幅(%)指标,删除了多余及缺失数据。接着是对各指标之间的相关性进行了分析及可视化处理,发现除开盘价以外,其他指标之间均有相对较高的相关性,但是相关性最高的是开盘价与成交额之间(图略)。最后是给出研究区间内顺丰控股股票的收盘价走势(前复权)以及研究区间内的K线图和交易量图(图略)。

数据转换及检验

运用主成分分析方法对数据进行处理,得到综合得分数据。由于控制图对于分布的要求,进一步做正态检验,包括图示法、偏度峰度检验以及非参数检验法,最终得到综合数据不服从正态分布的结论。

因此,对综合得分进行Box-Cox 正态变换,得到变换后的得分数据,经检验满足正态性。

运用历史数据设计控制图

对于上述得到的变换后的得分,设计基于BC变换的EWMA控制图。接着,对2020年10月9日至2021年2月26日股票的数据进行相同的主成分分析及正态变换后,运用控制图对综合得分进行监控,并给出相应的投资建议。

在此项目中,最终依据控制图给出的初步投资建议如下图所示,其中绿色的点代表加仓或持有建议,而红色的点代表减仓或平仓建议:

更进一步,此项目还针对不同的投资者给出了个性化建议,如少加仓多减仓(只有价格连续下降才考虑减仓,而对于价格上升则宽松一些)以减少风险、多加仓少减仓(在低价位时多加仓,只有价格升高到一定水平后才考虑减仓)以提高收益率等。

此项目给出的初步投资建议最终的收益率变化(上),以及无策略收益率变化(下)如下所示:

同时,本策略给出的个性化投资策略最终收益率为23.88%、29.69%、47.7%。由此可以看出,此项目的策略是可以获得回报的。

当然,本项目所给出的策略仅供参考,所给出的收益率也是理论上的,并没有考虑实际交易中的各种问题。不过,此项目给出了运用统计质量管理进行投资的可实现想法,具有实际意义。

 接下来我们一个实例包含代码和数据来演示如何用神经网络、Lasso回归、线性回归、随机森林进行股票价格预测。

神经网络、Lasso回归、线性回归、随机森林对大型科技股价格预测

数据选择

该数据集包括 14 家不同科技公司的每日股价和交易量,包括苹果 (AAPL)、亚马逊 (AMZN)、Alphabet (GOOGL) 和 Meta Platforms (META) 等

数据导入

数据的时间序列可视化

 
  1.  
     
  2.  
     
  3.  
    unique_symbols = stock['stock_symbol'].unique()
  4.  
    colors = ['red', 'blue', 'green', 'purple', 'grey', 'brown', 'cyan', 'magenta', 'yellow', 'black', 'orange', 'pink', '#ADD8E6', '#90EE90']
  5.  
    color_palette = {symbol: colors[i % len(colors)] for i, symbol in enumerate(unique_symbols)}
 

显示 2010 年至 2023 年股票调整后收盘价的时间序列的折线图。每只股票都由一条不同颜色的线表示,股票代码列在右侧的图例中。这些线显示了股价随时间推移的波动,一些股票显示出显着的增长

探索性数据分析

缺失值

数据集中没有缺失值。('stock_symbol'、'date'、'open'、'high'、'low'、'close'、'adj_close'、'volume')中的每一列都有等于条目总数的非空计数,即 45,088。因此,每列的缺失值百分比为 0.0%,确认数据集是完整的,没有缺失数据。

对图

配对图是一个图表网格,显示每个股票变量(如开盘价和收盘价)与其他变量的关系。对角线上是直方图,显示每个变量出现不同值的频率。对角线的散点图显示了两个变量之间的趋势或模式,例如整个数据中最高价和最低价的比较情况。

 
  1.  
     
  2.  
     
  3.  
    numerical_data = stock[['open', 'high', 'low', 'close', 'adj_close', 'volume']]
 

相关热图

热图显示了不同股票市场变量之间的密切关系,例如开盘价和收盘价。深绿色方块表示非常强的关系,开盘价、最高价、最低价、收盘价和调整后的收盘价都是如此,它们都非常相似。成交量与这些价格的关系不大,如棕色方块所示。

异常

数据集中的异常值可以在每个数值股票列的箱线图中发现,例如开盘价、最高价、最低价、收盘价和调整后的收盘价,以及成交量。描述性统计量显示的值远高于或低于平均值,表明这些是异常值。

数据预处理

数据清理

由于没有缺失值,因此我们不会执行任何插补技术,如均值或中位数插补或基于模型的方法,也不会删除具有缺失值的行/列。

删除异常值

stock_cleaned = remove_outliers(stock, columns_to_check, z_score_threshold)

预测分析

对于我们的预测分析,我们开发了一种综合方法,利用四种不同的机器学习模型,每种模型都因其在预测结果方面的独特优势和能力而被选中。这些模型包括:

  • 线性回归:评估自变量和因变量之间线性关系的基础模型。
  • 套索回归:线性回归的扩展,包含 L1 正则化,有助于特征选择和减少过拟合。
  • 随机森林回归:一种集成学习方法,它使用多个决策树,通过平均结果来生成更准确、更稳健的预测。
  • 多层感知器 (MLP):一类前馈人工神经网络,可以对输入和输出之间的复杂非线性关系进行建模。

通过利用这些模型的多种方法,我们旨在提高预测分析的准确性和可靠性。

线性回归

在线性回归代码中,我们使用一个模型来预测基于其他市场因素(“开盘价”、“最高价”、“最低价”、“收盘价”)的股价(“adj_close”)。该模型使用部分数据进行训练,然后进行测试以查看其预测新数据的程度,表明它通常准确,均方误差为 92.29,R 平方约为 96.8%。最后,我们用图查看预测价格和实际价格之间的差异,注意模型在哪些方面没有完美预测。

model = LinearRegression()

第一张图显示了预测的股票价格与实际价格的比较情况,大多数点位于一条线上,表明预测准确性良好。第二张图显示残差,即实际值和预测值之间的差值;点分散在零线周围,在预测中显示一些误差。第三张图是一个直方图,它告诉我们不同残差发生的频率,大多数接近于零,这表明许多预测接近实际值。

套索回归

在套索回归代码中,我们创建了一个模型,该模型不仅可以预测股票价格,还可以通过减少变量的数量来简化模型,如果某些变量对预测没有多大帮助(这是通过“alpha”值完成的,它控制着这种简化的强度)。该模型的准确率略低于基本线性回归,R 平方约为 96.82%。然后,我们使用散点图和直方图根据实际价格和误差(残差)检查预测。

第一张图将实际股票价值与 Lasso 模型预测的股票价值进行了比较,显示了沿线的紧密聚类,表明预测良好,但存在一些价差。第二张残差图显示了预测值和实际值之间的差异,点集中在零线附近,但对于较高的值,则存在一些较大的偏差。第三张图显示了这些差异的分布,主要以零为中心,这表明预测通常接近实际值,尽管有一些明显的例外。

随机森林回归

在随机森林模型代码中,我们使用一组决策树来预测股票价格,与单个决策树相比,这通常会导致更准确和稳定的预测。该模型显示均方误差为 75.59,R 平方误差为 97.4%,表明其预测与实际值非常接近。我们使用绘图直观地将预测值与实际值进行比较,并分析预测误差(残差)。

第一张图显示了随机森林模型的实际股价与预测股价,大多数点都接近黑线,表示预测准确。第二张图显示了残差,即预测值和实际值之间的差异,散布在水平线周围,对于较高的值,存在一组较大的误差。第三张图是残差直方图,显示大多数预测都非常准确,峰值在零附近,但也有一些更大的误差离零更远。

多层感知器 (MLP)

在多层感知器模型代码中,我们使用一种具有两层处理的神经网络来预测股票价格,网络通过其层“学习”复杂的模式。该模型的均方误差约为 97,R 平方得分约为 96.7%,这意味着它非常擅长做出与实际数据相匹配的预测。我们使用几个图来检查预测值与实际值的比较情况,并查看预测误差,即残差。

第一张图显示了神经网络模型对实际和预测股票价值的比较,主要是沿着这条线,这意味着预测是好的。第二个图是一个残差图,它显示了预测中的一些误差,特别是对于较高的值,因为它们偏离了零线。第三张图是一个直方图,在零附近急剧达到峰值,表明大多数预测接近实际值,但也有一些误差离零更远。

使用 ARIMA 模型进行时间序列预测

该代码准备股票市场数据,并使用 ARIMA 模型预测每只股票的未来调整后收盘价。首先,它将 2023 年初之前的历史数据分开以训练模型。然后,它按日期和股票代码对数据进行分组,选择每个月的最大调整收盘价。对于每只股票,它都会根据历史数据拟合 ARIMA 模型,并使用它来预测 2023 年未来 12 个月的收盘价,并在历史数据旁边用图表显示这些预测。

 
  1.  
    model = ARIMA(dataf_max_pivot[symbol], order=(5,1,0))
  2.  
    model_fit = model.fit()
 
 

 

 

 

 

 

 

 

 

 

 

 

 

 

关于分析师

在此对 Xiaoyan Wang 对本文所作的贡献表示诚挚感谢,他在华东师范大学完成了统计学的本科学位,专注统计领域。擅长 R 语言、Python 、数据分析、数理金融 。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/783010.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微信小程序目录结构

一、小程序框架 微信开放平台——小程序框架介绍 小程序的目录结构很清晰,主要由描述整体内容的app和描述具体页面的page组成。一般来说,习惯对小程序的目录结构进行更加清晰的规划,例如将程序种会用到的图片统一用imgs文件夹进行管理、pages文件夹下面就是不同页面对于的子…

【架构师视角系列】风控场景下的配置中心设计思考

风控场景通常需要频繁修改策略进行攻防对抗,一般策略管理平台与策略执行引擎是两个服务,目的是为了解耦,使得业务需求的变更对策略执行引擎执行的影响最小化。通常策略引擎获取策略配置的方法有以下几种,分别是:共享存储、远程调用或配置中心。声明 原创文章,转载请标注。…

[图文直播]使用EasyOCR识别图片上的文字

安装EasyOCRC:\Users\Administrator>pip install easyocr Collecting easyocrDownloading easyocr-1.7.1-py3-none-any.whl.metadata (11 kB) Collecting torch (from easyocr)Downloading torch-2.4.0-cp312-cp312-win_amd64.whl.metadata (27 kB) Collecting torchvision&…

内心与相关构型

内心1、三条角平分线 2、在 \(\odot M\) 上(鸡爪圆上) 3、\(AI\cdot IM=AM\cdot IK=2Rr\) ,即 \(OI^2=R^2-2Rr\)4、\(\odot I\) 与 \(\odot I_A\) 关于点 \(A\) 位似,所以 \(D\) 的对径点 \(D\) 满足 \(ADX\) 共线(两个圆过这两个点的切线平行),同理 \(AD\) 过 \(X\) 的…

【Windows系列】网卡1访问外网,网卡2访问内网!

背景 一、实验环境准备二、查看ipv4服务是否勾选和开启三、修改网卡路由四、修改网卡路由背景 当我们的Windows电脑有双网卡,若这时想要实现一张网卡用于访问外网,另一张网卡用于访问内网的功能。比如通过远程电脑,然后再通过电脑去访问我们家里的NAS存储等。通常这种需求下…

事件驱动系统设计之将事件检索与事件处理解耦

0 前言 part1讨论了集成过程中遇到的挑战以及幂等事件处理的作用。解决集成问题之后,我们需要反思事件检索的问题。我们的经验教训表明,将事件检索与事件处理解耦至关重要。 1 事件处理与请求/响应 API 紧耦合 part1讨论了将请求/响应 API 集成到事件驱动微服务中时,由于基于…

豆瓣影评数据抓取

豆瓣影评数据抓取 创建时间:2024-08-12 抓取豆瓣影评相关数据的代码,包括封面、标题、评论内容以及影评详情页的数据。 一、完整代码https://movie.douban.com/review/best/ 抓取封面 标题 评论內容 抓取完整的评论内容 也就是点击展开后的完整的 抓取当前影评的详情页的数…

设计规划专业 All In One

设计规划专业 All In One 设计规划 城市规划与设计设计规划专业 All In One 设计规划城市规划与设计demos西交利物浦大学当今我们生活在一个不断变化的全球环境中,中国以及世界城市发展面临着诸多挑战。城市规划(城市设计方向)硕士课程将培养学生将设计原理和技术运用到解决…

基于java实现MYDB数据库

整体结构 --MYDB分为后端和前端,前后端通过socket进行交互 前端(客户端)用于读取用户输入,并发送到后端执行,输出返回结果 MYDB后端需要解析SQL --MYDB的后端分为5个模块 分别是: 1、Transaction Manager事务管理器 2、Data Manager数据管理器 3、Version Manager版本管理器…

颜色空间的互相转换

前言 在上一篇中,我们介绍了常见颜色空间的一些定义及表示,在这一章中,我们将大致了解各个颜色空间的互相转换 颜色转换算法 由于有些颜色空间可能并不能直接转换,或着过于繁杂,本文主要介绍由RGB向其它空间的转换,涉及到的代码也采用Ts进行演示讲解 在文章的最后面,会给…

TGI 多-LoRA: 部署一次,搞定 30 个模型的推理服务

你是否已厌倦管理多个 AI 模型所带来的复杂性和高成本? 那么, 如果你可以部署一次就搞定 30 个模型推理服务会如何? 在当今的 ML 世界中,哪些希望充分发挥其数据的价值的组织可能最终会进入一个“微调的世界”。在这个世界,各个组织会构建大量模型,其中每个模型都针对特定…

计算机常用软件和语言

关于CSP-J初赛的学习笔记3.计算机常用软件和语言 3.1 计算机软件系统 计算机软件通常分为系统软件和应用软件两大类;系统软件 即支持应用软件开发和运行的一类计算机软件。一般包括操作系统,语言处理程序,数据库系统,网络管理系统等应用软件 即为特定领域开发,并为特定目的…