Регресс с отдельными компаниями, использующими панды - PullRequest
0 голосов
/ 25 октября 2019

У меня есть датафрейм, похожий на приведенный ниже.

   Date       Company_Name    Rtns    Sentiment    Market_cap    Beta
0  1/1/2000   abc             0.2     1            1234          1.0
1  1/2/2000   abc             0.5     1            1221          1.0
2  1/3/2000   abc             0.4     0            1532          1.2
       .
       .
50 1/12/2011  abc             0.02    1            1211          0.9
51 1/1/2001   def             0.03    0             118          1.6
52 1/2/2001   def             0.13    0             117          1.2
53 1/3/2001   def             0.02    1             117          1.3

Я пытаюсь выполнить регрессию OLS с одной группой компаний за раз (т. Е. Регрессия abc компании, регрессия def компании), со всеми переменными, регрессированными к доходам. Это то, что я сделал ниже (я использовал цикл for, но я не уверен, как использовать индекс или использовать названия компаний для получения регрессии):

 y = df['Rtns']
 x = df[['Sentiment', 'Market_cap', 'Beta']]

 summ= []
 for i in df:
    model = sm.OLS((y,x)).fit()
    summ.append(model.summary())

Вывод данныхдля меня была модель регрессии, которая была повторяющейся.

Я не уверен, как мне регрессировать каждую группу компаний (т.е. результат регрессии abc и результат регрессии def.)

Я также использовал groupby функция для группировки компаний, но я не уверен, что делать дальше.

Спасибо всем, кто может помочь.

1 Ответ

1 голос
/ 25 октября 2019

Подойдет что-то вроде ниже. Отфильтруйте данные, а затем выполните OLS для этих данных.

 lst=['abc','def']

 for i in lst:
    tmp=df[df['Company_Name']==i]
    y=tmp['Rtns']
    x=tmp[['Sentiment', 'Market_cap', 'Beta']]
    model = sm.OLS((y,x)).fit()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...