[R] Generate random Bernoulli draws

Duncan Murdoch murdoch@dunc@n @end|ng |rom gm@||@com
Sat Jul 7 00:31:39 CEST 2018


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

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