按组回归并在 python 中显示输出

Regression by group and display output in python

嗨~我想问一个与python中的回归分析相关的快速问题。我有以下 dataframe:

group      Y        X
 1         9        3
 1         5        4
 1         3        1
 2         1        6
 2         2        4
 2         3        9

Y 是因变量,X 是自变量。我想按组 运行 回归 Y=a + bx 并输出另一个包含系数、t-stats 和 R-square 的 dataframe。所以,数据框应该是这样的:

group   coefficient   t-stats    intercept    r-square
  1        0.25         1.4        4.3         0.43
  2        0.30         2.4        3.6         0.49
 ...        ...         ...        ...         ...

有人可以帮忙吗?非常感谢您的帮助。

我将展示一些模型,以便您构建其余部分。它主要是拉出您的自定义回归函数并使用 apply.

传递数据框

告诉我你的想法。

import pandas as pd
import statsmodels.api as sm 

def GroupRegress(data, yvar, xvars):
    Y = data[yvar]
    X = data[xvars]
    X['intercept'] = 1.
    result = sm.OLS(Y, X).fit()
    return result.params

import pandas as pd
df = pd.DataFrame({'group': [1,1,1,2,2,2], 
                   'Y': [9,5,3,1,2,3],
                  'X': [3,4,1,6,4,9]
                  })
df


df.groupby('group').apply(GroupRegress, 'Y', ['X'])

结果如下:

X   intercept
group       
1   1.000000    3.0
2   0.236842    0.5