python - 使用 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 会改变实施吗?
解决方案
推荐阅读
- javascript - 如何在缩放时保持 div 边框大小相同
- scala - 在 Spark 中运行 HQL 文件并传递参数
- c - 如何判断 fd 是指伪终端的内部还是外部?
- swift - 如何从其他类访问相机代码并在以后重用?
- python - 更新熊猫后熊猫to_sql失败
- scichart - SciChart.ColumnChart - 为每个刻度在轴上绘制值
- c++ - C++ 常量静态 char* 数组
- gradle - Repeat gradle build with different dependency versions
- javascript - Websocket on(“消息”)不起作用
- php - 空密码字段启用成功的 LDAP 绑定