韦伯分布(Weibull)参数矩估计MATLAB实现

news/2024/10/21 14:30:12/

韦伯分布(Weibull)参数矩估计MATLAB实现

二参数韦伯分布概率密度函数

f ( x ) = β η ( x η ) β − 1 e − ( x η ) β , β > 0 , η > 0 , x ≥ γ ≥ 0 f(x)=\frac{\beta}{\eta}\left(\frac{x}{\eta}\right)^{\beta-1} e^{-\left(\frac{x}{\eta}\right)^{\beta}}, \beta>0, \eta>0, x \geq \gamma \geq 0 f(x)=ηβ(ηx)β1e(ηx)β,β>0,η>0,xγ0

其中, β \beta β是形状参数, η \eta η是尺度参数。

β 和 η \beta和\eta βη的矩估计

1. Weibull分布的k阶矩:

μ k = ( 1 η β ) − k β Γ ( 1 + k β ) \mu_{k}=\left(\frac{1}{\eta^{\beta}}\right)^{-\frac{k}{\beta}} \Gamma\left(1+\frac{k}{\beta}\right) μk=(ηβ1)βkΓ(1+βk)

其中, Γ \Gamma Γ是gamma函数:
Γ ( s ) = ∫ 0 ∞ x s − 1 e − x d x , ( s > 0 ) \Gamma(s)=\int_{0}^{\infty} x^{s-1} e^{-x} d x,(s>0) Γ(s)=0xs1exdx,(s>0)
推导过程:
E X k = ∫ 0 ∞ x k ⋅ β η β x β − 1 e − ( x n ) β d x = ∫ 0 ∞ β η k ( x η ) k + β − 1 e − ( x n ) β d ( x η ) = ∫ 0 ∞ η k ( x η ) k e − ( x n ) β d ( x η ) β = ∫ 0 ∞ η k x k β e − x d x = η k Γ ( k β + 1 ) \begin{array}{l} E X^{k}=\int_{0}^{\infty} x^{k} \cdot \frac{\beta}{\eta^{\beta}} x^{\beta-1} e^{-\left(\frac{x}{n}\right)^{\beta}} d x \\ =\int_{0}^{\infty} \beta \eta^{k}\left(\frac{x}{\eta}\right)^{k+\beta-1} e^{-\left(\frac{x}{n}\right)^{\beta}} d\left(\frac{x}{\eta}\right) \\ =\int_{0}^{\infty} \eta^{k}\left(\frac{x}{\eta}\right)^{k} e^{-\left(\frac{x}{n}\right)^{\beta}} d\left(\frac{x}{\eta}\right)^{\beta} \\ =\int_{0}^{\infty} \eta^{k} x^{\frac{k}{\beta}} e^{-x} d x \\ =\eta^{k} \Gamma\left(\frac{k}{\beta}+1\right) \end{array} EXk=0xkηββxβ1e(nx)βdx=0βηk(ηx)k+β1e(nx)βd(ηx)=0ηk(ηx)ke(nx)βd(ηx)β=0ηkxβkexdx=ηkΓ(βk+1)

2. 因此可以计算出一阶矩和二阶矩

m 1 = μ ^ k = ( 1 η ) 1 β Γ ( 1 + 1 β ) m 2 = μ ^ k 2 + σ ^ k 2 = [ 1 η ] 2 n { Γ ( 1 + 2 β ) − [ Γ ( 1 + 1 β ) ] 2 } \begin{aligned} m_{1} &=\hat{\mu}_{k}=\left(\frac{1}{\eta}\right)^{\frac{1}{\beta}} \Gamma\left(1+\frac{1}{\beta}\right) \\ m_{2}=\hat{\mu}_{k}^{2}+\hat{\sigma}_{k}^{2} &=\left[\frac{1}{\eta}\right]^{\frac{2}{n}}\left\{\Gamma\left(1+\frac{2}{\beta}\right)-\left[\Gamma\left(1+\frac{1}{\beta}\right)\right]^{2}\right\} \end{aligned} m1m2=μ^k2+σ^k2=μ^k=(η1)β1Γ(1+β1)=[η1]n2{Γ(1+β2)[Γ(1+β1)]2}

让m2除以m1的平方,我们可以得到:
σ ^ k 2 μ ^ k 2 = Γ ( 1 + 2 β ) − Γ 2 ( 1 + 1 β ) Γ 2 ( 1 + 1 β ) \frac{\hat{\sigma}_{k}^{2}}{\hat{\mu}_{k}^{2}}=\frac{\Gamma\left(1+\frac{2}{\beta}\right)-\Gamma^{2}\left(1+\frac{1}{\beta}\right)}{\Gamma^{2}\left(1+\frac{1}{\beta}\right)} μ^k2σ^k2=Γ2(1+β1)Γ(1+β2)Γ2(1+β1)
这正好是变异系数的平方,上式开方就是变异系数:
C V = Γ ( 1 + 2 β ) − Γ 2 ( 1 + 1 β ) Γ ( 1 + 1 β ) C V=\frac{\sqrt{\Gamma\left(1+\frac{2}{\beta}\right)-\Gamma^{2}\left(1+\frac{1}{\beta}\right)}}{\Gamma\left(1+\frac{1}{\beta}\right)} CV=Γ(1+β1)Γ(1+β2)Γ2(1+β1)

