我使用gpd
包中的evir
命令将GPD拟合到一些单变量变量。作为一个双参数分配系列,如果我运行
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]
}
你可以看到程序是一样的;我估计xi使用超过1000个观测值的超过95%分位数(因此50个数据点),并且我想要3345个估计值(从1-1000到3345-4344)。但是,我收到以下错误:
optim中的错误(theta,negloglik,hessian = TRUE,...,tmp = excess): valore non finito fornito da optim
最后一句话可以翻译为“由非优秀提供的价值”。
这有什么问题,即为什么它适用于给定的观察(例如1:1000)而不是循环示例?我该如何解决这个问题?
如果有人想尝试我已经分享了z_b的数据:https://www.dropbox.com/s/fbg04thvvb6x5d8/zb.txt?dl=0