[R] "rbinom" not using probability of success right

(Ted Harding) Ted.Harding at manchester.ac.uk
Wed May 28 15:19:28 CEST 2008


On 28-May-08 12:53:26, Philip Twumasi-Ankrah wrote:
> I am trying to simulate a series of ones and zeros (1 or 0) and I am
> using "rbinom" but realizing that the number of successes expected is
> not accurate. Any advice out there.
> 
> This is the example:
> 
> N<-500
> status<-rbinom(N, 1, prob = 0.15)
> count<-sum(status)
> 
> 15 percent of 500 should be 75 but what I obtain from the "count"
> variable is 77 that gives the probability of success to be 0.154. Not
> very good.

The difference (77 - 75 =2) is well within the likely sampling
variation when 500 values are sampled independently with
P(1)=0.15:

The standard deviation of the resulting number of 1s is
sqrt(500*0.15*0.85) =  7.98, so the difference of 2 is only 1/4 of
a standard deviation, hence very likely to be equalled or exceeded.

Your chance of getting exactly 75 by this method is quite small:

  dbinom(75,500,0.15)
  [1] 0.04990852

and your chance of being 2 or more off your target is

  1 - sum(dbinom((74:76),500,0.15))
  [1] 0.8510483

> Is there another way beyond using "sample" and "rep" together?

It looks as though you are seeking to obtain exactly 75 1s,
randomly situated, the rest being 0s, so in effect you do need
to do something on the lines of "sample" and "rep". Hence,
something like

  status <- rep(0,500)
  status[sample((1:500),75,replace=FALSE)] <- 1

Hoping this helps,
Ted.

--------------------------------------------------------------------
E-Mail: (Ted Harding) <Ted.Harding at manchester.ac.uk>
Fax-to-email: +44 (0)870 094 0861
Date: 28-May-08                                       Time: 14:19:24
------------------------------ XFMail ------------------------------



More information about the R-help mailing list