Open In App

How to Find Confidence Intervals in R?

Last Updated : 05 Jul, 2023
Improve
Improve
Like Article
Like
Save
Share
Report

The confidence interval in R signifies how much uncertainty is present in statistical data. a fundamental statistical technique, confidence intervals offer a range of likely values for an unknown population parameter based on sample data. They are essential to decision-making, hypothesis testing, and statistical inference.
In other words, it is defined as an interval that depicts a population parameter with a probability of 1 – α. The expression for the confidence interval is given below,

xÌ„ ± tα / 2,N – 1 SxÌ„

Here,

xÌ„ ± tα / 2 : It signifies the value required to form an area of α / 2 (each tail of a t-distribution where 

  degree of freedom = n – 1)

SxÌ„ = s / √n :  It represents the standard error of the mean  

Determining confidence interval in R: 

R




# Sample data
data <- c(23, 28, 32, 27, 25, 30, 31, 29, 26, 24)
 
# Calculate the confidence interval
result <- t.test(data)
 
# Extract the confidence interval
confidence_interval <- result$conf.int
 
# Print the confidence interval
confidence_interval


Output:

[1] 25.33415 29.66585
attr(,"conf.level")
[1] 0.95

Based on the supplied data, the result [1] 25.33415 29.66585 shows the mean’s computed confidence interval. The confidence interval in this instance is [25.33415, 29.66585]. The output of attr(,”conf.level”) shows that 95% confidence was utilized to compute the interval.

Accordingly, based on the sample data provided, we can say with a 95% degree of certainty that the true population means is within the range of 25.33415 to 29.66585.

Calculate for Iris Data Set
Firstly we need to create sample data. R provides inbuilt datasets. In this article, we are going to use the iris dataset for illustration. iris dataset depicts the sepal length, sepal width, petal length, and petal width in centimeters. It provides the data of fifty flowers from each of the three species of iris. The species are:

  • Iris setosa
  • versicolor
  • virginica

R




# Printing the contents of iris inbuilt dataset
print(iris)


Output:

    Sepal.Length Sepal.Width Petal.Length Petal.Width    Species
1            5.1         3.5          1.4         0.2     setosa
2            4.9         3.0          1.4         0.2     setosa
3            4.7         3.2          1.3         0.2     setosa
4            4.6         3.1          1.5         0.2     setosa
5            5.0         3.6          1.4         0.2     setosa
6            5.4         3.9          1.7         0.4     setosa
7            4.6         3.4          1.4         0.3     setosa
8            5.0         3.4          1.5         0.2     setosa
9            4.4         2.9          1.4         0.2     setosa
10           4.9         3.1          1.5         0.1     setosa
11           5.4         3.7          1.5         0.2     setosa
12           4.8         3.4          1.6         0.2     setosa
13           4.8         3.0          1.4         0.1     setosa
14           4.3         3.0          1.1         0.1     setosa
15           5.8         4.0          1.2         0.2     setosa

Method 1: Calculating Intervals using base R

In this method, we will find the confidence interval step-by-step using mathematical formulas and R functions. You can follow the below steps to determine the confidence interval in R.

Step 1: Calculate the mean. The very first step is to determine the mean of the given sample data.

R




# R program to determine the mean
 
# Calculate the mean of the Sepal.Length
mean_value <- mean(iris$Sepal.Length)


Step 2: Now let’s compute the standard error of the mean. 

In order to compute the standard error of the mean (Sx̄), we need to find the standard deviation (s) and the length of the sample data (n).

R




# Compute the size
n <- length(iris$Sepal.Length)
 
# Find the standard deviation
standard_deviation <- sd(iris$Sepal.Length)
 
# Find the standard error
standard_error <- standard_deviation / sqrt(n)


Step 3: Determine the t-score that is linked to the confidence level.

In this step, we will compute the t-score related to the confidence level. We are required to have exactly α / 2 probability in the lower and upper tail. R provides the qt() function using which we can calculate the t-score easily. The syntax is given below,

Syntax:

qt(random_variable, degree_of_freedom) 

Parameters:

random_variable: It must be a random variable  

degree_of_freedom: It must be degree of Freedom

R




alpha = 0.05
degrees_of_freedom = sample.n - 1
t_score = qt(p=alpha/2, df=degrees_of_freedom,lower.tail=F)
print(t_score)


Step 4: Compute the margin of error and form the confidence interval.

The margin of error is given by,

tα / 2,N – 1 SxÌ„

It can be easily calculated as,

R




margin_error <- t_score * standard_error


 
 The confidence interval is equal to the mean +/- margin of error. It can be calculated as,

R




# Calculate the lower bound 
lower_bound <- mean_value - margin_error
 
# Calculate the upper bound
upper_bound <- mean_value + margin_error


Combining all the steps

Example:

R




# R program to find the confidence interval
 
# Calculate the mean of the sample data
mean_value <- mean(iris$Sepal.Length)
 
# Compute the size
n <- length(iris$Sepal.Length)
 
# Find the standard deviation
standard_deviation <- sd(iris$Sepal.Length)
 
# Find the standard error
standard_error <- standard_deviation / sqrt(n)
alpha = 0.05
degrees_of_freedom = n - 1
t_score = qt(p=alpha/2, df=degrees_of_freedom,lower.tail=F)
margin_error <- t_score * standard_error
 
# Calculating lower bound and upper bound
lower_bound <- mean_value - margin_error
upper_bound <- mean_value + margin_error
 
# Print the confidence interval
print(c(lower_bound,upper_bound))


Output:

[1] 5.709732 5.976934

Method 2: Calculating Confidence Intervals using confint() function

We can compute confidence intervals using the inbuilt functions in R. The steps are given below,

Step 1: Calculate mean and standard error.

R provides us lm() function which is used to fit linear models into data frames. We can calculate the mean and standard error (that are required to find confidence intervals) using this function. The syntax is given below,   

Syntax:

lm(fitting_formula, dataframe)

Parameters:

fitting_formula: It must be the formula for the linear model.

dataframe: It must be the name of the data frame that contains the data.

R




# Calculate the mean and standard error
l_model <- lm(Sepal.Length ~ 1, iris)


Step 2: Finding confidence interval.

Now, to find the confidence interval we have confint() function in R.  This function is specifically used to compute confidence intervals for one or more parameters in a fitted model. The syntax is given below,

Syntax:

confint(object, parm, level = 0.95, …)

Parameters:

object: It represents fitted model object.

parm : It represents parameters to be given confidence intervals (either a vector)

level : It represents the confidence level.

… :  It represents additional argument for different methods.

R




# Find the confidence interval
 
confint(model, level=0.95)


 
Combining all the steps

Example:

R




# R program to find the confidence interval
 
# Calculate the mean and standard error
model <- lm(Sepal.Length ~ 1, iris)
 
# Find the confidence interval
confint(model, level=0.95)


 Output:

               2.5 %   97.5 %
(Intercept) 5.709732 5.976934
  • The confidence interval for the intercept term in a linear regression model is represented by the output (Intercept) values of 5.709732 and 5.976934.
  • The confidence interval’s lower and upper bounds in this instance are 5.709732 and 5.976934, respectively. These numbers represent the range in which, with a certain degree of certainty (usually 95% by default), we may say where the intercept’s genuine population value lies.
  • A range estimate for the intercept is given by the confidence interval, which aids in determining its statistical significance and offers a sense of the degree of uncertainty surrounding the predicted value.


Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads