[R] Computational problems in R

Robin Hankin rksh1 at cam.ac.uk
Tue Oct 28 08:58:27 CET 2008


Hello.

The Brobdingnag package uses that identity for a logarithmic
representation and also has a hack for negative numbers.


HTH

rksh



A.Noufaily wrote:
>  
> Many thanks for your suggestions...
>
> I am still checking which one is the most useful for my simulations.
>
> Concerning using logs, this might be very helpful, but I am not sure if
> I can use the following:
> A+B = A*(1 + B/A)
>     = exp(log(A) + log(1 + B/A))
> because unfortunately B can be negative.
> However, I might still use logs in case (1 + B/A)>0.
>
> Regards,
>  
> Amy
>
> -----Original Message-----
> From: Duncan Murdoch [mailto:murdoch at stats.uwo.ca] 
> Sent: Saturday, October 25, 2008 11:36 AM
> To: Steven McKinney
> Cc: A.Noufaily; r-help at r-project.org
> Subject: Re: [R] Computational problems in R
>
> On 24/10/2008 9:50 PM, Steven McKinney wrote:
>   
>> I suspect there's a deeper issue here.
>> sum(exp(yi)) when large yi occur is
>> problematic.  exp(yi) for yi>710 is
>> just a huge number, and summing additional values only makes the 
>> overall sum larger as all components of the summation are positive.
>> There's no way around that.
>>     
>
> Sure there is, and you quoted it below.  Work on a log scale.  The log
> of exp(yi) is yi, and it sounds as though the yi values are manageable.
>
> You might end up knowing that the log of the final answer is 20000 and
> not be able to evaluate exp(20000) in R, but you still know that the
> answer is exp(20000).
>
> Duncan Murdoch
>   
>> You could try this with Robin Hankins'
>> package "brobdingnag" which can handle bunches of bizarrely large 
>> numbers.
>>
>> What kind of process are you studying?
>> What kind of process generates values
>> such as exp(8/0.01) when other values
>> are much smaller?  Are these outliers
>> in an otherwise well-behaved
>> data set?  Perhaps then they need
>> to be set aside and investigated
>> separately, etc.
>>
>>
>> Steven McKinney
>>
>> Statistician
>> Molecular Oncology and Breast Cancer Program British Columbia Cancer 
>> Research Centre
>>
>> email: smckinney +at+ bccrc +dot+ ca
>>
>> tel: 604-675-8000 x7561
>>
>> BCCRC
>> Molecular Oncology
>> 675 West 10th Ave, Floor 4
>> Vancouver B.C. 
>> V5Z 1L3
>> Canada
>>
>>
>>
>>
>> -----Original Message-----
>> From: r-help-bounces at r-project.org on behalf of Duncan Murdoch
>> Sent: Fri 10/24/2008 4:04 PM
>> To: A.Noufaily
>> Cc: r-help at r-project.org
>> Subject: Re: [R] Computational problems in R
>>  
>> On 24/10/2008 12:42 PM, A.Noufaily wrote:
>>     
>>> Dear all,
>>>
>>> I would be grateful if anyone can help me with the following:
>>>
>>> My aim is to compute explicitely the sum S=A+B where 
>>> A=sum(exp(c_i/d)), i=1,...,n; B, c_i, and d are real numbers with 
>>> -Inf<B,c_i<+Inf; and d>0.
>>> The problem is that when c_i/d >710 (for some i) R is setting
>>> exp(c_i/d) to be equal to +Inf and hence the whole summation S.
>>> So in simple cases where for example c_i=8 (for some i), and d=0.01 
>>> the whole summation is turning out to be infinite.
>>> Is there a way to get round that in R?
>>> Can anyone suggest any computational trick to calculate S when 
>>> c_i/d>710 (for some i)?
>>>       
>> Work on a log scale.  Use the identity that
>>
>> A+B = A*(1 + B/A)
>>      = exp(log(A) + log(1 + B/A))
>>
>> (where you chose A to be the biggest term in the sum).
>>
>> Duncan Murdoch
>>
>>     
>>> Any suggestions would be much appreciated.
>>>
>>> Regards,
>>>
>>> Amy
>>>
>>>
>>>
>>>
>>>
>>> ---------------------------------
>>> The Open University is incorporated by Royal Charter (RC 000391), an
>>>       
> exempt charity in England & Wales and a charity registered in Scotland
> (SC 038302).
>   
>>> 	[[alternative HTML version deleted]]
>>>
>>> ______________________________________________
>>> 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.
>>>       
>> ______________________________________________
>> 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.
>>
>> ______________________________________________
>> 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.
>>     
>
>
> ---------------------------------
> The Open University is incorporated by Royal Charter (RC 000391), an exempt charity in England & Wales and a charity registered in Scotland (SC 038302).
>
> ______________________________________________
> 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.
>



More information about the R-help mailing list