0

R {fExtremes} を使用して、データ (ベクトル) の GEV 分布の最適なパラメーターを見つけています。しかし、次のエラーメッセージが表示されます

solve.default(fit$hessian) のエラー: Lapack ルーチン dgesv: システムは厳密に特異です: U[1,1] = 0

fit$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

Google ドキュメントでデータセットを更新しました: https://docs.google.com/spreadsheets/d/1IRRpjmdrrJPhNmfiLism_P0efV_Ot4HlEsa6kwMnljc/edit?usp=sharing

4

1 に答える 1