Как я могу получить информацию о зависимой переменной из результатов OLS в Python?

#python #statsmodels #glm

#python #statsmodels #glm

Вопрос:

Я пытаюсь получить информацию из результатов OLS после регрессии цикла for.

Например,

 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())

 

Я могу получить такую информацию, как оценки, p-значение by results[0].params, results[0].pvalues .

Но я также хочу получить имя зависимой переменной (y1, y2, …), используемой в каждой регрессии, чтобы я мог определить, какие параметры для какой переменной.

Например, если я запускаю results[0].depvar , я получаю y1 .

Спасибо! 🙂

Ответ №1:

Это 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
 

Комментарии:

1. Спасибо! Это было именно то, что я искал!

2. рад, что это было полезно 🙂