#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. рад, что это было полезно 🙂