**Only for Poisson, Censored data, fitdistrplus*** the function mle failed to estimat

#1
Hello All,

I am getting the following error and it only happens for interval censoring, It does not happen for left and right censoring, and it also does not happen for exp, norm, lnorm, weibull,... I have to say I do not have any idea,
> max(z)
[1] 39011
> min(z)
[1] 1
>
I am using library(fitdistrplus). I also passed the start param for optim, but no success as suggested before in some forums earlier.
I have provided all scenarios (the first two ones work, the 3rd is my problem, and the 4th also works).
And No missing value. I am getting some NAN form gamma also, but I do not know the reason.

I appreciate any help.


Kind regards,
Mohsen

------works
df= read.csv ("E:/mydata/Motorway-Urban/hour/PathAll_TWOMONTH _BothDirection715_2.csv")
z=rep(df$timenum,time=df$count)
y<-z
ycens <- data.frame(left=y,right=y)
max=27219
ct=max
for(i in max:28666 )
{
ycens$right[ct]=NA
ct=ct+1
}
ct=1;
for(i in 1:28666 )
{
if( ycens$left<3)
{
ycens$left[ct]=NA
}
if( i>max)
{
ycens$left[ct]=500
}
ct=ct+1
}
fitlnc<-fitdistcens(ycens,"pois")
> fitlnc
Fitting of the distribution ' pois ' on censored data by maximum likelihood
Parameters:
estimate
lambda 93.34093

-----------------Works method 2--------------
z=rep(df$timenum,time=df$count)
> y<-z
>
> ycens <- data.frame(left=y,right=y)
> max=27219
> ct=max
> for(i in max:28666 )
+ {
+ ycens$right[ct]=NA
+
+ ct=ct+1
+
+ }
> ct=1;
> for(i in 1:28666 )
+ {
+
+ if( ycens$left<3)
+ {
+ ycens$left[ct]=NA
+
+ }
+ ct=ct+1
+ }
> fitlnc<-fitdistcens(ycens,"pois")
> fitlnc
Fitting of the distribution ' pois ' on censored data by maximum likelihood
Parameters:
estimate
lambda 142.0141

==================PROBLEEEEEEEEEEMMMM======================
z=rep(df$timenum,time=df$count)
y<-z

ycens <- data.frame(left=y,right=y)
max=27219
ct=max
for(i in max:28666 )
{
ycens$right[ct]=y[ct]
ycens$left[ct]=500
ct=ct+1

}
ct=1;
for(i in 1:28666 )
{

if( ycens$left<4)
{
ycens$left[ct]=1

} ct=ct+1
}
> fitlnc<-fitdistcens(ycens,"pois")
[1] "Error in optim(par = vstart, fn = fnobjcens, fix.arg = fix.arg, rcens = rcens, : \n initial value in 'vmmin' is not finite\n"
attr(,"class")
[1] "try-error"
attr(,"condition")
<simpleError in optim(par = vstart, fn = fnobjcens, fix.arg = fix.arg, rcens = rcens, lcens = lcens, icens = icens, ncens = ncens, ddistnam = ddistname, pdistnam = pdistname, hessian = TRUE, method = meth, lower = lower, upper = upper, ...): initial value in 'vmmin' is not finite>
Error in fitdistcens(ycens, "pois") :
the function mle failed to estimate the parameters,
with the error code 100
====================Works=========================
z=rep(df$timenum,time=df$count)
y<-z

ycens <- data.frame(left=y,right=y)
max=27219
ct=max
for(i in max:28666 )
{
ycens$right[ct]=y[ct]
ycens$left[ct]=500
ct=ct+1

}
ct=1;
for(i in 1:28666 )
{

if( ycens$left<4)
{
ycens$left[ct]=1

}
ct=ct+1
}

