今天再看论文的时候看到一个名词叫:inverse cumulative distribution function。
查了一下,大部分称其为逆累积分布函数,这个叫法着实让人难理解,在这里我们把它称之为概率密度函数的反函数。
这篇文章分为三部分,
- 概率密度函数(Probability density function, PDF)
- 累积分布函数(cumulative distribution function, CDF)
- 逆累积分布函数(inverse cumulative distribution function, ICDF)
1 概率密度函数(Probability density function, PDF)
概率密度函数可以大致理解为,随着随机事件的改变,随机事件概率变化的程度。
python 实现:
使用的是scipy库的stats模块。
import scipy.stats as st
print(st.norm.pdf(0) #求0处的概率密度值
>>0.3989422804014327
print(st.norm.pdf(0.8))
>>0.28969155276148273
print(st.norm.pdf(-0.8))
>>0.28969155276148273
#符合标准正态分布的性质
2 累积分布函数(cumulative distribution function, CDF)
累积分布函数(Cumulative Distribution Function),又叫分布函数,是 概率密度函数的积分,能完整描述一个实随机变量 X的概率分布。
定义如下:
并且在CDF可导的前提下,CDF的倒数 = PDF。
st.norm.cdf(0)
>>0.5
st.norm.cdf(0.5)
>>0.6914624612740131
st.norm.cdf(0.8)
>>0.7881446014166034
st.norm.cdf(1)
>>0.8413447460685429
st.norm.cdf(1.5)
>>0.9331927987311419
#符合累积分布函数的性质,单调递增并趋向于1
3 逆累积分布函数(inverse cumulative distribution function, ICDF)
逆累积分布函数里面的"逆",对应的英文单词是inverse
所以“逆累积分布函数”的意思其实是“反累积分布函数” 累积分布:分位点->概率, 逆累积分布:概率->分位点。
对于ICDF来说,是已知概率求分位点, 对于CDF来说,是已知分位点求概率。
分位点可理解为划分分布的一个点。
# ICDF 是 CDF的逆函数,所以我们用cdf组产生的实验结果
(0, 0.5) (0.5, 0.6914624612740131)(0.8, 0.7881446014166034)
(1, 0.8413447460685429 )(1, 0.9331927987311419)
st.norm.ppf(0.5)
>>0.0
st.norm.ppf(0.6914624612740131)
>>0.5
st.norm.ppf(0.7881446014166034)
>>0.8
st.norm.ppf(0.8413447460685429)
>>1.0
st.norm.ppf(0.8413447460685429)
>>1.4999999999999996