You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言:已知标准正态分布CDF的Y值0.95,求解对应X值

求解标准正态分布CDF的逆函数值(95%分位数)

嘿,你要解决的其实就是求标准正态分布的95%分位数——也就是找到x使得标准正态累积分布函数在x处的取值等于0.95。这里有两种常用的方法,我给你详细说说:

方法1:直接用R内置的分位数函数(最推荐)

因为你定义的dist(x)本质就是pnorm(x, 0, 1)(标准正态CDF),而R里刚好有它的反函数qnorm(),专门用来计算分位数。直接运行下面的代码就能得到结果:

qnorm(0.95)

运行后会返回约1.644854,这就是你要的x值。这个方法最简洁,而且R的内置函数经过了优化,精度和效率都有保障。

方法2:用数值求根函数手动求解

如果你想手动实现解方程的过程,可以用R的uniroot()函数来找函数的根。步骤如下:

  1. 先构造一个目标函数,把方程0.95 = dist(x)转化为找dist(x) - 0.95 = 0的根:
dist <- function(x) pnorm(x, 0, 1)
# 构造待求根的函数
target_func <- function(x) dist(x) - 0.95
  1. 调用uniroot(),指定一个合理的搜索区间(因为标准正态95%分位数肯定在0到5之间,这个区间足够覆盖解):
root_result <- uniroot(target_func, interval = c(0, 5))
# 提取根的值
root_result$root

运行后同样会得到约1.644854的结果。

简单总结一下:优先用qnorm(),这是最直接的方式;如果想理解数值求解的过程,再用uniroot()手动实现。

内容的提问来源于stack exchange,提问作者Codey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 09:49:31