在R中绘制概率时是否需纳入先验概率?二元分类绘图咨询
问题解答
你确实需要把先验概率乘进去,因为你要绘制的是先验概率×类条件密度函数,这对应贝叶斯框架里的联合概率$P(Y=k,X=x)$,也是后验概率计算的核心部分。
你的现有代码没乘先验概率,这是关键遗漏,修正后的代码如下:
# 生成统一的x序列,无需重复定义 x <- seq(-5, 5, length=200) # 类0:先验概率0.6 × 标准正态密度函数 y0 <- 0.6 * dnorm(x, mean=0, sd=1) # 类1:先验概率0.4 × N(1, 0.5)密度函数,sd直接用sqrt(0.5)即可 y1 <- 0.4 * dnorm(x, mean=1, sd=sqrt(0.5)) # 绘制类1的曲线,同步调整坐标轴范围适配乘完先验后的数值 plot(x, y1, type="l", lwd=2, col='red', xlim = c(-5,5), ylim = c(0, 0.35), xlab = "观测值", ylab = "先验×类条件密度") # 添加类0的曲线 lines(x, y0, col='blue', lwd=2) # 增加图例提升可读性 legend("topright", legend=c("类1: P(Y=1)*f₁(x)", "类0: P(Y=0)*f₀(x)"), col=c("red", "blue"), lwd=2)
改动说明:
- 用类别的先验概率(类0为0.6,类1为1-0.6=0.4)分别乘以对应密度函数值,符合你要绘制的目标
- 合并了重复的x序列定义,减少冗余代码
- 调整了y轴范围,因为乘完先验后数值会比单纯的密度函数小,避免曲线超出显示范围
- 新增图例,让两类曲线的含义更清晰
内容的提问来源于stack exchange,提问作者Sallie Dawa
相关产品推荐
相关产品推荐

