首页 > 解决方案 > 使用 Pandas 对个别公司进行回归

问题描述

我有一个类似于下面的数据框。

   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功能对公司进行分组,但我不知道如何从这里开始。

感谢任何能够提供帮助的人。

标签: pythonpandasregression

解决方案


像下面这样的东西会做。过滤数据,然后对该数据执行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()

推荐阅读