Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
广义Pareto分布MLE码_R_Statistics - Fatal编程技术网

广义Pareto分布MLE码

广义Pareto分布MLE码,r,statistics,R,Statistics,我写了一个函数来计算广义帕累托分布的MLE估计。当我将它用于任何数据时,尽管我会遇到这样的错误 1: In log(beta * ksi) : NaNs produced 2: In nlm(loglik, theta, stepmax = 5000, iterlim = 1000) : NA/Inf replaced by maximum positive value 我想知道是否有人能发现我代码中的任何错误 MLGPD<-function(data){ xi0 <-

我写了一个函数来计算广义帕累托分布的MLE估计。当我将它用于任何数据时,尽管我会遇到这样的错误

1: In log(beta * ksi) : NaNs produced
2: In nlm(loglik, theta, stepmax = 5000, iterlim = 1000) :
  NA/Inf replaced by maximum positive value
我想知道是否有人能发现我代码中的任何错误

MLGPD<-function(data){
    xi0 <- 1
    beta0 <- 360
    theta <- c(xi0, beta0)
    excess <- data
    assign("tmp", excess)
    loglik <- function(theta){
        ksi <- theta[1]
        beta <- theta[2]
        y <- ((tmp - 0.1)/beta)
        f <- ((1/ksi)+1)*sum(log(1+y)) + length(tmp) * log(beta*ksi)
        f
    }
    fit <- nlm(loglik, theta, stepmax = 5000, iterlim= 1000)
    return(fit)
    par.ests <- fit$x
    return(par.ests)
}

#Checking our MLE algorithm works:

rgpd<-function(n,ksi, beta){
    10000+beta*(((1-runif(n, min=0, max=1))^-ksi)-1)
}

rgpd1 <- rgpd(100, 1, 2.5)

MLGPD(rgpd1)

MLGPDUmm,我一看第一件事就跳出来了——你怎么去第二个回程?对不起,最后两行不应该在那里。无论如何,它都不会影响它。看看你分配给tmp或超额的是什么。e、 g.
压头(超额)
。。。然后以同样的方式查看
数据中的内容。检查一下,一切都是应该的。也许可以试试调试工具。