Matlab中极值I型分布(Gumbel分布)的evcdf和evpdf及evinv函数

本文详细介绍了在MATLAB中如何正确使用极值I型分布(Gumbel分布)的相关函数evpdf、evcdf及evinv,并通过实例演示了如何计算分布的累积概率FQ(150)和密度函数fQ(150)。

此文回答

MATLAB中,极值I型分布(Gumbel)的函数evpdf和evcdf要如何使用?




进行概率运算有用到最大值型的极值I型分布(Gumbel分布),此分布函数表达式相当复杂,如下所示





所以回答前面说的问题,mu和sigma是随机变量的均值和标准差,但并不是Matlab中的参数,Matlab里参数是分布函数和密度函数中的u和alpha。

在Matlab里有evcdf、evpdf、evinv分别表示Gumble分布的累计函数、密度函数和逆函数,和上文列出的表达式不同的是,由于Matlab里这三个函数是计算最小值型极值I型分布的。所以在调用函数时应当注意参数。
首先看极值统计学中的对称性原理:

所以,evcdf等函数应参照下图等式右边使用!

下面以前文里的问题为例说明。
书上题目:The variable Q follows an extreme Type I distribution with mu=100 and sigma=12.
Calculate FQ(150) and fQ(150).
书上答案是:FQ(150)=0.997  fQ(150)=2.86e-4.

先求-u和1/alpha

mu=100;sigma=12;
aEv=sqrt(6)*sigma/pi; <span style="white-space:pre">	</span>%aEv表示1/alpha
uEv=-psi(1)*aEv-mu;<span style="white-space:pre">		</span>%uEv表示-u,-psi(1)表示欧拉常数
FQ=1-evcdf(-150,uEv,aEv)
FQ =


    0.9973
fQ=evpdf(-150,uEv,aEv)


fQ =


  2.8589e-004

 

同理,evinv函数利用形式也稍有不同。
p=1-evcdf(-x,uEv,aEv);

x=-evinv(1-p,uEv,aEv);



### 极值I分布到标准正态分布的转换 为了将极值I分布(也称为Gumbel分布)转换为标准正态分布,可以通过累积分布函数(CDF)映射实现这一目标。具体来说,如果 \(X\) 是服从极值I分布的随机变量,则其CDF可表示为: \[ F_X(x; \mu, \beta) = e^{-e^{-(x-\mu)/\beta}} \] 其中,\( \mu \) \( \beta (\beta>0) \) 分别代表位置参数尺度参数[^1]。 要将此分布转换为标准正态分布,首先计算给定数据点对应的累计概率值,即通过上述公式得到的概率;接着使用标准正态分布的逆累积分布函数 (inverse CDF 或 quantile function),通常记作 \( \Phi^{-1}() \),来获得相应的标准化分数(z-score): \[ Z = \Phi^{-1}(F_X(x)) = \Phi^{-1}\left(e^{-e^{-(x-\mu)/\beta}}\right)\] 这里 \(Z\) 就是从原始极值I分布变换而来并遵循标准正态分布的新变量[^2]。 对于实际操作中的数值处理,可以采用编程方式完成这种转换。下面给出Python代码片段作为示例: ```python import numpy as np from scipy.stats import norm, gumbel_r def convert_gumbel_to_normal(gumbel_samples, mu, beta): """ Convert samples from Gumbel distribution to standard normal. Parameters: gumbel_samples : array_like Samples drawn from a Gumbel distribution with parameters `mu` and `beta`. mu : float Location parameter of the input Gumbel distribution. beta : float (>0) Scale parameter of the input Gumbel distribution. Returns: ndarray Converted values following N(0, 1). """ cdf_values = gumbel_r.cdf(gumbel_samples, loc=mu, scale=beta) z_scores = norm.ppf(cdf_values) return z_scores ```
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值