93354504 wrote:> clotting <- data.frame(u = c(5,10,15,20,30,40,60,80,100), lot1 >
c(118,58,42,35,27,25,21,19,18), lot2 = c(69,35,26,21,18,16,13,12,12));
> lot=c(clotting$lot1,clotting$lot2);
> uu=c(clotting$u,clotting$u);
> x=uu;
> y=lot;
> n=length(y);
> x=cbind(rep(1,n),x);
> c=2;
> neg_loglikehood=function(theta){
> -1*(c*sum(log(x%*%theta))+(c-1)*sum(log(y))-c*sum(y*(x%*%theta)));
> }
> g=glm(lot ~ log(uu), family=Gamma);
> optimization=optim(g$coef,neg_loglikehood)
>
>
>
>
> and got the warning message:
>
> Warning messages:
> 1: In log(x %*% theta) : NaNs produced
> 2: In log(x %*% theta) : NaNs produced
> 3: In log(x %*% theta) : NaNs produced
> 4: In log(x %*% theta) : NaNs produced
> 5: In log(x %*% theta) : NaNs produced
> 6: In log(x %*% theta) : NaNs produced
> 7: In log(x %*% theta) : NaNs produced
> 8: In log(x %*% theta) : NaNs produced
The functions evaluates to negative or zero values during the iterations
of your optimization.
Uwe Ligges
>
> However, everything in the x %*% theta matrix is positive:
>
> x %*% theta
> [,1]
> [1,] 0.01515921
> [2,] 0.01909599
> [3,] 0.02303277
> [4,] 0.02696955
> [5,] 0.03484312
> [6,] 0.04271668
> [7,] 0.05846380
> [8,] 0.07421093
> [9,] 0.08995805
> [10,] 0.01515921
> [11,] 0.01909599
> [12,] 0.02303277
> [13,] 0.02696955
> [14,] 0.03484312
> [15,] 0.04271668
> [16,] 0.05846380
> [17,] 0.07421093
> [18,] 0.08995805
>
> and it also gave me the minimizer below:
>
> theta=optimization$par
> theta
> (Intercept) log(uu)
> 0.0112224301 0.0007873562
>
> Can anyone tell me why the I that warning message?
> Thank you very much.
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide
http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.