我有一个包含 A、B、C 列......和输出 y 的数据集。我想执行 OLS 回归,输出有滞后,例如:
y_t = a*A_t + b * B_t + c * C_t + a' * A_{t-1} + \dots + k * y_{t-1}
我知道如何使用 OpenBugs 等软件来完成此操作,但我想使用 Python、Julia 或 R 来完成此操作。这可能吗?
这会导致 pandas 移动出现滞后...可能就是您想要的?!
import pandas as pd
import statsmodels.api as sm
df = pd.DataFrame({
'A': range(1, 11),
'B': range(11, 21),
'C': range(21, 31),
'y': range(31, 41)
})
df['A_lagged'] = df['A'].shift(1)
df['B_lagged'] = df['B'].shift(1)
df['C_lagged'] = df['C'].shift(1)
df['y_lagged'] = df['y'].shift(1)
df = df.dropna()
X = df[['A', 'B', 'C', 'A_lagged', 'B_lagged', 'C_lagged', 'y_lagged']]
X = sm.add_constant(X)
y = df['y']
model = sm.OLS(y, X).fit()
print(model.summary())