John
John

Reputation: 43199

Confidence intervals for model prediction

I am following along with a statsmodels tutorial

An OLS model is fitted with

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

Predicted values are provided through:

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

The result is returned as a single value array.

Is there a method to also return confidence intervals for the predicted value (prediction intervals) in statsmodels?

Thanks.

Upvotes: 7

Views: 7922

Answers (2)

Julius
Julius

Reputation: 1541

additionally you can try to use the get_prediction method.

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

I found the summary_frame() method buried here and you can find the get_prediction() method here. You can change the significance level of the confidence interval and prediction interval by modifying the "alpha" parameter.

Upvotes: 0

jseabold
jseabold

Reputation: 8283

We've been meaning to make this easier to get to. You should be able to use

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

If you have any problems, please file an issue on github.

Upvotes: 11

Related Questions