我正在使用包中的gpd
命令将 GPD 拟合到一些单变量变量evir
。作为一个双参数分布系列,如果我运行
gpd(z_b[1:1000], threshold=quantile(z_b[1:1000],0.95), method="ml", information="expected")$par.ests[1]
我获得了第一个参数,即观察 1 到 1000 的形状参数 xi。
由于我想为 xi 开发一个时间序列模型,因此我想提取整个系列的参数 xi(总共 4344 个观察值)。我的尝试:
xi_b <- array(dim=c(3345,1))
for (i in 1:3345){
xi_b[i]=gpd(z_b[i:i+999], threshold=quantile(z_b[i:i+999], 0.95), method="ml", information="expected")$par.ests[1]
}
如您所见,程序是相同的;我使用超过 95% 的分位数超过 1000 个观测值(所以 50 个数据点)来估计 xi,并且我想要 3345 个估计值(从 1-1000 到 3345-4344)。但是,我收到以下错误:
优化错误(theta, negloglik, hessian = TRUE, ..., tmp = extra):valore non finito fornito da optim
最后一句话可以翻译为“优化提供的价值不是有限的”。
这有什么问题,即为什么它适用于给定的观察结果(例如 1:1000)但不适用于循环示例?我怎样才能解决这个问题?
如果有人想尝试,我已经分享了 z_b 的数据:https ://www.dropbox.com/s/fbg04thvvb6x5d8/zb.txt?dl=0