我正在分析金融数据,想找出一条线的拐点。我知道我可以用导数做到这一点,但首先我需要一个方程。有没有一种方法可以根据一系列数字生成一个方程。我需要以编程的方式来做这件事。
发布于 2010-01-13 04:24:33
样条线插值可能比多项式插值更有用:如果拟合多项式,它必然会超出数据范围到+/-无穷大。
你还需要一种允许稍微松散拟合的方法:金融数据通常有一点噪声,如果你试图精确地拟合它,这可能会导致非常奇怪的曲线。
发布于 2010-01-13 04:23:08
有将一组现有数据点转换为多项式的既定过程;这称为多项式插值。维基百科上的这篇文章:http://en.wikipedia.org/wiki/Polynomial_interpolation从数学上解释了这一点。你也许可以很容易地在谷歌上搜索算法。
给定足够的点,你的多项式可以很好地跟踪原始的未知函数,因此多项式的拐点应该大致与数据的峰谷重合。
另一方面,我们都知道金融数据背后并没有真正的功能。因此,如果我是你,我会沿着这些点扫描,找出两边值较小的每个点,并将其声明为高点;反之亦然。-将这些数据强制拟合到一个虚构的函数中并不会让它变得更有用。
更新: Tom Smith建议,对于这种事情,样条插值比多项式插值更可取,维基百科证实了他的观点。或者更确切地说,它看好他的答案。
发布于 2010-01-13 04:24:18
你在想的是分析微积分...当有离散的数据(例如点)时,你必须用数字来做。一条直线通常没有拐点,所以我猜你在想一条曲线。你可以通过点插入某种形式的导数,然后计算一阶导数(也是数值上的,但对于更多的点),或者你可以从你拥有的点计算一阶导数(这将更好地取决于你实际有多少点)。
但实际上,这只是理论,因为我们不知道数据的性质,也不知道语言或任何东西。
有关这个主题的更多信息,请搜索:维基上的numerical analysis,然后从那里开始。
https://stackoverflow.com/questions/2052057
复制相似问题