[R] Simulation with R

Ben Bolker bolker at zoo.ufl.edu
Mon Dec 11 01:31:30 CET 2006


Ethan Johnsons <ethan.johnsons <at> gmail.com> writes:

> 
> An apparatus exists whereby a collection of balls is displaced to the
> top of a stack by suction. A top level (Level 1) each ball is shifted
> 1 unit to the left or 1 unit to the right at random with equal
> probability. The ball then drops down to level 2. At Level 2, each
> ball is again shifted 1 unit to the left or 1 unit to the right at
> random. The process continues for 15 levels and the balls are
> collected at the bottom for a short time until being collected by
> suction to the top.
> 
> Can we do a simulation of the process using R with 100 balls, and plot
> the frequency distribution of the position of the balls at the bottom
> with respect to the entry position?
> 

  After poking around a bit, I see from your Google groups profile
that you are (or at least claim to be) self-teaching yourself
biostats -- which explains your really heavy posting record
here and in other stats forums and means this isn't 
necessarily homework.
(I know, I could just keep my mouth shut).  It would
probably be helpful if it were possible for you to find someone
local to help with some of these questions, as many of them are 
basic stats questions ...

  As for this question -- this process generates a binomial distribution.
Some ways of simulating the frequency distribution are
(1) use rbinom() to sample a number of left- moves for
each of 100 balls -- then the number of right-moves is known,
and you can calculate the ending position
(2) construct a string of 1 and -1 values
for each ball
(either use sample(c(-1,1),size=100,replace=TRUE),
or something involving sign(runif(100),-1,1)) and
use cumsum() to calculate the final position
(3) use a for() loop to sample values and calculate
the position one step at a time [move <- sample(c(-1,1));
cpos <- cpos+move; etc.]

#1 is by far the most efficient, #3 the least, but
might be the most transparent.

  Would you consider "giving back to the community" by writing
up some of the most useful advice you've gotten
for the R wiki?

  Ben Bolker




More information about the R-help mailing list