嗨〜我想问一个有关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统计和R平方的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
... ... ... ... ...
有人可以帮忙吗?预先非常感谢您的帮助。
答案 0 :(得分:0)
我将展示一些模型,以便您可以构建其余模型。它主要是建立您的自定义回归函数并使用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