【发布时间】:2022-06-23 12:42:21
【问题描述】:
在尝试为我的数据回归结果实现滚动窗口时,我遇到了索引错误。
例如,我试图从第 1-52 周、第 2-53 周、第 3-54 周、第 4-55 周...等运行滚动回归。
这是我到目前为止的代码。
对于data=rolling_window.iloc[y:x],如何在循环中将 y 和 x 都增加 +1 直到数据结束?即 [2:53], [3:54]... 我尝试使用两个 x,y for 循环,但它不起作用。
这是错误
index 52 is out of bounds for axis 0 with size 14
这是代码。
df = pd.read_excel(\"dataset\\Special_Proj.xlsx\")
df[\'Date\'] = pd.to_datetime(df[\'Date\'], format=\'%m/%d/%y\')
def rolling_regression_stats():
tickers = df[[\'FDX\', \'BRK\', \'MSFT\', \'NVDA\', \'INTC\', \'AMD\', \'JPM\', \'T\', \'AAPL\', \'AMZN\', \'GS\']]
rolling_window = df
for y in range(1, 1161):
for x in range(52, 1161):
for t in tickers:
model = smf.ols(f\'{t} ~ SP50\', data=rolling_window.iloc[y,x]).fit()
coef_and_intercept = model.params.set_axis([f\'{t} Alpha\', f\'{t} Beta\']).to_string()
std_error = model.bse.set_axis([f\'{t} Alpha STD Err \', f\'{t} Beta STD Err\']).to_string()
print(coef_and_intercept)
print(std_error, \'\\n\\n\')
rolling_regression_stats()
这是没有 x, y for 循环的代码输出。这只是数据框的回归。
FDX Alpha 10.285265
FDX Beta 2.332717
FDX Alpha STD Err 4.826221
FDX Beta STD Err 0.035187
BRK Alpha -58.007537
BRK Beta 2.916011
BRK Alpha STD Err 3.007438
BRK Beta STD Err 0.021927
MSFT Alpha -113.047496
MSFT Beta 1.794111
MSFT Alpha STD Err 2.559493
MSFT Beta STD Err 0.018661
这是 df 的外观以供参考。
Date SP50 FDX BRK MSFT NVDA INTC AMD JPM T AAPL AMZN GS
0 1999-12-31 100.000000 100.000000 100.000000 100.000000 100.000000 100.000000 100.000000 100.000000 100.000000 100.000000 100.000000 100.000000 NaN
1 2000-01-07 98.109239 116.030534 100.713012 95.449679 89.214380 99.620349 112.311015 93.644406 90.512812 96.778115 91.379310 87.657598 NaN
2 2000-01-14 99.720946 113.740458 93.048128 96.145610 93.608522 125.208808 139.524838 95.092516 86.025639 97.689969 84.400657 90.909091 NaN
3 2000-01-21 98.101753 101.984733 94.295900 88.865096 95.339553 118.982536 131.317495 93.885758 88.205127 108.267481 81.527094 90.975448 NaN
4 2000-01-28 92.575123 94.198473 93.226381 84.154176 79.627162 114.198937 121.814255 98.712789 80.512815 98.844983 81.034485 92.368945 NaN
标签: python pandas dataframe statistics statsmodels