【问题标题】:How to Use Lagged Time-Series Variables in a Python Pandas Regression Model?如何在 Python Pandas 回归模型中使用滞后时间序列变量?
【发布时间】:2017-02-11 22:42:27
【问题描述】:

我正在创建时间序列计量经济学回归模型。数据存储在 Pandas 数据框中。

如何使用 Python 进行滞后时间序列计量经济学分析?我过去使用过 Eviews(它是一个独立的计量经济学程序,即不是 Python 包)。要使用 Eviews 估计 OLS 方程,您可以编写如下内容:

equation eq1.ls log(usales) c log(usales(-1)) log(price(-1)) tv_spend radio_spend

注意滞后相关和滞后价格条款。正是这些滞后变量似乎难以使用 Python 处理,例如使用 scikit 或 statmodels(除非我错过了什么)。

创建模型后,我想执行测试并使用该模型进行预测。

我对 ARIMA、指数平滑或 Holt Winters 时间序列预测不感兴趣 - 我主要对时间序列 OLS 感兴趣。

【问题讨论】:

    标签: python pandas time-series regression


    【解决方案1】:

    pandas 允许您在不移动索引的情况下移动数据

    df.shift(-1)
    

    将创建 1 个索引滞后行为

    df.shift(1)
    

    将创建 1 个索引的前向滞后

    因此,如果您有每日时间序列,则可以使用 df.shift(1) 在您的价格值中创建 1 天的延迟

    df['lagprice'] = df['price'].shift(1)
    

    之后,如果你想做 OLS,你可以在这里查看 scipy 模块:

    http://docs.scipy.org/doc/scipy-0.14.0/reference/generated/scipy.stats.linregress.html

    【讨论】:

    • 谢谢 - 这看起来不错。在估计模型之前,我是否需要创建所有滞后序列?或者有没有办法创建一个模型,在需要时计算滞后值?
    • 普通最小二乘回归通常不需要任何滞后。您应该刚刚过去 X 和 Y 值来估计您的 Beta 以最小化错误。那么您可以在给定新 X 值的情况下估计任何 Y。如果您需要滞后模型。我们通常在 Xt-1 与 Xt 相关的“自回归”模型中引入滞后值,但这将是一个不同的模型
    • 但是假设您想估计 Xt-1 和 X 之间的 beta,您可以使用 scipy 并将 df['price'].shift(1) 作为 X 和 df['price']作为 Y,这将校准具有 Xt = B*Xt-1 的 beta
    • 谢谢,这很有帮助。顺便说一句,在许多计量经济时间序列模型中,使用了滞后变量(以及滞后因变量)。例如,价格项可能会滞后。
    • 你救了我。真的。上帝祝福你。所有的祝福与你同在。 ;)
    猜你喜欢
    • 2020-02-05
    • 2021-10-04
    • 2013-08-20
    • 2022-01-07
    • 2012-08-25
    • 1970-01-01
    • 2021-05-29
    • 2018-11-22
    • 2010-12-30
    相关资源
    最近更新 更多