时间序列线性性检验
在Python中,有没有什么测试可以用来判断一个时间序列是否是线性的?我想知道我应该使用卡尔曼滤波器的哪个模块来修正我的预测数据。
2 个回答
0
你可以看看 statsmodels.tsa,试试 ARMA(自回归移动平均)模型。特别是卡尔曼滤波的方法可以在 这里 找到。
3
你需要做一个“线性回归”。Numpy 和 SciPy 是一些可以帮助你进行数学计算的Python库。
这里有一个使用Numpy和SciPy进行线性回归的示例:
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值
越接近1,说明你的数据和计算出的那条线越吻合。因为线性回归会生成一条线,而r值
告诉你数据与这条线的契合程度,r值
为1意味着你的数据完全是线性的。