2013-04-27 5 views
6

я следующие вместе с statsmodels tutorialДоверительные интервалы для предсказания модели

модели

МНК оснащен

formula = 'S ~ C(E) + C(M) + X' 
lm = ols(formula, salary_table).fit() 
print lm.summary() 

предсказанные значения обеспечиваются за счет:

lm.predict({'X' : [12], 'M' : [1], 'E' : [2]})

В результате возвращается как один массив значений.

Есть ли способ вернуть доверительные интервалы для прогнозируемого значения (интервалы прогнозирования) в statsmodels?

Спасибо.

+0

Была ли у вас Google "надежность python statsmodels"? – Floris

+3

Да, я посмотрел на это. Он возвращает CI установленных значений в сводке результатов модели. Я искал CI прогнозируемых ценностей. По сути, я ищу 95% ДИ от Y_hat. – John

ответ

10

Мы собирались сделать это проще. Вы должны уметь использовать

from statsmodels.sandbox.regression.predstd import wls_prediction_std 
prstd, iv_l, iv_u = wls_prediction_std(results) 

Если у вас есть какие-либо проблемы, пожалуйста, напишите о проблеме на github.

+0

Спасибо @jseabold. Я знал, что это должно быть где-то. – John

+1

Есть ли способ получить интервалы прогнозирования также для новых данных, предсказанных моделью? Приведенный здесь метод возвращает интервалы прогнозирования только для обучения данных. –

+1

@MarcoMene 'wls_prediction_std()' принимает второй аргумент 'exog', который может быть НОВЫМ. – Mattijn

0

Кроме того, вы можете попробовать использовать метод get_prediction.

values_to_predict = pd.DataFrame({'X' : [12], 'M' : [1], 'E' : [2]}) 
predictions = result.get_prediction(values_to_predict) 
predictions.summary_frame(alpha=0.05) 

Я нашел метод summary_frame() похоронен here и вы можете найти метод here get_prediction(). Вы можете изменить уровень значимости доверительного интервала и интервала предсказания, изменив параметр «альфа».