3. 我们可以借助变异系数CV来估计 β \beta β

  1. 首先我们定义一组候选 β \beta β,如 { β ∣ 0.1 < β < 10 } \{\beta|0.1<\beta<10\} {β0.1<β<10}的数组,根据这一系列候选 β \beta β计算出对应的 C V CV CV数组
  2. 然后根据数据的均值和方差计算数据的变异系数 C V ^ \hat{CV} CV^
  3. 找出 C V CV CV数组中和 C V ^ \hat{CV} CV^最接近的值,其对应的 β \beta β就是我们需要的估计值

4. 尺度参数 η \eta η可以利用下面的公式估计

η ^ = { x ˉ / Γ [ ( 1 / β ^ ) + 1 ] } \hat{\eta}=\{\bar{x} / \Gamma[(1 / \hat{\beta})+1]\} η^={xˉ/Γ[(1/β^)+1]}

其中 x ˉ \bar{x} xˉ是数据的均值。
下方参考文献给出尺度参数的计算公式如下:
η ^ = { x ˉ / Γ [ ( 1 / β ^ ) + 1 ] } β ˙ \hat{\eta}=\{\bar{x} / \Gamma[(1 / \hat{\beta})+1]\}^{\dot{\beta}} η^={xˉ/Γ[(1/β^)+1]}β˙
这应该是一种笔误,在实际测试时按照上述公式计算的不对,翻阅其他文献(如这篇)是没有指数项的。

MATLAB实现

function [beta,eta]=estimateweibullMOM(vec)
beta_vec=0.01:0.001:10;
g1=gamma(1+2./beta_vec);
g2=gamma(1+1./beta_vec);
cv=sqrt(g1-g2.^2)./g2;
mu=mean(vec);
cv_es=std(vec)/mean(vec);
[min_difference, array_position] = min(abs(cv - cv_es));
beta=beta_vec(array_position);
eta=(mu/gamma(1/beta+1));
end

代码测试:
使用MATLAB的wblrnd(η,β,10000,1)产生测试数据,使用上述方法进行参数估计。

βηβ(估计值)η(估计值)
423.97102.0077
131.00403.0231
0.40.50.41000.5440

参考文献

AlFawzan, Ma. Methods for estimating the parameters of the Weibull distribution[J]. Fawzan, 2000(10).


http://www.ppmy.cn/news/231436.html

相关文章

Tensorflow 保存卷积神经网络模型参数

Tensorflow 保存卷积神经网络模型参数 Tensorflow 保存卷积层参数 Tensorflow 保存卷积层参数 import numpy as np import tensorflow as tf import matplotlib.pyplot as pltfrom tensorflow.examples.tutorials.mnist import input_data print ("packs loaded")pa…

hot-S22和X参数的原理(转)

什么是 X 参数 - X Parameters 概念 在微波射频电路设计中&#xff0c;S 参数是最被广泛使用的、描述射频与微波网络特性的参量。S 参数定义了两(多)端口网络输入和输出的关系&#xff1a; S 参数非常适用进行射频、微波网络级联分析&#xff1b;根据 S 参数的定义&#xff0c…

【MDT】iPhone XS 系列屏幕素质报告

iPhone XS 与 iPhone XS Max 均采用了 Apple 官方称之为&#xff1a;「超视网膜高清显示屏 」的新一代 OLED 屏幕&#xff0c;除了大小不同以及分别率分别为 2436 x 1125 和 2688 x 1242 之外&#xff0c;其他参数都没有差别&#xff0c;均为 458 PPI, P3 色域。 1/3 色域测试 …

Python函数参数传递,返回值

文章目录 位置实参传递&#xff0c;即一对一传递&#xff0c;传递顺序不能乱关键字实参传递&#xff0c;f(arg1...,arg2...,...)默认值&#xff0c;传递传递任意数量的实参使用任意数量的关键字实参返回值 返回字典传递列表&#xff0c;可以在函数中修改列表&#xff0c;以及如…

Mnist数据集单隐层BP神经网络参数调优

本次对mnist数据集采用单隐层的BP神经网络&#xff0c;在对参数初始化&#xff0c;激活函数&#xff0c;学习率&#xff0c;正则系数选择&#xff0c;隐层神经元数量选择&#xff0c;随机采样样本数量进行调优后&#xff0c;模型在测试集上的正确率可以达到98%。 1、 参数初始…

[吴恩达机器学习笔记]13聚类K-means

13.聚类 觉得有用的话,欢迎一起讨论相互学习~ 吴恩达老师课程原地址 13.1无监督学习简介 从监督学习到无监督学习 在一个典型的监督学习中&#xff0c;我们有一个有标签的训练集&#xff0c;我们的目标是找到能够区分正样本和负样本的决策边界&#xff0c;在监督学习中&…

【机器学习笔记】——k近邻(k-nearest neighbor,k-NN)

目 录 1 k-NN 1.1 基本思路 1.1.1 距离度量1.1.2 k值的选择1.1.3 决策1.2 基于kd树的k-NN算法 1.2.1 构造kd树1.2.2 搜索kd树&#xff08;基于kd树的k-NN算法&#xff09; 1.2.2.1 基于kd树的最近邻算法1.2.2.2 基于kd树的k-NN算法1.3 k-NN的优缺点 1.3.1 优点1.3.2 缺点2 算法…

第十五课.K均值算法

目录 K均值算法原理K均值算法的改进&#xff1a;K-meansnumpy实现K-means K均值算法原理 K均值&#xff08;K-means&#xff09;算法属于无监督学习中的聚类算法&#xff1b;聚类是根据样本特征向量之间的相似度或距离&#xff0c;将样本数据划分为若干个样本子集&#xff0c;…