2026a

# Weibull 分布

# 概述


Weibull 分布是一个两参数曲线族。 该分布以 Waloddi Weibull 的名字命名,他将其作为合适的分析工具来模拟材料的断裂强度。 当前的使用还包括可靠性和寿命建模。 就这些目的而言,Weibull 分布比指数分布更灵活,因为指数分布具有恒定的风险函数。

统计工具箱提供了几种使用 Weibull 分布的方法。

  • 指定参数值 (Weibull)来创建概率分布对象 WeibullDistribution。 然后,使用对象函数来评估分布、生成随机数等。

  • 使用具有指定分布参数的分布特定函数(wblcdfwblpdfwblinvwbllikewblstatwblfitwblrndwblplot)。 特定于分布的函数可以接受多个 Weibull 分布的参数。

  • 使用具有指定分布名称("Weibull")和参数的通用分布函数(cdfpdfrandom)。

# 参数

统计工具箱函数使用带有这些参数的两参数 Weibull 分布。

参数 说明 范围
比例参数
形状参数

标准 Weibull 分布具有单位尺度。

# 参数估计

似然函数是被视为参数函数的概率密度函数 (pdf)。 最大似然估计 (MLE) 是使 x 的固定值的似然函数最大化的参数估计。 Weibull 分布的 的最大似然估计量是联立方程组的解

是参数 的无偏估计量。

要将 Weibull 分布拟合到数据并查找参数估计值,请使用 wblfit

有关示例,请参阅将 Weibull 分布拟合到数据和估计参数

# 概率密度函数

概率密度函数 Weibull 分布的 pdf 为

有关示例,请参阅计算 Weibull 分布 pdf

# 累积分布函数

Weibull 分布的累积分布函数 (cdf) 为

结果 p 是来自具有参数 的 Weibull 分布的单个观测值落入区间 [0,x] 的概率。

有关示例,请参阅计算 Weibull 分布 cdf

# 逆累积分布函数

Weibull 分布的逆 cdf 为

结果 x 是具有参数 的 Weibull 分布的观测值落在范围 [0,x] 内且概率为 p 的值。

# 风险函数

风险函数(瞬时故障率)是 pdf 与 cdf 的补数之比。 如果 f(t)F(t) 是分布的 pdf 和 cdf 则危险率为 . 用指数分布的 pdf 和 cdf 代替上面的 f(t) 和 F(t) 得到函数

有关示例,请参阅比较指数和 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

计算并绘制不同尺度 () 和 形状 () 参数值的 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")

导致指数分布。 的值在 x 接近 0 时具有接近无穷大的密度。 的值在 x 接近 1 时具有接近 0 的密度。

# 计算Weibull 分布 cdf

计算并绘制不同尺度 () 和 形状 () 参数值的 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