Получение линии регрессии для построения из регрессии Панд
Я попытался с (pandas) pd.ols и (statsmodels) sm.ols получить график рассеяния регрессиис линией регрессииЯ могу получить график рассеяния, но не могу получить параметры для построения графика регрессии. Вероятно, очевидно, что я делаю кое-какое кодирование здесь :-( (используя это как руководство:http://nbviewer.ipython.org/github/weecology/progbio/blob/master/ipynbs/statistics.ipynb
Мои данные находятся в панде DataFrame, и столбец x объединен2 [: - 1] .lastqu, а столбец данных y объединен2 [: - 1] .Units Теперь мой код выглядит так: чтобы получить регрессию:
def fit_line2(x, y):
X = sm.add_constant(x, prepend=True) #Add a column of ones to allow the calculation of the intercept
model = sm.OLS(y, X,missing='drop').fit()
"""Return slope, intercept of best fit line."""
X = sm.add_constant(x)
return model
model=fit_line2(merged2[:-1].lastqu,merged2[:-1].Units)
print fit.summary()
^^^^ вроде нормально
intercept, slope = model.params << I don't think this is quite right
plt.plot(merged2[:-1].lastqu,merged2[:-1].Units, 'bo')
plt.hold(True)
^^^^^ это делает разброс сюжета** и ниже не дает мне линию регрессии
x = np.array([min(merged2[:-1].lastqu), max(merged2[:-1].lastqu)])
y = intercept + slope * x
plt.plot(x, y, 'r-')
plt.show()
Фрагмент Dataframe: [: -1] удаляет текущий период из данных, который впоследствии будет проекцией
Units lastqu Uperchg lqperchg fcast errpercent nfcast
date
2000-12-31 7177 NaN NaN NaN NaN NaN NaN
2001-12-31 10694 2195.000000 0.490038 NaN 10658.719019 1.003310 NaN
2002-12-31 11725 2469.000000
Редактировать:
Я нашел, что мог сделать:
fig = plt.figure(figsize=(12,8))
fig = sm.graphics.plot_regress_exog(model, "lastqu", fig=fig)
как описано здесь вStatsmodels doc который, кажется, получил главное, что я хотел (и больше), я все еще хотел бы знать, где я ошибся в предыдущем коде!