我有用于执行极值分析(计算返回水平)的风数据。我使用的R包'evd','extRemes‘和'ismev’。
我对GEV、Gumbel和Weibull分布进行拟合,以估计某一时期的回报水平(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 = ??但是对于威布尔的案子,我需要一些帮助来生成CI。
发布于 2013-03-26 16:44:01
我怀疑非常正确的答案是,联合置信区域是一个椭圆或一些弯曲的香肠形状,但是您可以使用vcov函数从fit对象中提取参数的方差估计,然后构建标准误差,其中+/- 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的方法是假定正态分布,并使用θ+/-1.96*SE(θ)。在这种情况下,您有两个参数,这样两个参数都会给出一个"box",一个间隔的2D模拟。真正正确的答案将是更复杂的‘规模’的‘形状’参数空间,可能是最容易实现的模拟方法,除非你有一个比我更好的理论掌握。
https://stackoverflow.com/questions/15640802
复制相似问题