python 概率分布函数_逆累积分布函数,累积分布函数及python实现

今天再看论文的时候看到一个名词叫: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

你可能感兴趣的:(python,概率分布函数)