[R] R - need more memory, or rejection sampling algorithm doesn't work?
ekwaters
ekwaters at unimelb.edu.au
Tue Mar 3 08:54:12 CET 2009
> b12=log(.4/.6)
> b13=log(.85/.15)
Can you point out the syntax errors in the first one?
I have been using a couple of books for the code but I am no expert.
The choice of the runif(1,0,2) density and choice of 2 as the constant in
the envelope function was made to envelope the whole variable; z11 is
supposed to be a probability of success in a bernoulli trial, so it will
range between 0 and 1 (0.5 * 2).
Ned
Daniel Nordlund-2 wrote:
>
>> -----Original Message-----
>> From: r-help-bounces at r-project.org
>> [mailto:r-help-bounces at r-project.org] On Behalf Of ekwaters
>> Sent: Monday, March 02, 2009 9:39 PM
>> To: r-help at r-project.org
>> Subject: [R] R - need more memory, or rejection sampling
>> algorithm doesn't work?
>>
>>
>> Hi all,
>>
>> I am trying to run rejection sampling for the quantity z11 in
>> the function
>> below. Unfortunately I can't simplify the function further
>> so that z11 only
>> appears once.
>>
>> Whenever I run the algorithm, R looks as if it is running it (no error
>> messages or anything), but then nothing happens for minutes...how long
>> should it take to run something like this in R? I have tried
>> in in both
>> linux and windows.
>>
>> I realise standard rejection sampling is pretty cumbersome,
>> so I have also
>> tried to run a Gibbs sampler doing rejection sampling instead
>> of the form of
>> the algorithm here, with the same result. R thinks about
>> starting to run it,
>> then freezes.
>>
>> Is this a memory issue, or an issue with the algorithm?
>>
>> > count=0
>> > k=1
>> > f=matrix(NA,1000)
>>
>> >while(k<1001){
>>
>> z11=runif(1,min=0,max=2)
>>
>> r11=(((log(z11/1-z11)^231)*((1-log(z11/1-z11))^62)*((b12)^170)
>> *((1-b12)^250)*((b13)^217)*((1-b13)^^38))/2*.5)
>>
>> if(r11<runif(1,min=0,max=1))
>>
>> {f(k)=z11; k=k+1}
>> count=count+1
>> }
>>
>> THe GIbbs sampler I tried looks as follows:
>>
>> > p11=matrix(0.5,2000)
>>
>> for(i in 2000)
>> {
>> z=0
>> while(z==0)
>> {
>> u=runif(1,min=0,max=2)
>> if(
>> ((log(p11[i]/1-p11[i])^231)*((1-log(p11[i]/1-p11[i]))^62)*((b1
>> 2)^170)*((1-b12)^250)*((b13)^217)*((1-b13)^38))>(2*runif(1,min
>> =0,max=1)*.5))
>> {p11[i]=u; z=1}
>> }
>> }
>>
>>
>> Ned
>
> Ned,
>
> Your first rejection sampling algorithm will not run as presented. There
> are syntax errors and no indication of where variables b12 and b13 get
> their
> values from, so it is not possible to say for sure what the problem is.
> However, it is not a memory problem (unless you have a broken system).
> There are also problems in your second routine. We need reproducible code
> if you want R-help to do more than guess.
>
> Dan
>
> Daniel Nordlund
> Bothell, WA USA
>
> ______________________________________________
> 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.
>
>
--
View this message in context: http://www.nabble.com/R---need-more-memory%2C-or-rejection-sampling-algorithm-doesn%27t-work--tp22302800p22303990.html
Sent from the R help mailing list archive at Nabble.com.
More information about the R-help
mailing list