# [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?
>>>>
>>>>
>>>> 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
>>>> 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