Simulation with R
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