Reputation: 43199
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
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
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