如何在 Python Pandas 回归模型中使用滞后时间序列变量?
How to Use Lagged Time-Series Variables in a Python Pandas Regression Model?
我正在创建时间序列计量经济学回归模型。数据存储在 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 感兴趣。
pandas 允许您在不移动索引的情况下移动数据,例如 has
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
我正在创建时间序列计量经济学回归模型。数据存储在 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 感兴趣。
pandas 允许您在不移动索引的情况下移动数据,例如 has
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