时间序列线性性检验

2 投票
2 回答
2910 浏览
提问于 2025-04-18 12:28

在Python中,有没有什么测试可以用来判断一个时间序列是否是线性的?我想知道我应该使用卡尔曼滤波器的哪个模块来修正我的预测数据。

2 个回答

0

你可以看看 statsmodels.tsa,试试 ARMA(自回归移动平均)模型。特别是卡尔曼滤波的方法可以在 这里 找到。

3

你需要做一个“线性回归”。NumpySciPy 是一些可以帮助你进行数学计算的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意味着你的数据完全是线性的。

撰写回答