如何改善滞后功能?
I have the following table:
time | comsales | indsales |
---|---|---|
1 | 20.96 | 127.3 |
2 | 21.4 | 130 |
3 | 21.96 | 132.7 |
4 | 21.52 | 129.4 |
5 | 22.39 | 135 |
6 | 22.76 | 137.1 |
7 | 23.48 | 141.2 |
8 | 23.66 | 142.8 |
9 | 24.1 | 145.5 |
10 | 24.01 | 145.3 |
11 | 24.54 | 148.3 |
12 | 24.3 | 146.4 |
13 | 25 | 150.2 |
14 | 25.64 | 153.1 |
15 | 26.36 | 157.3 |
160.7 | 16.98 | 17.52 |
18 | 164.2 | 164.2 |
in | 27.78 | 165.6 165.6 |
19 | 28.24 | 168.7 |
20 | 28.78 | 171.7 |
我在Python中实现滞后功能,并试图在下面使用以下代码
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import statsmodels.api as sm
dataset = pd.read_csv('Data/blaisdellcomp.csv', index_col=0)
y = dataset['comsales']
x = dataset['indsales']
X = sm.add_constant(x)
model = sm.OLS(y, X).fit()
print(model.summary())
residuals = model.resid
residuals = residuals.reset_index(drop=True)
lagged_residuals = residuals.rolling(1).sum()
lagged_residuals.drop(lagged_residuals.tail(1).index,inplace=True)
lagged_residuals.loc[-1] = lagged_residuals[0] # adding a row
lagged_residuals.index = lagged_residuals.index + 1 # shifting index
lagged_residuals.sort_index(inplace=True)
lagged_residuals = lagged_residuals.reset_index(drop=True)
来实现以下代码,以便在我使用lag lag py the Rage lag 实施滞后。有没有更好的方法来实施残差?
I have the following table:
time | comsales | indsales |
---|---|---|
1 | 20.96 | 127.3 |
2 | 21.4 | 130 |
3 | 21.96 | 132.7 |
4 | 21.52 | 129.4 |
5 | 22.39 | 135 |
6 | 22.76 | 137.1 |
7 | 23.48 | 141.2 |
8 | 23.66 | 142.8 |
9 | 24.1 | 145.5 |
10 | 24.01 | 145.3 |
11 | 24.54 | 148.3 |
12 | 24.3 | 146.4 |
13 | 25 | 150.2 |
14 | 25.64 | 153.1 |
15 | 26.36 | 157.3 |
16 | 26.98 | 160.7 |
17 | 27.52 | 164.2 |
18 | 27.78 | 165.6 |
19 | 28.24 | 168.7 |
20 | 28.78 | 171.7 |
I am trying to implement a LAG function in python with the following code below
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import statsmodels.api as sm
dataset = pd.read_csv('Data/blaisdellcomp.csv', index_col=0)
y = dataset['comsales']
x = dataset['indsales']
X = sm.add_constant(x)
model = sm.OLS(y, X).fit()
print(model.summary())
residuals = model.resid
residuals = residuals.reset_index(drop=True)
lagged_residuals = residuals.rolling(1).sum()
lagged_residuals.drop(lagged_residuals.tail(1).index,inplace=True)
lagged_residuals.loc[-1] = lagged_residuals[0] # adding a row
lagged_residuals.index = lagged_residuals.index + 1 # shifting index
lagged_residuals.sort_index(inplace=True)
lagged_residuals = lagged_residuals.reset_index(drop=True)
To be able to make a lag in the residuals I use a lot of code to implement the lag. Is there a better way to implement the lag on the residuals?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
看起来您正在寻找 pandas
shift
方法:lagged_residuals = ristuals.shift(1)
It looks like you're looking for the Pandas
shift
method:lagged_residuals = residuals.shift(1)