nlcpy.random.Generator.binomial
- Generator.binomial(self, n, p, size=None)
- Draws samples from a binomial distribution. - Samples are drawn from a binomial distribution with specified parameters, n trials and p probability of success where n an integer >= 0 and p is in the interval - [0,1]. (n may be input as a float, but it is truncated to an integer in use)- Parameters
- nint
- Parameter of the distribution, >= 0. Floats are also accepted, but they will be truncated to integers. 
- pfloat
- Parameter of the distribution, >= 0 and <=1. 
- sizeint or tuple of ints, optional
- Output shape. If the given shape is, e.g., - (m, n, k), then- m * n * ksamples are drawn.
 
- Returns
- outndarray
- Drawn samples from the parameterized binomial distribution, where each sample is equal to the number of successes over the n trials. 
 
 - Note - The probability density for the binomial distribution is - where - is the number of trials, - is the probability of success, and - is the number of successes. - When estimating the standard error of a proportion in a population by using a random sample, the normal distribution works well unless the product p*n <=5, where p = population proportion estimate, and n = number of samples, in which case the binomial distribution is used instead. - For example, a sample of 15 people shows 4 who are left handed, and 11 who are right handed. Then p = 4/15 = 27%. 0.27*15 = 4, so the binomial distribution should be used in this case. - Restriction - If n is neither a scalar nor None : NotImplementedError occurs. 
- If p is neither a scalar nor None : NotImplementedError occurs. 
 - Examples - Draw samples from the distribution: - >>> import nlcpy as vp >>> rng = vp.random.default_rng() >>> n, p = 10, .5 # number of trials, probability of each trial >>> s = rng.binomial(n, p, 1000) - A real world example. A company drills 9 wild-cat oil exploration wells, each with an estimated probability of success of 0.1. All nine wells fail. What is the probability of that happening? - Let’s do 20,000 trials of the model, and count the number that generate zero positive results. - >>> sum(rng.binomial(9, 0.1, 20000) == 0)/20000. array(0.38625) # or 38%.