The Empirical Rule, also known as the 68-95-99.7 rule, is a statistical rule that applies to a normal distribution. According to the rule, for any given set of data that is normally distributed, approximately:
- 68% of data falls within one standard deviation of the mean,
- 95% within two standard deviations, and
- 99.7% within three standard deviations.
The Empirical Rule is a quick and useful way to analyze the spread of data in a given dataset. For data scientists and statisticians, it serves as a convenient tool to summarize data, make inferences and predictions.
In this article, we will guide you through a detailed step-by-step process on how to apply the Empirical Rule in R.
1. Data Preparation
Let’s create a normally distributed dataset. Here, we will use the rnorm()
function to generate a normal distribution of 1000 values, with a mean (µ) of 100 and a standard deviation (σ) of 15.
set.seed(123) # For reproducibility
data <- rnorm(1000, mean = 100, sd = 15)
2. Calculating Mean and Standard Deviation
Next, we calculate the mean and standard deviation of our data. In R, we use the mean()
function to calculate the mean, and the sd()
function for the standard deviation.
mean_data <- mean(data)
sd_data <- sd(data)
3. Applying the Empirical Rule
Now we can apply the Empirical Rule. We will find the range for each standard deviation from the mean and count the number of data points within each range.
within_one_sd <- sum(data > (mean_data - sd_data) & data < (mean_data + sd_data))
within_two_sd <- sum(data > (mean_data - 2*sd_data) & data < (mean_data + 2*sd_data))
within_three_sd <- sum(data > (mean_data - 3*sd_data) & data < (mean_data + 3*sd_data))
percentage_one_sd <- (within_one_sd / length(data)) * 100
percentage_two_sd <- (within_two_sd / length(data)) * 100
percentage_three_sd <- (within_three_sd / length(data)) * 100
We calculate the percentages by dividing the number of data points within each range by the total number of data points.
4. Results Interpretation
After applying the Empirical Rule, we can output the percentage of data within each standard deviation from the mean.
cat("Percentage within one standard deviation: ", percentage_one_sd, "%\n")
cat("Percentage within two standard deviations: ", percentage_two_sd, "%\n")
cat("Percentage within three standard deviations: ", percentage_three_sd, "%\n")
These results should be approximately 68%, 95%, and 99.7% respectively, providing a useful summary of how our data is spread around the mean.
5. Data Visualization
To visualize the data and the Empirical Rule, we can use a histogram using the ggplot2
package. We will add vertical lines to denote the mean and each standard deviation.
data_frame <- data.frame(data)
library(ggplot2)
ggplot(data_frame, aes(x=data)) +
geom_histogram(aes(y=..density..), bins=30, colour="black", fill="white") +
geom_density(alpha=.2, fill="#FF6666") +
geom_vline(aes(xintercept=mean_data), color="blue", linetype="dashed", size=1) +
geom_vline(aes(xintercept=(mean_data - sd_data), color="green"), linetype="dashed", size=1) +
geom_vline(aes(xintercept=(mean_data + sd_data), color="green"), linetype="dashed", size=1) +
geom_vline(aes(xintercept=(mean_data - 2*sd_data), color="orange"), linetype="dashed", size=1) +
geom_vline(aes(xintercept=(mean_data + 2*sd_data), color="orange"), linetype="dashed", size=1) +
geom_vline(aes(xintercept=(mean_data - 3*sd_data), color="red"), linetype="dashed", size=1) +
geom_vline(aes(xintercept=(mean_data + 3*sd_data), color="red"), linetype="dashed", size=1)

In this code, geom_histogram()
function is used to create a histogram and geom_density()
to add a density plot on top of the histogram. The geom_vline()
functions add vertical lines at the mean and each standard deviation, colored differently for clarity.
Conclusion
The Empirical Rule is a powerful tool in the field of statistics, providing a quick way to understand the spread of normally distributed data. By leveraging R’s robust functionalities, you can apply the Empirical Rule and enhance your statistical analyses. This walkthrough illustrates the steps to implement the Empirical Rule in R, but the true power of this rule comes from applying it to real-world datasets. Hence, the next step is to take this knowledge and apply it to your data analysis tasks to extract meaningful insights.