相关性
多项式
poly1d是NumPy中的一个类,用于表示一元多次多项式,即一个多项式只有一个自变量。poly1d的主要作用是方便用户对多项式进行各种运算,如加、减、乘、除、取幂、求导数和积分等。
在使用poly1d时,用户可以将一组多项式系数作为参数传入,例如:
1 | import numpy as np |
创建完多项式后,用户可以对多项式进行各种运算。例如:
1 | # 求多项式的值 |
除了使用系数来创建多项式之外,还可以使用多项式的根来创建多项式。例如:
1 | # 创建一个一元三次多项式 p(x) = (x-1)(x-2)(x-3) = x^3 - 6x^2 + 11x - 6 |
这里的多项式系数是通过多项式的根来计算得到的。
求导的一个演示
这里我们将poly1d转为了五元四次方程(多项式)
x ^ 4 + x^3 * 2+ x^2 * 3 + x * 4 + 5
其中每循环一次就求导并绘制
1 | p = poly1d([1,2,3,4,5]) |
多项式拟合
多项式拟合本质上是numpy.polyfit是一个函数,用于拟合一系列数据点的多项式系数。它使用最小二乘法来拟合数据,将数据拟合为给定次数的多项式形式。
具体来说,numpy.polyfit(x, y, deg, rcond=None, full=False, cov=False)函数接受以下参数:
- x:一维数组,表示数据点的x坐标。
- y:一维数组,表示数据点的y坐标。
- deg:整数,表示拟合多项式的次数。
- rcond:可选参数,浮点数。控制奇异值在拟合过程中的影响。
- full:可选参数,布尔值。如果为True,则返回完整输出,包括残差、排名、奇异值以及拟合系数的协方差矩阵。
- cov:可选参数,布尔值。如果为True,则返回拟合系数的协方差矩阵。
该函数返回一个一维数组,表示拟合多项式的系数。可以使用numpy.polyval函数将该系数用于计算多项式的值。
1 | from numpy import * |
加载了京东的股价前100个点。
1 | a=linspace(0,100,100) |
这里的10是拟合次数,拟合次数多了后,蓝色曲线就会过拟合。这里将其调整为50后,甚至会报出警告
相关系数
这里我选了同济科技600846,上海临港600848某段时间内的开票价格。
1 | import matplotlib.pyplot as plt |
1 | numpy.corrcoef(p1,p2) |
0.118
改为建设银行601939,工商银行601398后
相关系数为 0.93021558,非常立竿见影。
汉宁窗口
1 | w =numpy.hanning(N) |
通常我们应该在使用这种方法降噪后,后再尝试拟合。