There are generally four prefixes:
- d-The density function for the given distribution
- p-The cumulative distribution function
- q-Get the quantile associated with the given probability
- r-Get a random sample
For the distributions built into R's base installation, see
We now illustrate the functions
rbinom defined for Binomial distribution.
dbinom() function gives the probabilities for various values of the binomial variable. Minimally it requires three arguments. The first argument for this function must be a vector of quantiles(the possible values of the random variable
X). The second and third arguments are the
defining parameters of the distribution, namely,
n(the number of independent trials) and
p(the probability of success in each trial). For example, for a binomial distribution with
n = 5,
p = 0.5, the possible values for X are
0,1,2,3,4,5. That is, the
dbinom(x,n,p) function gives the probability values
P( X = x ) for
x = 0, 1, 2, 3, 4, 5.
#Binom(n = 5, p = 0.5) probabilities > n <- 5; p<- 0.5; x <- 0:n > dbinom(x,n,p)  0.03125 0.15625 0.31250 0.31250 0.15625 0.03125 #To verify the total probability is 1 > sum(dbinom(x,n,p))  1 >
The binomial probability distribution plot can be displayed as in the following figure:
> x <- 0:12 > prob <- dbinom(x,12,.5) > barplot(prob,col = "red",ylim = c(0,.2),names.arg=x, main="Binomial Distribution\n(n=12,p=0.5)")
Note that the binomial distribution is symmetric when
p = 0.5. To demonstrate that the binomial distribution is negatively skewed when
p is larger than
0.5, consider the following example:
> n=9; p=.7; x=0:n; prob=dbinom(x,n,p); > barplot(prob,names.arg = x,main="Binomial Distribution\n(n=9, p=0.7)",col="lightblue")
p is smaller than
0.5 the binomial distribution is positively skewed as shown below.
> n=9; p=.3; x=0:n; prob=dbinom(x,n,p); > barplot(prob,names.arg = x,main="Binomial Distribution\n(n=9, p=0.3)",col="cyan")
We will now illustrate the usage of the cumulative distribution function
pbinom(). This function can be used to calculate probabilities such as
P( X <= x ). The first argument to this function is a vector of quantiles(values of x).
# Calculating Probabilities # P(X <= 2) in a Bin(n=5,p=0.5) distribution > pbinom(2,5,0.5)  0.5
The above probability can also be obtained as follows:
# P(X <= 2) = P(X=0) + P(X=1) + P(X=2) > sum(dbinom(0:2,5,0.5))  0.5
To compute, probabilities of the type:
P( a <= X <= b )
# P(3<= X <= 5) = P(X=3) + P(X=4) + P(X=5) in a Bin(n=9,p=0.6) dist > sum(dbinom(c(3,4,5),9,0.6))  0.4923556 >
Presenting the binomial distribution in the form of a table:
> n = 10; p = 0.4; x = 0:n; > prob = dbinom(x,n,p) > cdf = pbinom(x,n,p) > distTable = cbind(x,prob,cdf) > distTable x prob cdf [1,] 0 0.0060466176 0.006046618 [2,] 1 0.0403107840 0.046357402 [3,] 2 0.1209323520 0.167289754 [4,] 3 0.2149908480 0.382280602 [5,] 4 0.2508226560 0.633103258 [6,] 5 0.2006581248 0.833761382 [7,] 6 0.1114767360 0.945238118 [8,] 7 0.0424673280 0.987705446 [9,] 8 0.0106168320 0.998322278 [10,] 9 0.0015728640 0.999895142 [11,] 10 0.0001048576 1.000000000 >
rbinom() is used to generate random samples of specified sizes with a given parameter values.
# Simulation > xVal<-names(table(rbinom(1000,8,.5))) > barplot(as.vector(table(rbinom(1000,8,.5))),names.arg =xVal, main="Simulated Binomial Distribution\n (n=8,p=0.5)")
*norm as an example. From the documentation:
dnorm(x, mean = 0, sd = 1, log = FALSE) pnorm(q, mean = 0, sd = 1, lower.tail = TRUE, log.p = FALSE) qnorm(p, mean = 0, sd = 1, lower.tail = TRUE, log.p = FALSE) rnorm(n, mean = 0, sd = 1)
So if I wanted to know the value of a standard normal distribution at 0, I would do
Which gives us
0.3989423, a reasonable answer.
In the same way
.5. Again, this makes sense, because half of the distribution is to the left of 0.
qnorm will essentially do the opposite of
Finally, there's the
Will generate 10 samples from standard normal.
If you want to change the parameters of a given distribution, simply change them like so
rnorm(10, mean=4, sd= 3)