R中的for循环代码中的一些错误(拟合广义Pareto分布)

时间:2016-06-05 16:25:10

标签: r loops model-fitting

我使用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

0 个答案:

没有答案