【发布时间】:2018-10-15 10:59:15
【问题描述】:
我正在运行以下 R 代码来查找 Epsilon Skew 指数分布的 MLE:
但我有以下错误以及许多警告。我已经彻底搜索,但没有找到有用的答案。
fn(par, ...) 中的错误:缺少参数“sig”,没有默认值
警告信息:
1: 在 nlminb(start = c(1, 2, 0.5, 2), 目标 = fESEP1, ... : NA/NaN函数评估
2: 在 nlminb(start = c(1, 2, 0.5, 2), objective = fESEP1, ... :
这是我的程序
x <- c(2,5,3,7,3,2,0,2)
fESEP<- function(theta){
th<-theta[1]
sig<-theta[2]
eps<-theta[3]
alp<-theta[4]
a = log(gamma(1+1/alp))
b = ((1+eps)*sig*sqrt(2))^alp
c = ((1-eps)*sig*sqrt(2))^alp
d = log (sig)
y1= (x-th)^alp
y2= (th-x)^alp
ans <- a + d + sum(y1/b)*ifelse(y2 < 0 ,1,0) +
a + d + sum(y2/c)*ifelse( y1>= 0 ,1,0)
return(ans)
}
optim(c(3,2,0.5, 1), fESEP, hessian=TRUE)
nlminb(start=c(1,2,0.5, 2), objective = fESEP,
control=list(abs.tol = 0.00001,iter.max=100,trace=TRUE))
【问题讨论】:
-
我试图清理您的格式,但没有使用该发行版的经验,因此需要查看参考资料以检查代码的准确性。 (似乎是一个非常少的数据集,用于估计具有 4 个参数的分布配置。)
-
分布是
-
我提供的数据集只是一个例子。如果您需要数据集,我可以通过电子邮件发送。我需要你们的帮助。
标签: r