Python中scipy.stats分布函数常用方法详解
本文介绍Python中scipy.stats库处理连续与离散分布的核心方法。涵盖随机变量生成(rvs)、概率密度(pdf/cdf)、生存函数(sf)及分位点函数(ppf/isf)的使用,并解析stats与moment参数计算。通过正态分布实例演示参数估计与期望值计算,帮助开发者掌握统计分布的基础操作。
分布函数核心方法概览
为了掌握正态分布等统计分布的计算方法与属性,我们需要引入scipy.stats模块中的norm对象。
>>>from scipy.stats import norm
>>>rv = norm()
>>>dir(rv) # reformatted
[‘__class__', ‘__delattr__', ‘__dict__', ‘__doc__', ‘__getattribute__',
‘__hash__', ‘__init__', ‘__module__', ‘__new__', ‘__reduce__', ‘__reduce_ex__',
‘__repr__', ‘__setattr__', ‘__str__', ‘__weakref__', ‘args', ‘cdf', ‘dist',
‘entropy', ‘isf', ‘kwds', ‘moment', ‘pdf', ‘pmf', ‘ppf', ‘rvs', ‘sf', ‘stats']
对于连续型随机变量,scipy.stats提供了以下主要公共方法:
rvs: 生成随机变量样本 pdf: 概率密度函数 (Probability Density Function) cdf: 累计分布函数 (Cumulative Distribution Function) sf: 生存函数 (Survival Function, 即 1-CDF) ppf: 分位点函数 (Percent Point Function, CDF的逆函数) isf: 逆生存函数 (Inverse Survival Function, SF的逆函数) stats: 返回分布的均值、方差、偏度(Fisher's skew)或峰度(Fisher's kurtosis) moment: 计算分布的非中心矩
rvs:用于生成随机变量样本。
pdf:概率密度函数。
cdf:累计分布函数。
sf:生存函数,定义为1减去CDF。
ppf:分位点函数,即CDF的反函数。
isf:逆生存函数,即sf的反函数。
stats:返回分布的均值、方差、偏度(Fisher's skew)以及峰度(Fisher's kurtosis)。
moment:计算该分布的非中心矩。
CDF与PPF的具体应用
接下来以cdf为例进行说明:
>>>norm.cdf(0)
0.5
>>>norm.mean(), norm.std(), norm.var()
(0.0, 1.0, 1.0)
值得注意的是,CDF的逆运算同样可行,对应的方法即为ppf。
>>>norm.ppf(0.5) 0.0
离散分布与参数估计
在离散分布中,pdf被替换为概率质量函数pmf,且CDF的逆运算方式有所不同:
ppf(q) = min{x : cdf(x) >= q, x integer}
此外,fit方法可用于求解分布参数的极大似然估计,包括位置参数(location)和尺度参数(scale);nnlf用于计算负对数似然函数;expect则用于计算基于pdf或pmf的函数期望值。
以上即为Python中scipy.stats分布函数相关包的实例介绍,希望能为读者提供有价值的参考。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













