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