# Weibull 分布
# 概述
Weibull 分布是一个两参数曲线族。 该分布以 Waloddi Weibull 的名字命名,他将其作为合适的分析工具来模拟材料的断裂强度。 当前的使用还包括可靠性和寿命建模。 就这些目的而言,Weibull 分布比指数分布更灵活,因为指数分布具有恒定的风险函数。
统计工具箱提供了几种使用 Weibull 分布的方法。
指定参数值 (Weibull)来创建概率分布对象 WeibullDistribution。 然后,使用对象函数来评估分布、生成随机数等。
使用具有指定分布参数的分布特定函数(wblcdf、wblpdf、wblinv、wbllike、wblstat、wblfit、wblrnd、wblplot)。 特定于分布的函数可以接受多个 Weibull 分布的参数。
# 参数
统计工具箱函数使用带有这些参数的两参数 Weibull 分布。
| 参数 | 说明 | 范围 |
|---|---|---|
| 比例参数 | ||
| 形状参数 |
标准 Weibull 分布具有单位尺度。
# 参数估计
似然函数是被视为参数函数的概率密度函数 (pdf)。 最大似然估计 (MLE) 是使 x 的固定值的似然函数最大化的参数估计。 Weibull 分布的
要将 Weibull 分布拟合到数据并查找参数估计值,请使用 wblfit。
有关示例,请参阅将 Weibull 分布拟合到数据和估计参数。
# 概率密度函数
概率密度函数 Weibull 分布的 pdf 为
有关示例,请参阅计算 Weibull 分布 pdf。
# 累积分布函数
Weibull 分布的累积分布函数 (cdf) 为
结果 p 是来自具有参数
有关示例,请参阅计算 Weibull 分布 cdf。
# 逆累积分布函数
Weibull 分布的逆 cdf 为
结果 x 是具有参数
# 风险函数
风险函数(瞬时故障率)是 pdf 与 cdf 的补数之比。 如果 f(t) 和 F(t) 是分布的 pdf 和 cdf 则危险率为
有关示例,请参阅比较指数和 Weibull 分布风险函数。
# 示例
# 将 Weibull 分布拟合到数据和估计参数
使用尺度参数值为 0.5 和形状参数值为 2 的 Weibull 分布模拟细丝的拉伸强度数据。
using Random
using TyStatistics
Random.seed!(1234)
strength = wblrnd(0.5,2,100,1);
计算 Weibull 分布参数的 MLE 和置信区间。
param,ci = wblfit(strength)
param = 1×2 Matrix{Float64}:
1.12953 0.419375
ci = 2×2 Matrix{Float64}:
0.69012 0.360662
1.84872 0.487646
ci 的顶行包含置信区间的下限,底行包含置信区间的上限。
# 计算Weibull 分布 pdf
计算并绘制不同尺度 (
using TyPlot
using TyStatistics
x = 0:10/33:30
plot(x, wblpdf.(x, 10, 1),label=raw"$\theta=10,\alpha=1$")
hold("on")
plot(x, wblpdf.(x, 10, 2),label=raw"$\theta=10,\alpha=2$")
plot(x, wblpdf.(x, 10, 4),label=raw"$\theta=10,\alpha=4$")
plot(x, wblpdf.(x, 10, 0.5),label=raw"$\theta=10,\alpha=0.5$")
plot(x, wblpdf.(x, 10, 0.25),label=raw"$\theta=10,\alpha=0.25$")
plot(x, wblpdf.(x, 5, 1),label=raw"$\theta=5,\alpha=1$")
hold("off")
legend()
xlabel("x")
ylabel("pdf")
值
# 计算Weibull 分布 cdf
计算并绘制不同尺度 (
using TyPlot
using TyStatistics
x = 0:10/33:30
plot(x, wblcdf(x, 10, 1),label=raw"$\theta=10,\alpha=1$")
hold("on")
plot(x, wblcdf(x, 10, 2),label=raw"$\theta=10,\alpha=2$")
plot(x, wblcdf(x, 10, 4),label=raw"$\theta=10,\alpha=4$")
plot(x, wblcdf(x, 10, 0.5),label=raw"$\theta=10,\alpha=0.5$")
plot(x, wblcdf(x, 10, 0.25),label=raw"$\theta=10,\alpha=0.25$")
plot(x, wblcdf(x, 5, 1),label=raw"$\theta=5,\alpha=1$")
hold("off")
legend(loc="southeast")
xlabel("x")
ylabel("cdf")
# 比较指数和 Weibull 分布的风险函数
指数分布具有恒定的风险函数,而 Weibull 分布通常不是这种情况。 在这个例子中,威布尔风险率随着年龄的增长而增加(一个合理的假设)。
计算具有尺度参数值 1 和形状参数值 2 的 Weibull 分布的风险函数。
using TyPlot
using TyStatistics
t = 0:0.1:4.5;
h1 =@. wblpdf(t,1,2)/(1-wblcdf(t,1,2));
计算尺度参数值为 1 和形状参数值为 2 的 Weibull 分布的平均值。
mu, = wblstat(1,2)
mu = 0.886226925452758
计算均值为 mu 的指数分布的风险函数。
h2 =@. exppdf(t,mu)/(1-expcdf(t,mu));
在同一轴上绘制两个风险函数。
plot(t,h1,"-",t,h2,"--")
xlabel("Observation")
ylabel("Hazard Rate")
legend(["Weibull","Exponential"],loc = "northwest")
# 另请参阅
WeibullDistribution | wblcdf | wblpdf | wblinv | wbllike | wblstat | wblfit | wblrnd | wblplot