2

我有用于执行极值分析(计算回报水平)的风数据。我将R与包“evd”、“extRemes”和“ismev”一起使用。

我正在拟合 GEV、Gumbel 和 Weibull 分布,以估计某个时期 T 的回报水平 (RL)。
对于 GEV 和 Gumbel 案例,我可以使用extRemes::return.level()获得 RL 和置信区间功能。

一些代码:

require(ismev)
require(MASS)

data(wind)
x = wind[, 2]
rperiod = 10

fit <- fitdistr(x, 'weibull')
s <- fit$estimate['shape']
b <- fit$estimate['scale']

rlevel <- qweibull(1 - 1/rperiod, shape = s, scale = b)

## CI around rlevel
## ci.rlevel = ??

但是对于 Weibull 案例,我需要一些帮助来生成 CI。

4

1 回答 1

2

我怀疑极其正确的答案是联合置信区域是一个椭圆或一些弯曲的香肠形状,但是您可以使用该函数从拟合对象中提取参数的方差估计,vcov然后构建标准误差,其 +/- 1.96 SE应该提供信息:

> sqrt(vcov(fit)["shape", "shape"])
[1] 0.691422
> sqrt(vcov(fit)["scale", "scale"])
[1] 1.371256

> s +c(-1,1)*sqrt(vcov(fit)["shape", "shape"])
[1] 6.162104 7.544948
> b +c(-1,1)*sqrt(vcov(fit)["scale", "scale"])
[1] 54.46597 57.20848

计算单个参数的 CI 的常用方法是假设正态分布并使用 theta+/- 1.96*SE(theta)。在这种情况下,您有两个参数,因此对这两个参数执行此操作会给您一个“框”,即间隔的 2D 模拟。真正正确的答案将是在“比例”-“形状”参数空间中更复杂的东西,并且可能最容易通过模拟方法实现,除非您对理论的掌握比我更好。

于 2013-03-26T16:44:01.847 回答