Loading the Mosaic Package

Let’s load the Mosaic package:

require(mosaic)



Examples from Activity #11

7) If we randomly select an individual, what’s the probability that we select someone with an IQ less than 72?

In the activity, we’re told IQ scores follow a normal distribution with a mean of 100 and a standard deviation of 16. Let’s take a look at that distribution:

plotDist("norm", params=list(mean=100, sd=16), col="steelblue")

plot of chunk unnamed-chunk-3

We can have R calculate this probability using the xpnorm() function in the Mosaic Package. The function has quite a few options:

xpnorm(q, mean = 0, sd = 1, plot = TRUE, verbose = TRUE,
invisible = FALSE, digits = 4, lower.tail = TRUE, log.p = FALSE,
xlim = mean + c(-4, 4) * sd, ylim = c(0, 1.4 * dnorm(mean, mean, sd)),
vlwd = 2, vcol = trellis.par.get("add.line")$col, rot = 45,
manipulate = FALSE, ...)

We won’t use too many of those options to calculate our probability:

# P(X < 72 | normal~(100, 16))
xpnorm(72, mean = 100, sd = 16)
## 
## If X ~ N(100,16), then 
## 
##  P(X <= 72) = P(Z <= -1.75) = 0.0401
##  P(X >  72) = P(Z >  -1.75) = 0.9599

plot of chunk unnamed-chunk-4

## [1] 0.04006

We can change the last option manipulate=TRUE to create an interactive normal distribution. If you run this code on your computer, you can see a normal curve for various scenarios:

# P(X < 72 | normal~(100, 16))
xpnorm(72, mean = 100, sd = 16, manipulate=TRUE)

Let’s solve some of the other probability questions (question #8 in Activity #11):

# P(122 < X < 137 | normal~(100, 16))
xpnorm(137, mean = 100, sd = 16, plot=FALSE, verbose=FALSE) -
  xpnorm(122, mean = 100, sd = 16, plot=FALSE, verbose=FALSE)
## [1] 0.07419
# P(84 < X < 116 | normal~(100, 16))
xpnorm(116, mean = 100, sd = 16, plot=FALSE, verbose=FALSE) -
  xpnorm(84, mean = 100, sd = 16, plot=FALSE, verbose=FALSE)
## [1] 0.6827
# P(68 < X < 132 | normal~(100, 16))
xpnorm(132, mean = 100, sd = 16, plot=FALSE, verbose=FALSE) -
  xpnorm(68, mean = 100, sd = 16, plot=FALSE, verbose=FALSE)
## [1] 0.9545
# P(52 < X < 148 | normal~(100, 16))
xpnorm(148, mean = 100, sd = 16, plot=FALSE, verbose=FALSE) -
  xpnorm(52, mean = 100, sd = 16, plot=FALSE, verbose=FALSE)
## [1] 0.9973


9) Suppose you are elected president of Mensa, the high IQ society. You need to set an IQ cut-score for membership (“all Mensa members must have an IQ above ???”). Assuming you only want the top 10% of individuals to be members, what IQ score should you set for your cut-score?

To answer this question, we need to find a quantile using xqnorm:
xqnorm(p, mean = 0, sd = 1, plot = TRUE, verbose = TRUE, digits = 4,
lower.tail = TRUE, log.p = FALSE, xlim, ylim, invisible = FALSE,
vlwd = 2, vcol = trellis.par.get("add.line")$col, rot = 45, ...)

# P(X < 72 | normal~(100, 16))
xqnorm(.90, mean = 100, sd = 16)
##  P(X <= 120.504825048714) = 0.9
##  P(X >  120.504825048714) = 0.1

plot of chunk unnamed-chunk-7

## [1] 120.5