尽管在许多数据分析中,正态分布的假设往往不被严格检测,甚至在某些论文中也不直接使用正态分布的可视化,但掌握如何绘制正态分布仍然非常重要。尤其是在做PPT汇报时,正态分布图常常用来直观展示数据的分布特性、统计假设或关键结论。它简洁、对称且易于理解,能够帮助观众快速抓住数据的核心特点。因此,即便在日常分析中用不到,学会绘制正态分布图依然是提升报告展示效果的有力工具。
今天,我们将用 R 语言的 ggplot2
包来绘制一个正态分布图,并将图中95%的区域(即95%的数据落入的区间)用不同的颜色加以区分。
为什么 95% 置信区间重要?
在正态分布中,68%的数据位于均值的一个标准差内,95%的数据位于两个标准差内,99.7%的数据则位于三个标准差内。95% 置信区间在很多领域(如A/B测试、假设检验等)被广泛使用,代表着大多数的观测值。在数据分析和统计学中,正态分布(Normal Distribution)是一种非常重要的概率分布。它不仅形状对称,而且是很多统计方法的基础。无论是在科学研究还是数据分析中,绘制正态分布图都非常有用,尤其是我们常常会关注数据在 95% 置信区间内的情况。
绘制正态分布图的步骤
下面,我们将用 R 来一步步实现这个目标:
第一步:安装并加载必要的 R 包
首先,你需要安装并加载 ggplot2
和 dplyr
这两个包,并加载:
library(ggplot2)
library(dplyr)
第二步:生成正态分布数据
我们可以用 R 的 rnorm()
函数生成随机正态分布数据。在这个例子中,我们假设正态分布的均值为 0,标准差为 1,并生成 10000 个样本点。
set.seed(123) # 保证结果可重复
data <- data.frame(x = rnorm(10000, mean = 0, sd = 1))
第三步:计算 95% 置信区间
95% 置信区间表示位于均值上下两个标准差内的区域。对于标准正态分布,这个区间可以直接通过 qnorm()
函数计算:
ci_lower <- qnorm(0.025, mean = 0, sd = 1) # 下界
ci_upper <- qnorm(0.975, mean = 0, sd = 1) # 上界
第四步:绘制正态分布图
接下来,我们使用 ggplot2
来绘制图表,并使用不同的颜色来突出显示 95% 置信区间。
P1 <- ggplot(data, aes(x = x)) +
stat_function(fun = dnorm, args = list(mean = 0, sd = 1),
geom = "area", fill = "#E0E0E0", alpha = 0.4) + # 整体浅灰色填充
stat_function(fun = dnorm, args = list(mean = 0, sd = 1),
xlim = c(ci_lower, ci_upper),
geom = "area", fill = "#98D9A9", alpha = 0.8) + # 95% 区域薄荷绿色
labs(title = "正态分布及其 95% 置信区间",
x = "X 值",
y = "概率密度") +
theme_minimal(base_family = "Helvetica") + # 使用苹果风格的字体
theme(
plot.title = element_text(size = 18, face = "bold", color = "#333333"), # 标题深灰色
axis.title = element_text(size = 14, color = "#333333"), # 坐标轴标签深灰色
axis.text = element_text(size = 12, color = "#555555") # 坐标轴刻度字体
)
P1
第五步:结果解读
运行上述代码后,你会得到一张正态分布曲线图,其中:
浅灰色区域:代表整个正态分布的概率密度。
浅绿色区域:表示 95% 的数据落入的区间,即位于 -1.96 和 1.96 之间(对于标准正态分布而言)。正态分布是一种对称的钟形曲线,图中间的高峰代表着均值周围的数据密度最大。绿色区域是 95% 的数据所处的区间,展示了我们在统计分析中经常讨论的“95% 置信区间”的直观效果。
总结
绘制正态分布并突出 95% 置信区间不仅能帮助我们更好地理解数据的分布情况,还能为许多数据科学项目提供可视化支持。通过 ggplot2
包,你可以轻松地创建高质量的图表,并为不同的分布区域添加不同的颜色,使结果更加直观。
你可以根据需求调整参数,比如改变均值和标准差,或者改变区间的显示颜色和样式。掌握这一技巧后,你可以在数据分析项目中更加高效地进行数据可视化!
(请点击标题查看)
科研代码 | 机器学习
ANOVA 描述性统计分析 主成分分析PCA 判别分析 PLSDA LDA KNN
异常值 贝叶斯统计 调用数据集 模型评价之准确率 Scikit-learn 数据预处理 API
无监督机器学习 SVM 监督式机器学习 特征选择 ANN SQL 数据转换 特征选择 冗余分析 数据导入 限制性立方样条时间序列分析 数据预处理 随机森林(RF)
散点图 相关性热图 柱状图 盒须图 小提琴图 R画地图 ggplot2 雷达图 圆形柱状图
文氏图 显著性差异 条形图 R配色 热图显著性标记 箱线图 XGBoost建模 3D散点图
科研代码 | 生产力工具
Pycharm Rstudio Dataspell VScode 四大数据分析软件 Copilot R语言教材 基础统计学 R语言入门 SPSS Python编辑器全比较 大名鼎鼎的文献管理软件
科研代码 | 世间万物
Peer pressure 走出舒适区 小老板保命守则 缺的是数据科学家 卷王之王 开放获取
在线投稿平台链接:https://www.wjx.cn/vm/miHDVk4.aspx
感谢关注,你的支持是我不懈的动力!