Python scipy.stats瑞利分布fit返回值含义及σ参数获取方法
scipy.stats.rayleigh.fit 返回值说明与σ参数获取
stats.rayleigh.fit(num_list) 返回的二元元组是scipy连续分布fit方法的通用输出格式,两个值的含义非常明确:
- 第一个值:
loc位置偏移参数
scipy的所有连续分布都支持位置平移适配,原生瑞利分布的取值范围是[0, +∞),loc就是分布整体在x轴上的平移量,拟合得到这个值之后,分布的实际取值起点就从0变成了loc。你举例里的-320.34,就代表拟合出的瑞利分布左端点在x=-320.34的位置。 - 第二个值:
scale尺度参数
这个值就是你要找的瑞利分布核心参数σ。
scipy实现的瑞利分布是带偏移的通用版本,概率密度计算逻辑为:当x ≥ loc时,密度值为(x-loc)/(σ**2) * exp(-(x-loc)**2/(2*σ**2)),x < loc时密度为0。你记忆里只需要σ参数的瑞利分布,就是loc=0时的特殊情况,两者完全兼容。
实际使用方式
- 拆分返回值就能直接拿到需要的σ:
rayleigh_args = stats.rayleigh.fit(num_list) loc, sigma = rayleigh_args
- 计算CDF、PDF时直接传入两个参数即可,不需要做额外转换:
target_x = 120 # 计算累积分布函数值 cdf_val = stats.rayleigh.cdf(target_x, loc=loc, scale=sigma) # 计算概率密度函数值 pdf_val = stats.rayleigh.pdf(target_x, loc=loc, scale=sigma)
- 如果你确定自己的数据符合从0起点的原生瑞利分布,不存在位置偏移,可以在拟合时固定loc=0,得到更贴合理论设定的σ:
# floc参数用于强制固定loc值,不参与拟合优化 loc, sigma = stats.rayleigh.fit(num_list, floc=0)
内容的提问来源于stack exchange,提问作者George T
相关产品推荐
相关产品推荐

