首页 > 解决方案 > 正态分布图上的置信区间

问题描述

我想在置信区间的 x 位置绘制垂直线。我做了统计,但我找不到将其添加到情节的方法。请遵循此 MWE:

xseq<-seq(-4,4,.01)
densities<-dnorm(xseq, 0,1)
par(mfrow=c(1,3), mar=c(3,4,4,2))
plot(xseq, densities, col="darkgreen",xlab="", ylab="Densidade", type="l",lwd=2, cex=2, main="Normal", cex.axis=.8)

生成: 在此处输入图像描述

词是:

x<-t.test(xseq, conf.level = 0.95)$conf.int

但是当我尝试用以下方式绘制线时:

line(x[1], x[2])

它给了我错误:

Error in structure(.Call(C_tukeyline, as.double(xy$x[ok]), as.double(xy$y[ok]),  : 
  insufficient observations

在指出 abline() 的评论之后,它可以工作:

在此处输入图像描述

但是,我认为 t.test 会给出正态分布的 cis 是不正确的。

标签: r

解决方案


使用ggplot2

ggplot(data = df, aes(x = xseq, y = densities)) +
 geom_point() + 
 geom_vline(xintercept = c(x[1], x[2]))

在此处输入图像描述

使用适当的置信区间:

ggplot(data = df, aes(x = xseq, y = densities)) +
 geom_point() + 
 geom_vline(xintercept = c(x2[1], x2[2]))

在此处输入图像描述

样本数据:

df <- data.frame(xseq = seq(-4,4,.01),
densities = dnorm(xseq, 0,1))

x <- t.test(xseq, conf.level = 0.95)$conf.int
x2 <- qnorm(c(0.05, 0.95), mean = mean(xseq), sd = sd(xseq))

推荐阅读