如何从Python中的OLS结果中获取因变量的信息?

How can I get the information of dependent variable from OLS results in Python?

我正在尝试从 for 循环回归后的 OLS 结果中获取信息。

例如,

depvars = ['y1', 'y2', 'y3', ...]
models = [ "~ x1 + x2", "~ x1 + x2 + x3", ...]
results = []
for depvar in depvars:
    for model in models:
        results.append(smf.glm(formula = depvar + model, data= data).fit())

我可以通过 results[0].params, results[0].pvalues.

获得估计值、p 值等信息

但我还想获取每个回归中使用的因变量(y1、y2、...)的名称,以便我可以分辨出哪些参数适用于哪个变量。

例如,如果我 运行 results[0].depvar 那么我得到 y1 .

谢谢! :)

model.endog_names下,例如:

import statsmodels.formula.api as smf
import numpy as np
import pandas as pd

data = pd.DataFrame(np.random.uniform(0,1,(50,6)),
                   columns=['x1','x2','x3','y1','y2','y3'])

depvars = ['y1', 'y2', 'y3']
models = [ "~ x1 + x2", "~ x1 + x2 + x3"]

for depvar in depvars:
    for model in models:
        results.append(smf.glm(formula = depvar + model, data= data).fit())

print("dependent:",results[0].model.endog_names)
print("independent:",results[0].model.exog_names)
print("coefficients:\n",results[0].params)

给你:

dependent: y1
independent: ['Intercept', 'x1', 'x2']
coefficients:
 Intercept    0.468554
x1           0.258408
x2          -0.138862
dtype: float64