Is there a simplest way of choosing starting values in MLE estimation?

I have the following in which I want obtain the MLE estimates and their p-values for the given function and data but I get NA for p-values in the summary. The code is;

library(stats4)
library(bbmle)
library(stats)
library(numDeriv)
library('bbmle')
x<- c(0.55, 0.93, 1.25, 1.36, 1.49, 1.52, 1.58, 1.61, 1.64, 1.68, 1.73, 1.81, 2.00, 0.74 ,1.04, 1.27, 1.39, 1.49, 1.53, 1.59, 1.61, 1.66, 1.68, 1.76, 1.82, 2.01,  0.77, 1.11 ,1.28 ,1.42 ,1.50 ,1.54, 1.60, 1.62, 1.66, 1.69, 1.76, 1.84, 2.24, 0.81, 1.13, 1.29, 1.48, 1.50, 1.55 ,1.61, 1.62, 1.66 ,1.70 ,1.77, 1.84, 0.84, 1.24, 1.30 ,1.48, 1.51, 1.55 ,1.61 ,1.63, 1.67, 1.70, 1.78, 1.89
)

hist(x)

########  Expo Half Logi Kuma Weibull

fEHLKUMW<-function(a,b,alpha,vartheta)
  {
-sum(log(2*a*b*alpha*vartheta*(x^(vartheta-1))* exp(-x^vartheta) *((1-exp(-x^vartheta))^(a-1)) * ((1 - (1 -( 1 - exp(-x^vartheta))^a)^b)^(alpha-1)) * (1- (1 - exp(-x^vartheta))^a )^(-b*(alpha+1))
))
}

EHLKUMW.result<-mle2(fEHLKUMW,hessian = NULL,start=list(a=0.8,b=0.9,alpha=0.9,vartheta=0.2),optimizer="nlminb",lower=0)
summary(EHLKUMW.result)
vcov(EHLKUMW.result)
output2<-vcov(EHLKUMW.result)
1.96*sqrt(diag(output2))
solve(output2)

I tried different starting values and datasets but I still get NAs.


Solution 1:

It appears either the PDF is not formulated correctly or the parameters are not constrained appropriately. The denominator quickly approaches 0 as vartheta gets large if x > 1:

fEHLKUMW(0.8, 0.9, 0.9, 5)
[1] -Inf