fitlnc<-fitdistcens(ycens,"lnorm")
fitlnc<-fitdistcens(ycens,"exp")
> fitlnc<-fitdistcens(ycens,"gamma")
There were 12 warnings (use warnings() to see them)
> warnings()
Warning messages:
1: In dgamma(x = c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ... : NaNs produced
2: In pgamma(q = c(2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, ... : NaNs produced
3: In pgamma(q = c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ... : NaNs produced
4: In dgamma(x = c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ... : NaNs produced
5: In pgamma(q = c(2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, ... : NaNs produced
6: In pgamma(q = c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ... : NaNs produced
7: In dgamma(x = c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ... : NaNs produced
8: In pgamma(q = c(2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, ... : NaNs produced
9: In pgamma(q = c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ... : NaNs produced
10: In dgamma(x = c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ... : NaNs produced
11: In pgamma(q = c(2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, ... : NaNs produced
12: In pgamma(q = c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ... : NaNs produced
 
#2
Re: **Only for Poisson, Censored data, fitdistrplus*** the function mle failed to est

A reproducible example would make it more clear.

(Also, please use code tags. Highlight and click #)
 
#3
Re: **Only for Poisson, Censored data, fitdistrplus*** the function mle failed to est

Hi GretaGarbo,

Thanks for your reply. Please find the data in my Dropbox.
I also did the changes that you mentioned.

Many thanks
Mohsen
------works
Code:
df= read.csv ("E:/mydata/Motorway-Urban/hour/PathAll_TWOMONTH _BothDirection715_2.csv") 
z=rep(df$timenum,time=df$count) 
y<-z 
ycens <- data.frame(left=y,right=y) 
max=27219 
ct=max 
for(i in max:28666 ) 
{ 
ycens$right[ct]=NA 
ct=ct+1 
} 
ct=1; 
for(i in 1:28666 ) 
{ 
if( ycens$left[i]<3) 
{ 
ycens$left[ct]=NA 
} 
if( i>max) 
{ 
ycens$left[ct]=500 
} 
ct=ct+1 
} 
fitlnc<-fitdistcens(ycens,"pois") 
 fitlnc
Fitting of the distribution ' pois ' on censored data by maximum likelihood
Parameters:
estimate
lambda 93.34093
-----------------Works method 2--------------
Code:
z=rep(df$timenum,time=df$count) 
 y<-z 
 
 ycens <- data.frame(left=y,right=y) 
 max=27219 
 ct=max 
 for(i in max:28666 ) 
{ 
 ycens$right[ct]=NA 

 ct=ct+1 
 
 } 
 ct=1; 
 for(i in 1:28666 ) 
 { 
 
 if( ycens$left[i]<3) 
 { 
 ycens$left[ct]=NA 
 
 } 
 ct=ct+1 
 } 
 fitlnc<-fitdistcens(ycens,"pois") 
 fitlnc
Fitting of the distribution ' pois ' on censored data by maximum likelihood
Parameters:
estimate
lambda 142.0141

==================PROBLEEEEEEEEEEMMMM======================
Code:
z=rep(df$timenum,time=df$count) 
y<-z 

ycens <- data.frame(left=y,right=y) 
max=27219 
ct=max 
for(i in max:28666 ) 
{ 
ycens$right[ct]=y[ct] 
ycens$left[ct]=500 
ct=ct+1 

} 
ct=1; 
for(i in 1:28666 ) 
{ 

if( ycens$left[i]<4) 
{ 
ycens$left[ct]=1 

} ct=ct+1 
} 
 fitlnc<-fitdistcens(ycens,"pois")
[1] "Error in optim(par = vstart, fn = fnobjcens, fix.arg = fix.arg, rcens = rcens, : \n initial value in 'vmmin' is not finite\n"
attr(,"class")
[1] "try-error"
attr(,"condition")
<simpleError in optim(par = vstart, fn = fnobjcens, fix.arg = fix.arg, rcens = rcens, lcens = lcens, icens = icens, ncens = ncens, ddistnam = ddistname, pdistnam = pdistname, hessian = TRUE, method = meth, lower = lower, upper = upper, ...): initial value in 'vmmin' is not finite>
Error in fitdistcens(ycens, "pois") :
the function mle failed to estimate the parameters,
with the error code 100
====================Works=========================
Code:
z=rep(df$timenum,time=df$count) 
y<-z 

ycens <- data.frame(left=y,right=y) 
max=27219 
ct=max 
for(i in max:28666 ) 
{ 
ycens$right[ct]=y[ct] 
ycens$left[ct]=500 
ct=ct+1 

} 
ct=1; 
for(i in 1:28666 ) 
{ 

if( ycens$left[i]<4) 
{ 
ycens$left[ct]=1 

} 
ct=ct+1 
} 

fitlnc<-fitdistcens(ycens,"lnorm") 
fitlnc<-fitdistcens(ycens,"exp") 
 fitlnc<-fitdistcens(ycens,"gamma")
There were 12 warnings (use warnings() to see them) 
warnings()
Warning messages:
1: In dgamma(x = c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ... : NaNs produced
2: In pgamma(q = c(2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, ... : NaNs produced
3: In pgamma(q = c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ... : NaNs produced
4: In dgamma(x = c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ... : NaNs produced
5: In pgamma(q = c(2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, ... : NaNs produced
6: In pgamma(q = c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ... : NaNs produced
7: In dgamma(x = c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ... : NaNs produced
8: In pgamma(q = c(2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, ... : NaNs produced
9: In pgamma(q = c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ... : NaNs produced
10: In dgamma(x = c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ... : NaNs produced
11: In pgamma(q = c(2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, ... : NaNs produced
12: In pgamma(q = c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ... : NaNs produced