statsmodels 如何计算 AR 模型中的样本内预测?
How does statsmodels calculate in-sample predictions in AR models?
我对时间序列建模和 statsmodels 非常陌生,并试图了解 statsmodels 中的 AR 模型。假设我有一个包含 1000 个样本的数据记录 y
,并且我在 y
上拟合了一个 AR (1) 模型。然后我从该模型生成样本内预测为 y_pred
。我这样做是因为
from statsmodels.tsa.ar_model import AutoReg
model = AutoReg(y,1).fit()
y_pred = model.predict()
我使用model.params
获取模型的参数。
我想知道,在估计模型参数后,statsmodels如何计算样本内预测?对于前。 y_pred[10]
是如何计算的?
对不起,如果问题太基础了,谢谢你的帮助。
根据 Wikipedia:
The autoregressive model specifies that the output variable depends linearly on its own previous values and on a stochastic term (an imperfectly predictable term).
在您的模型示例中,您有一个预测变量 - y
的滞后值。在这个简单的例子中,.predict()
方法将每个滞后值乘以该预测变量的估计线性斜率参数值,并加上该直线截距的估计值。因此 y_pred[10]
将等于拟合斜率参数与 y[9]
的乘积,加上截距估计值。
这是一个例子:
from statsmodels.tsa.ar_model import AutoReg
y = [1, 2, 3, 6, 2, 9, 1]
model = AutoReg(y,1).fit()
model.params
# array([ 5.72953737, -0.49466192])
params
数组中的第一个值是估计的截距参数,第二个值是估计的线性(斜率)参数。
y_pred = model.predict()
y_pred
# array([5.23487544, 4.74021352, 4.2455516 , 2.76156584, 4.74021352, 1.27758007])
y_pred
数组中的第一个值是 y
数组中第二个值的预测值。计算方式为:
-0.49466192 * 1 + 5.72953737 = 5.23487544
y_pred
数组中的第二个值计算为:
-0.49466192 * 2 + 5.72953737 = 4.74021353
等等...
我对时间序列建模和 statsmodels 非常陌生,并试图了解 statsmodels 中的 AR 模型。假设我有一个包含 1000 个样本的数据记录 y
,并且我在 y
上拟合了一个 AR (1) 模型。然后我从该模型生成样本内预测为 y_pred
。我这样做是因为
from statsmodels.tsa.ar_model import AutoReg
model = AutoReg(y,1).fit()
y_pred = model.predict()
我使用model.params
获取模型的参数。
我想知道,在估计模型参数后,statsmodels如何计算样本内预测?对于前。 y_pred[10]
是如何计算的?
对不起,如果问题太基础了,谢谢你的帮助。
根据 Wikipedia:
The autoregressive model specifies that the output variable depends linearly on its own previous values and on a stochastic term (an imperfectly predictable term).
在您的模型示例中,您有一个预测变量 - y
的滞后值。在这个简单的例子中,.predict()
方法将每个滞后值乘以该预测变量的估计线性斜率参数值,并加上该直线截距的估计值。因此 y_pred[10]
将等于拟合斜率参数与 y[9]
的乘积,加上截距估计值。
这是一个例子:
from statsmodels.tsa.ar_model import AutoReg
y = [1, 2, 3, 6, 2, 9, 1]
model = AutoReg(y,1).fit()
model.params
# array([ 5.72953737, -0.49466192])
params
数组中的第一个值是估计的截距参数,第二个值是估计的线性(斜率)参数。
y_pred = model.predict()
y_pred
# array([5.23487544, 4.74021352, 4.2455516 , 2.76156584, 4.74021352, 1.27758007])
y_pred
数组中的第一个值是 y
数组中第二个值的预测值。计算方式为:
-0.49466192 * 1 + 5.72953737 = 5.23487544
y_pred
数组中的第二个值计算为:
-0.49466192 * 2 + 5.72953737 = 4.74021353
等等...