代码之家  ›  专栏  ›  技术社区  ›  lf_araujo

正态分布图上的置信区间

r
  •  0
  • lf_araujo  · 技术社区  · 6 年前

    我想在x位置上画出置信区间的垂直线。我做了统计,但我找不到一种方法把它添加到情节中。请遵循此mwe:。

    xseq<-seq(-4,4,.01)
    密度<-dnorm(xseq,0,1)
    par(mfrow=c(1,3),mar=c(3,4,4,2))
    绘图(xseq,密度,col=“darkgreen”,xlab=“”,ylab=“densidade”,type=“l”,lwd=2,cex=2,main=“normal”,cex.axis=0.8)
    

    生成:

    CI是:

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

    但当我试图用以下方法画出这条线时:

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

    它给了我一个错误:

    结构错误(.call(c_tukeyline,as.double(x y$x[ok]),as.double(xy$y[ok]),:
    观察不足
    

    After comments pointing out abline().it works:。

    然而,我不正确地认为t.test会给出cis的正态分布。

    • 我做错什么了?
    • 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)
      

      生成: enter image description here

      CI是:

      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()之后工作原理:

      enter image description here

      然而,我不正确地认为t.test会给出正态分布的cis。

      • 我做错什么了?
    1 回复  |  直到 6 年前
        1
  •  1
  •   tmfmnk    6 年前

    使用 ggplot :

    library(ggplot2)   
    
    df <- as.data.frame(cbind(xseq, densities))
    
    plot <- ggplot(data = df, aes(x=xseq, y=densities)) +
      geom_point() + geom_vline(xintercept = c(x[1], x[2]))
    
    plot
    

    有适当的置信区间:

    x2 <- qnorm(c(0.05, 0.95), mean = mean(xseq), sd = sd(xseq))
    
    plot <- ggplot(data = df, aes(x=xseq, y=densities)) +
      geom_point() + geom_vline(xintercept = c(x2[1], x2[2]))
    
    plot