[R] Generate random Bernoulli draws

Berry, Charles ccberry @end|ng |rom uc@d@edu
Sat Jul 7 01:27:04 CEST 2018



> On Jul 6, 2018, at 3:31 PM, Duncan Murdoch <murdoch.duncan using gmail.com> wrote:
> 
> On 06/07/2018 1:18 PM, Berry, Charles wrote:
>> A liitle math goes along way. See below.
>>> On Jul 5, 2018, at 10:35 PM, Marino David <davidmarino838 using gmail.com> wrote:
>>> 
>>> Dear Bert,
>>> 
>>> I know it is a simple question. But for me, at current, I fail to implement
>>> it. So, I ask for help here.
>>> 
>>> It is not homework.
>>> 
>>> Best,
>>> 
>>> David
>>> 
>>> 2018-07-06 13:32 GMT+08:00 Bert Gunter <bgunter.4567 using gmail.com>:
>>> 
>>>> Is this homework?
>>>> 
>>>> (There is an informal no-homework policy on this list).
>>>> 
>>>> Cheers,
>>>> Bert
>>>> 
>>>> 
>>>> 
>>>> Bert Gunter
>>>> 
>>>> "The trouble with having an open mind is that people keep coming along and
>>>> sticking things into it."
>>>> -- Opus (aka Berkeley Breathed in his "Bloom County" comic strip )
>>>> 
>>>> On Thu, Jul 5, 2018 at 10:23 PM, Marino David <davidmarino838 using gmail.com>
>>>> wrote:
>>>> 
>>>>> Dear All,
>>>>> 
>>>>> I would like to generate N random Bernoulli draws given a probability
>>>>> function F(x)=1-exp(-2.5*x) in which x follows  uniform distribution, say
>>>>> x~U(0,2).
>> If each Bernoulli draw is based on its own draw of x, then
>> 	rbinom( N, 1, 0.8013476 )
>> is what you want.
>> It is left as an exercise for the reader to verify that the constant 0.8013476 is correct up to approximation error, and to prove that such a Bernoulli mixture is also Bernoulli. Perhaps,
>> 	?integrate
>> will help.
>> But if the x's are shared you need to use runif, expm1, and (possibly) rep to produce a vector to be used in place of the prob argument.
> 
> That may be correct from a mathematical perspective (I haven't checked), but seems like a *really* bad idea from a programming perspective.  It would be much better to write

Well of course it would.  I was hoping that my somewhat obscure one-liner would suggest


> 
> x <- runif(N, 0, 2)
> rbinom(N, 1, 1 - exp(-2.5*x))
> 
> because it is so much more clearly related to the original problem statement.  Perhaps it would be a few microseconds slower, but that would be saved many times over when any aspect of the problem statement was modified.
> 
> Duncan Murdoch
> 
>> HTH,
>> Chuck
>>>>> 
>>>>> Can some one leave me some code lines for implementing this?
>>>>> 
>>>>> Thanks in advance.
>>>>> 
>>>>> David
>>>>> 
>>>>>        [[alternative HTML version deleted]]
>>>>> 
>>>>> ______________________________________________
>>>>> R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
>>>>> https://stat.ethz.ch/mailman/listinfo/r-help
>>>>> PLEASE do read the posting guide http://www.R-project.org/posti
>>>>> ng-guide.html
>>>>> and provide commented, minimal, self-contained, reproducible code.
>>>>> 
>>>> 
>>>> 
>>> 
>>> 	[[alternative HTML version deleted]]
>>> 
>> ______________________________________________
>> R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
>> 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