How to compute a confidence interval for the expected value of a response variable
Description
If we have a simple linear regression model,
Related tasks:
- How to compute a confidence interval for a mean difference (matched pairs)
- How to compute a confidence interval for a regression coefficient
- How to compute a confidence interval for a population mean
- How to compute a confidence interval for a single population variance
- How to compute a confidence interval for the difference between two means when both population variances are known
- How to compute a confidence interval for the difference between two means when population variances are unknown
- How to compute a confidence interval for the difference between two proportions
- How to compute a confidence interval for the population proportion
- How to compute a confidence interval for the ratio of two population variances
Using statsmodels and sklearn, in Python
Let’s assume that you already have a linear model. We construct an example one here from some fabricated data. For a review of how this preparatory code works, see how to fit a linear model to two columns of data.
1
2
3
4
5
6
7
8
9
import statsmodels.api as sm
# Replace the following fake data with your actual data:
xs = [ 34, 9, 78, 60, 22, 45, 83, 59, 25 ]
ys = [ 126, 347, 298, 309, 450, 187, 266, 385, 400 ]
# Create and fit a linear model to the data:
xs = sm.add_constant( xs )
model = sm.OLS( ys, xs ).fit()
Ask the model to do a prediction of one particular input, in this example
(The extra 1
in the input to get_prediction
is a placeholder,
required because the model has been expanded to include a constant term.)
1
model.get_prediction( [1,40] ).summary_frame( alpha=0.05 )
mean | mean_se | mean_ci_lower | mean_ci_upper | obs_ci_lower | obs_ci_upper | |
---|---|---|---|---|---|---|
0 | 313.721744 | 36.823483 | 226.648043 | 400.795444 | 45.876725 | 581.566762 |
Our 95% confidence interval is
Content last modified on 24 July 2023.
See a problem? Tell us or edit the source.
Solution, in R
Let’s assume that you already have a linear model. We construct an example one here from some fabricated data.
1
2
3
4
# Make the linear model
x <- c(34, 9, 78, 60, 22, 45, 83, 59, 25)
y <- c(126, 347, 298, 309, 450, 187, 266, 385, 400)
model <- lm(y ~ x)
Construct a data frame containing just one entry, the value of the independent variable for which you want to compute the confidence interval.
That data frame can then be passed to R’s predict
function to get a confidence interval for the expected value of
1
2
3
4
# Use your chosen value of x below:
data <- data.frame(x=40)
# Compute the confidence interval for y:
predict(model, data, interval="confidence", level=0.95) # or choose a different confidence level; here we use 0.95
fit lwr upr
1 313.7217 226.648 400.7954
Our 95% confidence interval is
Content last modified on 24 July 2023.
See a problem? Tell us or edit the source.
Topics that include this task
Opportunities
This website does not yet contain a solution for this task in any of the following software packages.
- Excel
- Julia
If you can contribute a solution using any of these pieces of software, see our Contributing page for how to help extend this website.