时间序列线性度测试

时间:2014-07-08 09:18:40

标签: python time-series

python中是否有测试可以知道时间序列是否是线性的? 我想知道我必须使用哪个kalman过滤器模块来纠正我的预测数据。

2 个答案:

答案 0 :(得分:2)

你想做一个“线性回归”。 NumpySciPy是可以提供帮助的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