Как быстро выполнить регрессию качения

#python #regression #nested-loops #beta

Вопрос:

Я выполняю скользящую регрессию доходности акций за последние 4 года с использованием 26 факторов. И я хочу рассчитать бета-версию, связанную с каждым фактором для каждого возврата. Итак, у меня есть два фрейма данных, один с доходностью за 2016-2020 годы и факторами. Я использовал циклы for для извлечения каждого значения из фрейма данных, а затем выполнял скользящую регрессию, чтобы найти бета-значения, но для вычисления требуется слишком много времени. Я хочу сделать это быстрее. Есть ли какая-либо альтернатива использованию для циклов и ускорению его выполнения?

Это мой код прямо здесь:

 N = len(XY) #XY is merged dataset of sec_rets and fac_rets   regression = np.zeros((len(fac_rets.index),2))   for s in range(len(sec_rets.columns)):    for i in range(N):  XY.iloc[i:i 252]  Y = XY.iloc[i:i 252, s]  X = XY.iloc[i:i 252][fac_cols]  regr = linear_model.LinearRegression()  regr.fit(X,Y)  coefs = pd.DataFrame(regr.coef_, index=fac_cols, columns=[s])