假设我正在尝试查找学生t分布的某个值以下的面积。例如,我以23个自由度计算出我的t检验统计量为t = 1.78。我知道如何使用pt()函数获取t = 1.78以上曲线下方的面积。如何获得具有23个自由度的学生分布图以及阴影在1.78以上的曲线下的区域的图。也就是说,我希望使用适当的图绘制pt(1.78,23,lower.tail = FALSE)的曲线阴影区域。有办法吗?
答案 0 :(得分: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")
答案 1 :(得分: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()
的参数:
dt(1.78, 23)
]和[5,dt(5, 23)
]-这些点定义了上边缘的端点dt(x, 23)
]的任意点的X和Y坐标-点越多,多边形越平滑希望这会有所帮助