Generates the sequence of probability points
(1:m - a)/(m + (1-a)-a)
where m
is either n
, if length(n)==1
, or
length(n)
.
ppoints(n, a = if(n
either the number of points generated or a vector of observations.
the offset fraction to be used; typically in
If p + rev(p) == 1
.
ppoints()
is used in qqplot
and qqnorm
to generate
the set of probabilities at which to evaluate the inverse distribution.
The choice of a
follows the documentation of the function of the
same name in Becker et al (1988), and appears to have been
motivated by results from Blom (1958) on approximations to expect normal
order statistics (see also quantile
).
Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.
Blom, G. (1958) Statistical Estimates and Transformed Beta Variables. Wiley
# NOT RUN {
ppoints(4) # the same as ppoints(1:4)
ppoints(10)
ppoints(10, a = 1/2)
## Visualize including the fractions :
require(graphics)
# }
# NOT RUN {
p.ppoints <- function(n, ..., add = FALSE, col = par("col")) {
pn <- ppoints(n, ...)
if(add)
points(pn, pn, col = col)
else {
tit <- match.call(); tit[[1]] <- quote(ppoints)
plot(pn,pn, main = deparse(tit), col=col,
xlim = 0:1, ylim = 0:1, xaxs = "i", yaxs = "i")
abline(0, 1, col = adjustcolor(1, 1/4), lty = 3)
}
if(!add && requireNamespace("MASS", quietly = TRUE))
text(pn, pn, as.character(MASS::fractions(pn)),
adj = c(0,0)-1/4, cex = 3/4, xpd = NA, col=col)
abline(h = pn, v = pn, col = adjustcolor(col, 1/2), lty = 2, lwd = 1/2)
}
p.ppoints(4)
p.ppoints(10)
p.ppoints(10, a = 1/2)
p.ppoints(21)
p.ppoints(8) ; p.ppoints(8, a = 1/2, add=TRUE, col="tomato")
# }
Run the code above in your browser using DataLab