【发布时间】:2016-12-30 20:45:53
【问题描述】:
我正在使用 R {fExtremes} 为我的数据(向量)找到 GEV 分布的最佳参数。但收到以下错误消息
solve.default(fit$hessian) 中的错误:Lapack 例程 dgesv:系统完全是奇异的:U[1,1] = 0
我回溯到fit$hessian,发现我的hessian矩阵是一个奇异矩阵,所有元素都是0。 gevFit() 的源代码 (https://github.com/cran/fExtremes/blob/master/R/GevFit.R) 显示 fit$hessian 是由 optim() 计算的。输出参数与初始参数的值完全相同。我想知道导致此问题的数据可能是什么问题?我在这里复制了我的代码
> min(sample);
[1] 5.240909
> max(sample)
[1] 175.8677
> length(sample)
[1] 6789
> mean(sample)
[1] 78.04107
>para<-gevFit(sample, type = "mle")
Error in solve.default(fit$hessian) :
Lapack routine dgesv: system is exactly singular: U[1,1] = 0
fit = optim(theta, .gumLLH, hessian = TRUE, ..., tmp = data)
> fit
$par
xi -0.3129225
mu 72.5542497
beta 16.4450897
$value
[1] 1e+06
$counts
function gradient
4 NA
$convergence
[1] 0
$message
NULL
$hessian
xi mu beta
xi 0 0 0
mu 0 0 0
beta 0 0 0
我在谷歌文档上更新了我的数据集: https://docs.google.com/spreadsheets/d/1IRRpjmdrrJPhNmfiLism_P0efV_Ot4HlEsa6kwMnljc/edit?usp=sharing
【问题讨论】:
-
很难说出了什么问题,因为你的例子是不可重现的:请看这里。 stackoverflow.com/questions/5963269/… 失败可能是由于您的
sample数据集的特定特征(例如,重复值);如果您不发布至少一部分数据,或者可能是出现问题的不同数据集,我将无能为力。 -
嗨,我在这里更新了我的数据!
标签: r math optimization hessian mle