威布尔分布的置信区间

时间:2013-03-26 15:20:24

标签: r distribution confidence-interval weibull

我有用于执行极值分析(计算回报水平)的风数据。我正在使用 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。

1 个答案:

答案 0 :(得分: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模拟。真正正确的答案是在'scale'-by-'shape'参数空间中更复杂的东西,并且可能最容易通过模拟方法实现,除非你比我更好地掌握理论。