python中是否有测试可以知道时间序列是否是线性的? 我想知道我必须使用哪个kalman过滤器模块来纠正我的预测数据。
答案 0 :(得分:2)
你想做一个“线性回归”。 Numpy和SciPy是可以提供帮助的Python数学库。
这是使用Numpy和SciPy进行线性回归的example:
from numpy import arange
from pylab import plot,show
from scipy import stats
xi = arange(0,9)
# linearly generated sequence
y = [19, 20, 20.5, 21.5, 22, 23, 23, 25.5, 24]
slope, intercept, r_value, p_value, std_err = stats.linregress(xi,y)
print 'r-value', r_value
print 'p-value', p_value
print 'standard deviation', std_err
line = slope*xi + intercept
plot(xi,line,'r-',xi,y,'o')
show()
您的r-value
越靠近1,您的数据就越接近计算线。由于线性回归产生一条线,并且r-value
告诉您数据如何适合该线,因此r-value
为1意味着您的系列完全是线性的。
答案 1 :(得分:0)
您可能需要查看statsmodels.tsa并尝试ARMA(自动回归移动平均线)模型。具体而言,可以找到卡尔曼滤波器方法here。