基于自动分段最小二乘法对股票的多项式曲线拟合
基于自动分段最小二乘法对股票的多项式曲线拟合
摘 要 针对传统的分段最小二乘法确定分段步长时经验成分较多的不足,提出一种通过比较拟合优度,自动确定相对最优的步长。通过实际数据的验证,验证了此方法的拟合效果。
关键词 分段拟合 多项式曲线 最小二乘法
引言
在对股票趋势的预测中,常常需要从一组带噪声的股票历史数据(xi,yi);i=1,2,…,n中找出自变量x和因变量y之间隐含的函数关系,其中利用最小二乘法对股票历史数据进行多项式曲线拟合是一种比较简单的数据拟合方法。当数据点较多时,多项式的阶数太低,拟合效果不太理想。而要提高拟合效果就需要提高曲线阶数,但多项式阶度太高又会带来计算上的复杂以及其他方面的不利[1]。
为解决上述问题,可采用分段曲线拟合,在每段区间上进行局部最小二乘拟合。而分段点的选择对拟合效果至关重要,文献[2]提出五个数据点拟合一条三次曲线(曲线边界点取一个数据点),但这种发放分段区间太密,过于依赖主观经验。文献[3]中提出求得起点和终点的坐标以及下一点和起点之间的连线与所拟合出的直线的夹角ε,根据ε是否大于设定的阈值来决定是否设该点为分段点。但这种方法只适合数据变化比较慢的情况。本文针对股票数据量大、变化快的特点,提出了根据拟合优度来自动识别分段点的方法。下面根据如表1中的数据,对该方法进行说明。
表1 中国平安三月份涨跌幅度
时间 |
涨跌幅度 |
时间 |
涨跌幅度 |
时间 |
涨跌幅度 |
|||
2018/3/1 |
1.73% |
2018/3/13 |
-2.39% |
2018/3/23 |
-3.54% |
|||
2018/3/2 |
-1.81% |
2018/3/14 |
-0.86% |
2018/3/26 |
-2.87% |
|||
2018/3/5 |
0.3% |
2018/3/15 |
2.43% |
2018/3/27 |
-0.18% |
|||
2018/3/6 |
2.12% |
2018/3/16 |
0.03% |
2018/3/28 |
-4.05% |
|||
2018/3/7 |
-0.78% |
2018/3/19 |
4.68% |
2018/3/29 |
1.51% |
|||
2018/3/8 |
2.56% |
2018/3/20 |
0.38% |
2018/3/30 |
-1.63% |
|||
2018/3/9 |
0.5% |
2018/3/21 |
-0.36% |
|||||
2018/3/12 |
0.32% |
2018/3/22 |
-1.27% |
1 一般的最小二乘法
一般最小二乘法对多项式曲线进行拟合时,通过求得所有数据的最小残差平方和来确定多项式的参数。
给定函数y=f(x)在点x1…xn的函数值y1…yn,求多项式。使得
则
将方程整理,得到
求解方程得到a0 ,a1,…,am,从而得到最小二乘拟合多项式y(x)=a0+a1x+…+amxm
本文通过以中国平安三月份股票数据为例,利用一般的最小二乘法对股票数据进行曲线拟合(如图1)。发现虽然只能大致拟合出曲线的趋势,对股票数据的变化拐点无法进行预测。
图1 普通最小二乘法曲线拟合
2 固定步长的分段最小二乘法
针对普通最小二乘法只能拟合股票数据的趋势,对股票拐点不敏感的问题,选用了分段最小二乘法,分段最小二乘法能通过减少数据集,简化了数学模型,减低了多项式项数,从而减少了运算量[4]。具体方法是:
1) 假定有n条股票数据,步长为i,将股票数据按确定的步长i分为e=n/i+1组。
2)按一般最小二乘法的方法求得每组多项式曲线的系数,最终得到最后的拟合曲线。
本文中分别选定了步长为6和步长为8(如图2、3),可以看出,步长越小,与历史数据曲线逼近度越高,当然这也存在一些问题,当步长选择过小时,虽然拟合曲线与历史数据曲线很相似,但是却失去了预测股票的初心。而步长选择过大时对曲线的拟合效果就比较差,所以当选用固定步长的分段最小二乘法时,非常依靠选定步长人的经验,在对非常多的股票进行曲线进行拟合时效率将会特别低。
图2步长为6的最小二乘法曲线拟合
图3 步长为8的最小二乘法曲线拟合
3 自动分段最小二乘法
先给定一个段长的范围(本实验中段长d为4-8),评价拟合效果的拟合优度[5]为r2,然后将所提供的股票数据依次取段长d个数据,对着几组数据通过一般最小二乘法进行多项式曲线拟合,计算拟合优度 (y为真实值,yc为估计值,为平均值),取max(r2)对应的一组数据为此次拟合的样本值,这次得到的模型就是第一段曲线的模型。将从这段曲线的最后一点开始重复进行前面所需的拟合和判断,直到所有点拟合完毕,得到所有分段曲线的模型。以上步骤总结出算法流程如图4所示。
图4 分段拟合流程图
根据自动分段最小二乘法对股票数据拟合曲线如图5所示,可以看出相比一般的最小二乘法和固定段长的最小二乘法拟合精度更高,能更好的拟合股票历史数据。
图5 自动分段曲线拟合
结语
由上文实验结果可知,自动分段最小二乘法相比一般最小二乘法和固定步长的最小二乘法相比,拟合效果更好,对批量数据拟合时效率更高。但是也存在很多缺点,考虑对股票的影响因素少,更多的是拟合曲线,对股票未来走势预测的功能不好。
参考文献
[1] 刘霞,王运锋.基于最小二乘法的自动分段多项式曲线拟合方法研究[J].科学技术与工程,2014,14(03):55-58.
[2] 蔡山,张浩,陈洪辉,沙基昌.基于最小二乘法的分段三次曲线拟合方法研究[J].科学技术与工程,2007(03):352-355.
[3] 田垅,刘宗田.最小二乘法分段直线拟合[J].计算机科学,2012,39(S1):482-484.
[4] 刘晓莉,陈春梅.基于最小二乘原理的分段曲线拟合法[J].伊犁教育学院学报,2004(03):132-134.
[5] 王重,刘黎明.拟合优度检验统计量的设定方法[J].统计与决策,2010(05):154-156.
基于自动分段最小二乘法对股票的多项式曲线拟合相关推荐
- 基于智能负荷开关的V-I-T型自动分段器_残压闭锁
基于智能负荷开关的V-I-T型自动分段器 http://www.chinapower.com.cn/article/1089/art1089200.asp http://www.chinapower. ...
- 最小二乘法多项式曲线拟合数学原理及其C++实现
目录 0 前言 1 最小二乘法概述 2 最小二乘法求解多项式曲线系数向量的数学推导 2.1 代数法 2.2 矩阵法 3 代码实现 4 总结 参考 0 前言 自动驾驶开发中经常涉及到多项式曲线拟合,本文 ...
- c++ 三次多项式拟合_最小二乘法多项式曲线拟合数学原理及其C++实现
本文使用 Zhihu On VSCode 创作并发布 0 前言 自动驾驶开发中经常涉及到多项式曲线拟合,本文详细描述了使用最小二乘法进行多项式曲线拟合的数学原理,通过样本集构造范德蒙德矩阵,将一元 N ...
- 基于自动驾驶车辆的NVIDIA-TensorRT推理实时优化
基于自动驾驶车辆的NVIDIA-TensorRT推理实时优化 Optimizing NVIDIA TensorRT Conversion for Real-time Inference on Auto ...
- 最小二乘法多项式曲线拟合原理与实现(错误地方已经修改底层补充自己写的java实现)
目录(?) [-] 概念 原理 运行前提 代码 运行效果 概念 最小二乘法多项式曲线拟合,根据给定的m个点,并不要求这条曲线精确地经过这些点,而是曲线y=f(x)的近似曲线y= φ(x). 原理 [原 ...
- 基于自动驾驶车辆的激光雷达与摄像头之间的在线标定算法
原文首发于微信公众号「3D视觉工坊」--基于自动驾驶车辆的激光雷达与摄像头之间的在线标定算法 本文英文名为<Automatic Online Calibration of Cameras and ...
- 最小二乘法多项式曲线拟合原理与实现--转
原文地址:http://blog.csdn.net/jairuschan/article/details/7517773/ 概念 最小二乘法多项式曲线拟合,根据给定的m个点,并不要求这条曲线精确地经过 ...
- 多项式曲线拟合最小二乘法
对给定的试验数据点(xi,yi)(i=1,2,--,n),可以构造m次多项式 数据拟合的最简单的做法就是使误差p(xi)-yi的平方和最小 当前任务就是求一个P(x)使得 从几何意义上讲就是寻求给与定 ...
- matlab 最小二乘法拟合_Scripy实现最小二乘法与股票K线回归
python的Scripy提供了丰富的数学工具,python的科学计算包scipy的里面提供了一个函数,可以求出任意的想要拟合的函数的参数.那就是scipy.optimize包里面的leastsq函数 ...
最新文章
- CUDA C++编程手册(总论)
- java webpack web项目_spring + spring mvc + mybatis + react + reflux + webpack Web工程例子
- CIO黄嘉粤谈互联网金融与CIO发展
- svn 面板缺少可选项_TortoiseSVN的设置
- Numpy 生成随机数和乱序
- net以execl做数据库_[原创]Net实现Excel导入导出到数据库(附源码)
- python初学者代码示例_python基础示例
- JavaScript 监听手机端的touch滑动事件(滑动手势)
- Spring07----Bean的作用域
- 2021年中国丁香香烟市场趋势报告、技术动态创新及2027年市场预测
- Softreference | WeakReference
- 携号转网不会有多大影响
- 开关三极管的导通和截止条件
- 机器学习算法工程师--实习面经
- DevOps管道中的测试
- 如何实现用手机远程控制电脑?
- Java课程设计报告——学生成绩管理系统
- 软考倒计时26天,最后冲刺阶段
- pypy+uwsgi+dango+nginx 简单部署
- ABAQUS中橡胶大变形问题的解决方案
热门文章
- excel文件打不开怎么办_从零开始修电脑__无法打开office文件的解决方法
- K8S 部署 coredns
- chromeF12 谷歌开发者工具详解(转载)
- 服务器进tp5项目报nginx404错误,TP5框架在nginx环境下路由报404错误解决方法 亲测可用...
- Python的turtle库实现简单的星空
- 环信服务端集成(PHP)
- rem + vw 移动端适配
- echarts自定义名称通过当前时间下载图片
- MapReduce之基于符号数据的朴素贝叶斯分类(一)
- 【英语】40句英文句子,学会了会让你的阅读事半功倍