Как запустить регрессию (перебрать) тикеры / компании в pandaframe - PullRequest
0 голосов
/ 06 апреля 2019

У меня проблема с итерацией по различным группам / тикерам / фирмам в пандафрейме (Python).Я хочу запустить отдельные регрессии на тикер = фирмы и сохранить значения в новом пандафрейме.

Ниже приводится краткая выборка данных: (Обратите внимание, что значения случайные)

Date       Ticker    Company    Price     HML    SMB     ER
21/06/2002  ANTQ    A.A. IMPORT 0,009   0,015   0,028   0,037
24/06/2002  ANTQ    A.A. IMPORT 0,009   0,015   0,028   0,037
25/06/2002  ANTQ    A.A. IMPORT 0,009   0,015   0,028   0,037
26/06/2002  ANTQ    A.A. IMPORT 0,009   0,015   0,028   0,037
27/06/2002  ANTQ    A.A. IMPORT 0,009   0,015   0,028   0,037
28/06/2002  ANTQ    A.A. IMPORT 0,009   0,015   0,028   0,037
01/07/2002  ANTQ    A.A. IMPORT 0,009   0,015   0,028   0,037
02/07/2002  ANTQ    A.A. IMPORT 0,009   0,015   0,028   0,037
03/07/2002  ANTQ    A.A. IMPORT 0,009   0,015   0,028   0,037
05/07/2002  ANTQ    A.A. IMPORT 0,009   0,015   0,028   0,037
08/07/2002  ANTQ    A.A. IMPORT 0,009   0,015   0,028   0,037
09/07/2002  ANTQ    A.A. IMPORT 0,009   0,015   0,028   0,037
10/07/2002  ANTQ    A.A. IMPORT 0,101   0,015   0,028   0,037
11/07/2002  ANTQ    A.A. IMPORT 0,101   0,015   0,028   0,037
12/07/2002  ANTQ    A.A. IMPORT 0,101   0,015   0,028   0,037
21/06/2002  AIR AAR CORP    0,009   0,015   0,028   0,037
24/06/2002  AIR AAR CORP    0,009   0,015   0,028   0,037
25/06/2002  AIR AAR CORP    0,009   0,015   0,028   0,037
26/06/2002  AIR AAR CORP    0,009   0,015   0,028   0,037
27/06/2002  AIR AAR CORP    0,009   0,015   0,028   0,037
28/06/2002  AIR AAR CORP    0,009   0,015   0,028   0,037
01/07/2002  AIR AAR CORP    0,009   0,015   0,028   0,037
02/07/2002  AIR AAR CORP    0,009   0,015   0,028   0,037
03/07/2002  AIR AAR CORP    0,009   0,015   0,028   0,037
05/07/2002  AIR AAR CORP    0,009   0,015   0,028   0,037
08/07/2002  AIR AAR CORP    0,009   0,015   0,028   0,037
09/07/2002  AIR AAR CORP    0,009   0,015   0,028   0,037
10/07/2002  AIR AAR CORP    0,101   0,015   0,028   0,037
11/07/2002  AIR AAR CORP    0,101   0,015   0,028   0,037
12/07/2002  AIR AAR CORP    0,101   0,015   0,028   0,037

Идея заключается в следующем:

Сначала я хочу запуститьрегрессия путем регрессии факторов Fama и French (ER, HML и SML) сверх избыточной доходности (Return).Затем я хочу использовать эту модель для прогнозирования ошибки в модели путем вычитания реальной избыточной прибыли из прогнозируемой избыточной прибыли модели.

error = smf.ols(formula="df['Return'] ~ + df['ER']+ df['HML'] + df['SML']+ ", data= df).fit().predict()-df['p']

Поскольку у меня есть набор данных с поперечным сечением (с тикерами над строками), я хочу запустить регрессию для каждого тикера и сохранить значения ошибок для тикера в новом фрейме данных.Приводить к этому для цикла, который я знаю, это неправильно, но дать идею.

grouped_df= df.groupby("Ticker")
for group in grouped_df:
   error['group'] = smf.ols(formula="df['Return'] ~ + df['ER']+ df['HML'] + df['SML']+ ", data= df).fit().predict()-df['p']

Могу ли я помочь с этим?

Заранее спасибо,

Йенс

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...