R语言计算一组数据的置信区间并画密度图进行可视化展示的简单小例子

2020-12-09 15:09:13 浏览数 (1)

什么是置信区间?

我看了StatQuest 介绍置信区间的那一期视频,大体理解了,但是让我用语言表述出来,还有点不知道如何表达。本来B站可以直接看StatQuest的视频的,今天看到B站的up主发消息说StatQuest的原作者准备入驻B站了,所以他把原来获得授权的那些视频全都删掉了。所以要在B站看这些视频还要等一阵子了。

具体概念先不介绍了,主要还是实际操作

今天的主要内容来自 How to Calculate Confidence Interval in R : Statistics in R : Data Sharkie

计算置信区间用到的函数是CI()函数,来自R语言包Rmisc

R语言包Rmisc第一次使用需要先安装

代码语言:javascript复制
install.packages("Rmisc")

计算某组数据均值95%的置信区间

代码语言:javascript复制
x<-iris$Sepal.Length
library(Rmisc)
CI(x,ci=0.95)

返回的结果是

代码语言:javascript复制
> CI(x,ci=0.95)
   upper     mean    lower 
5.976934 5.843333 5.709732 

前面提到的参考链接里有一句话

Logically, as you increase the sample size, the closer is the value of a sample parameter to a population parameter, therefore the narrower the confidence interval gets. 样本越大,样本的均值越接近总体的均值,所以均值的置信区间就会越窄

正好昨天的推文是画密度图是给指定的区间填充颜色

ggplot2画密度分布图按取值范围填充不同的颜色

下面使用ggplot2画密度图展示并且展示均值95%的置信区间

代码语言:javascript复制
#install.packages("Rmisc")
library(Rmisc)
x<-iris$Sepal.Length
library(Rmisc)
x1<-CI(x,ci=0.95)
class(x1[1])
dat<-with(density(x),data.frame(x,y))
dat1<-dat[dat$x>x1[3]&dat$x<x1[1],]
library(ggplot2)
ggplot(iris,aes(Sepal.Length)) 
  geom_density(fill="grey") 
  geom_vline(xintercept = x1[1],lty="dashed") 
  geom_vline(xintercept = x1[3],lty="dashed") 
  geom_area(data=dat1,aes(x=x,y=y),fill="red") 
  geom_vline(xintercept = x1[2],lty="dashed") 
  scale_y_continuous(expand = c(0,0),
                     limits = c(0,0.41)) 
  theme_minimal()

image.png

欢迎大家关注我的公众号

小明的数据分析笔记本

0 人点赞