首页 > 解决方案 > 使用 Scipy 在 Python 中将 Weibull 分布转换为直线

问题描述

Weibull 分布的 CDF 为

CDF(x) = 1 − exp[−(x / λ)^k]

CCDF 和我的方法:

CCDF(x) = 1 - CDF(x)
CCDF(x) = 1 - (1 − exp[−(x / λ)^k])
CCDF(x) = exp[−(x / λ)^k]

假设 scale/k 的以下值并取自然对数 ln:

k = 1, 

ln(CCDF) = ln(exp[−(x / λ)^k])
ln(CCDF) = -xλ

这会产生一条斜率为 -λ 的直线。

代码:

x3 = np.linspace(1,15, 1000)
weibull_cdf = scipy.stats.weibull_min.cdf(x3, c = 1, scale = 1)
weibull_ccdf = (1 - weibull_cdf)
weibull_ccdf = np.log(weibull_ccdf)

这个实现可靠吗?更改比例以便 scale/k = 2 会改变实施吗?

标签: pythonscipystatisticsweibull

解决方案


推荐阅读