Я только столкнулся с проблемой, когда я сделал регрессионный анализ между двумя столбцами данных.

In [19]: import statsmodels.api as sm

         xdat = rets['EUROSTOXX']
         ydat = rets['VSTOXX']
         model = sm.OLS(ydat, xdat)
         model

Out[19]: <statsmodels.regression.linear_model.OLS at 0x4793da0>

Как получить результат сводной модели, а не адрес хранилища? Спасибо!!!

0
Hot 24 Апр 2017 в 02:15

2 ответа

Лучший ответ

Сначала вы должны соответствовать вашей модели,

import statsmodels.api as sm

ydat = rets["VSTOXX"]
xdat = rets["EUROSTOXX"]
xdat = sm.add_constant(xdat)

model = sm.OLS(ydat, xdat)
results = model.fit()

Затем вы можете распечатать результат коэффициента,

print(results.t_test([1, 0]))

И сводные результаты,

print(results.summary()) 
0
mforez 24 Апр 2017 в 01:24

Вам необходимо добавить скобки метода после модели как model.summary()

У меня это работает как

import statsmodels.api as sm

ydat = rets["VSTOXX"]
xdat = rets["EUROSTOXX"]

# Adding constant for Intercept
xdat = sm.add_constant(xdat)

model = sm.OLS(ydat, xdat)
results = model.fit()

Тогда просто как

model.summary()

Вы также можете получить R ^ 2 и Adj.R ^ 2 напрямую, используя

print(model.rsquared)
print(model.rsquared_adj)

Больше на: statsmodels.regions .linear_model.OLSResults

0
Saqib Mujtaba 11 Авг 2017 в 06:40
43577542