[R] Matrix calculations in R--erroneous?
    Peter Muhlberger 
    peterm at andrew.cmu.edu
       
    Fri Oct  7 18:49:40 CEST 2005
    
    
  
Does anyone know how -log(x) can equal 743 but -log(x+0)=Inf?  That's what
the following stream of calculations suggest:
Browse[2]> -log (   1e-323+yMat2 - yMat1 * logitShape(matrix(parsList$Xs,
nrow = numXs, ncol=numOfCurves), matrix(means, nrow = numXs,
ncol=numOfCurves, byrow=TRUE), matrix(sigmas, nrow = numXs,
ncol=numOfCurves, byrow=TRUE))   )[5,9]
[1] Inf
Yet:
Browse[2]> logitShape(matrix(parsList$Xs, nrow = numXs, ncol=numOfCurves),
matrix(means, nrow = numXs, ncol=numOfCurves, byrow=TRUE), matrix(sigmas,
nrow = numXs, ncol=numOfCurves, byrow=TRUE))[5,9]
[1] 1
So, the logitShape component equals 1.
Browse[2]> yMat1[5,9]
[1] 1
So yMat1[5,9]*logitShape()[5,9]=1
Browse[2]> yMat2[5,9]
[1] 1
So, yMat2[5,9]-yMat1[5,9]*logitShape()[5,9]=0
Browse[2]> -log (   1e-323)
[1] 743.7469
So, -log( 1e-323)=743 while -log( 1e-323+0)=Inf ?
Any idea of a neat way to get around this?  Even if I put in 1e-50 I still
get Inf.  I deliberately included 1e-323 to insure the function didn't go to
infinity.
Peter
    
    
More information about the R-help
mailing list