Python OLS回归存储问题:零大小数组到无标识的最大缩减操作

Python OLS回归存储问题:零大小数组到无标识的最大缩减操作,python,pandas,regression,Python,Pandas,Regression,我对python中的for循环有一个问题。我试图在一个横截面数据中迭代OLS命令,在这个横截面数据中,我在同一时期内观察到了多个id。我想对每年每个月的每个id进行回归 当我尝试单独运行命令时,它们可以工作,但在循环中,输出总是相同的:零大小数组到没有标识的最大缩减操作。我不知道for循环中的问题在哪里。问题出在最后8行(我上传了另一行只是为了让他们明白)。 提前感谢您的支持 import pandas as pd\\ import statsmodels.api as sm import st

我对python中的for循环有一个问题。我试图在一个横截面数据中迭代OLS命令,在这个横截面数据中,我在同一时期内观察到了多个id。我想对每年每个月的每个id进行回归

当我尝试单独运行命令时,它们可以工作,但在循环中,输出总是相同的:零大小数组到没有标识的最大缩减操作。我不知道for循环中的问题在哪里。问题出在最后8行(我上传了另一行只是为了让他们明白)。 提前感谢您的支持

import pandas as pd\\
import statsmodels.api as sm
import statsmodels.formula.api as smf
from datetime import datetime as dt
from sklearn import linear_model as lm
import numpy as np
data=pd.DataFrame()
data=pd.read_excel('gggg.xlsx', sheet_name='Foglio1')
data['Data']=pd.to_datetime(data['Data'])
data["year"]=data['Data'].dt.year
data["month"]=data['Data'].dt.month

sl=pd.wide_to_long(data, ['R','RM','V','MktCap'], i="Data", j="group_id")


sl["month1"]=sl["month"].shift(-1)
sl['monthindicator'] = np.where(sl['month']!=sl['month1'], 1, 0)
sl["year1"]=sl["year"].shift(-1)
sl['yearindicator'] = np.where(sl['year']!=sl['year1'], 1, 0)


sl['AdjVol']=sl['V']/sl['MktCap']
sl['id']=sl.index.get_level_values('group_id')

for i in range(1,11): 
    for y in range(2012,2020):
        for m in range(1,13):
            Y=sl.loc[(sl['id']==i) & (sl["year"]==y) & (sl["month"]==m), "R"]
            X=sl.loc[(sl['id']==i) & (sl["year"]==y) & (sl["month"]==m), "RM"]
            result = sm.OLS(Y, sm.add_constant(X))
            result=result.fit()
            sl["prediction"] = result.predict()  ```