优化二项分布,其中计数> 170

时间:2016-01-11 08:55:06

标签: r optimization

当某些值大于170时,如何最小化二项分布。在这种情况下,阶乘函数返回Inf。请看以下两个例子。在第一种情况下,所有事情都可以:

案例1:

        n<-c(100,103,170,100)  
        k<-c(85,86,112,84) 
        DF<-data.frame(n,k)

        BINO<-function(pii,data) {    

          A= log((factorial(n)/ (factorial(k)*factorial(n-k)) ) *(pii^k)*(1-pii)^(n-k) )

          cat( pii, '\n')
          flush.console()
         sum(abs(A))
        }
     library(bbmle)      
     mle2(BINO, start=list(pii=0.1), data=DF)

        Coefficients:
              pii 
        0.7758984 

    Log-likelihood: -19.59 

但是在案例2中,两个计数(226和183)超过170,计算失败。

案例2:

    n<-c(100,103,226,100)  
    k<-c(85,86,183,84) 
    DF<-data.frame(n,k)

    mle2(BINO, start=list(pii=0.1), data=DF)

0.1 
Error in optim(par = 0.1, fn = function (p)  : 
  initial value in 'vmmin' is not finite
In addition: Warning messages:
1: In factorial(n) : value out of range in 'gammafn'
2: In factorial(k) : value out of range in 'gammafn'

0 个答案:

没有答案