0

假设我试图为学生 t 分布找到某个值以下的区域。例如,我计算我的 t 检验统计量为 t=1.78,自由度为 23。我知道如何使用 pt() 函数获得 t=1.78 以上曲线下的面积。如何获得具有 23 个自由度的学生分布图和 1.78 以上曲线下的区域阴影。也就是说,我希望用适当的曲线绘制 pt(1.78,23,lower.tail=FALSE)阴影区域。有没有办法做到这一点?

4

2 回答 2

2

ggplot版本:

ggplot(data.frame(x = c(-4, 4)), aes(x)) +
  stat_function(fun = dt, args =list(df =23)) +
  stat_function(fun = dt,   args =list(df =23),
                xlim = c(1.78,4),
                geom = "area") 

在此处输入图像描述

于 2018-11-15T16:54:32.670 回答
1

这应该有效:

x_coord <- seq(-5, 5, length.out = 200) # x-coordinates
plot(x_coord, dt(x_coord, 23), type = "l",
     xlab = expression(italic(t)), ylab = "Density", bty = "l") # plot PDF
polygon(c(1.78, seq(1.78, 5, by = .3), 5, 5), # polygon for area under curve
        c(0, dt(c(seq(1.78, 5, by = .3), 5), 23), 0),
        col = "red", border = NA)

关于论点polygon()

  • 您的第一个和最后一个点应该是 [1.78, 0] 和 [5, 0] (仅在情节变为 5 的情况下为 5) - 这些基本上定义了红色多边形的底部边缘
  • 第二个和倒数第二个点是 [1.78, dt(1.78, 23)] 和 [5, dt(5, 23)] - 这些定义了上边缘的端点
  • 中间的东西只是曲线 [x, ] 上任意数量点的 X 和 Y 坐标dt(x, 23)- 点越多,多边形越平滑

希望这可以帮助

于 2018-11-15T16:43:05.067 回答