qnormGC()
with pnormGC()
The function pnorm()
in regular R
, as well as the function pnormGC() in the
tigerstats` package, compute probabilities from known bounding values. For example, suppose that \(X\) is a normally distributed random variable with mean 70 and standard deviation 3, and that you want to know:
\[P(X < 72).\]
Then you know the boundary value 72, but you don’t know the probability: the area under the normal density curve before 72. Functions like pnormGC()
aim to give you that area–that probability:
pnormGC(72, region="below", mean=70,
sd=3,graph=TRUE)
## [1] 0.7475075
The function qnormGC()
aims to do the opposite: given an area, find the boundary value that determines this area.
For example, suppose you want to find that 85th percentile of a normal distribution whose mean is 70 and whose standard deviation is 3. Then you ask for:
qnormGC(0.85,region="below",mean=70,sd=3)
## [1] 73.1093
The value 73.1093 is indeed the 85th percentile, in the sense that 85% of the values in a population that is normally distributed with mean 70 and standard deviation 3 will lie below 73.1093. In other words, if you were to pick a random member \(X\) from such a population, then
\[P(X < 73.1093) = 0.85\].
Quite often you will want to check your understanding by making a graph of the known percent, with the bounding percentile on the x-axis:
qnormGC(0.85,region="below",mean=70,sd=3,graph=TRUE)
## [1] 73.1093
Suppose that SAT scores are normally distributed, and that the mean SAT score is 1000, and the standard deviation of all SAT scores is 100. How high must you score so that only 10% of the population scores higher than you?
Here’s the solution: just set region
to “above”:
qnormGC(0.10,region="above",mean=1000,sd=100,graph=TRUE)
## [1] 1128.155
In other words, the 90th percentile of SAT scores is around 1128.
Of course, you could have got the same thing by realizing that when 10% are above, 90% are below. Then you could just ask for:
qnormGC(0.90,region="below",mean=1000,sd=100)
## [1] 1128.155
Find a positive number \(z\) so that the area under the standard normal curve between \(-z\) and \(z\) is 0.95.
Here, we can set the region
argument to “between”. The default value for mean
is 0 and for sd
the default is 1, so we can leave those arguments out if we like:
qnormGC(0.95,region="between",graph=TRUE)
## [1] -1.959964 1.959964
Both bounds are given. The positive number we sought is about 1.96.
Find a positive number \(z\) so that the area under the standard normal curve before \(-z\) plus the area after \(z\) is 0.10.
Here, we can set the region
argument to “outside”. The default value for mean
is 0 and for sd
the default is 1, so we can leave those arguments out if we like:
qnormGC(0.10,region="outside",graph=TRUE)
## [1] -1.644854 1.644854
Both bounds are given. The positive number we sought is about 1.645.