ppoints {stats}R Documentation

Ordinates for Probability Plotting

Description

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).

Usage

ppoints(n, a = if(n <= 10) 3/8 else 1/2)

Arguments

n

either the number of points generated or a vector of observations.

a

the offset fraction to be used; typically in (0,1).

Details

If 0 < a < 1, the resulting values are within (0,1) (excluding boundaries). In any case, the resulting sequence is symmetric in [0,1], i.e., 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, Chambers, and Wilks (1988), and appears to have been motivated by results from ⁠Blom (1958) on approximations to expect normal order statistics (see also quantile).

The probability points for the continuous sample quantile types 5 to 9 (see quantile) can be obtained by taking a as, respectively, 1/2, 0, 1, 1/3, and 3/8.

References

Becker RA, Chambers JM, Wilks AR (1988). The New S Language. Chapman and Hall/CRC, London.

Blom G (1958). Statistical Estimates and Transformed Beta-Variables. Wiley.

See Also

qqplot, qqnorm.

Examples

ppoints(4) # the same as  ppoints(1:4)
ppoints(10)
ppoints(10, a = 1/2)

## Visualize including the fractions :
require(graphics)
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")


[Package stats version 4.6.0 Index]