Source: Tamhane/Dunlop Ch. 5, Sec. 6.1, 14.6.2, 15.1
Tags: Q-Q plot, quantile-quantile plot, reference distribution plot, normal probability plot, quantile function, location-scale family, Weibull, Gamma, goodness of fit, R-squared, sample quantile, CDF assessment
Q-Q plots compare sample quantiles against theoretical quantiles to visually assess whether data follow a particular distribution. When the reference distribution is fully specified, points near the 45-degree line confirm the fit. When parameters are unknown but the family is location-scale, plotting against the standard member of the family still works, with any straight line (not just 45 degrees) indicating a good fit.
Quantile function (Q)
The inverse of the CDF. For a given probability u, Q(u) returns the value y such that F(y) = u.
Sample quantile (Q-hat)
The empirical version of the quantile function, computed from the ordered data. Q-hat(u_i) = Y_(i), the i-th order statistic, where u_i = (i - 0.5) / n.
Q-Q plot (quantile-quantile plot)
A scatterplot of theoretical quantiles Q_o(u_i) on the horizontal axis against sample quantiles Q-hat(u_i) on the vertical axis, for u_i = (i - 0.5) / n, i = 1, ..., n.
Reference distribution (F_o)
The hypothesised distribution you are testing the data against, e.g. "is this data from a Gamma(2.3, 4.5)?"
Location-scale family
A family of distributions where every member can be written as Y = theta_1 + theta_2 * Z, with Z being the standard member (theta_1 = 0, theta_2 = 1). Examples: Normal (mu, sigma), Cauchy (theta_1, theta_2), Uniform on [theta, theta + 1].
Standard member
The member of a location-scale family with location = 0 and scale = 1. For the Normal family, this is N(0,1). For the exponential family, this is Exp(1).
Order statistics Y_(i)
The sample values sorted from smallest to largest. Y_(1) is the minimum, Y_(n) is the maximum.
R-squared (R²)
A measure of how close the Q-Q plot points lie to a straight line. Values near 1.0 indicate a good fit to the reference distribution.
Case 1: F_o completely specified (all parameters known)
All distribution parameters are given, e.g. Gamma(alpha = 2.3, beta = 4.5)
Plot Q_o(u_i) vs Y_(i) where Q_o is the fully specified theoretical quantile function
If points fall close to the 45-degree line through the origin, conclude F is well approximated by F_o
In R: for the Gamma example, use u = seq(0.005, 0.995, 0.01) and qgamma(u, 2.3, 1/4.5)
Case 2: F_o from a specific family, parameters unknown
The family is known (e.g. Weibull) but parameter values are not
You could estimate parameters from data and plug them in, but this introduces inaccuracy
Only use this approach when Cases 1 and 3 are not feasible
If you do estimate, use MLEs and require n > 100
Document clearly that estimated (not true) parameters were used
Case 3: F_o from a location-scale family, parameters unknown
The family is location-scale (e.g. Normal, Cauchy, Exponential, Uniform)
Plot the standard member's quantile Q_Z(u_i) on the x-axis against Y_(i) on the y-axis
If points fall close to any straight line (not necessarily 45 degrees), conclude the data comes from the hypothesised family
The intercept b_1 estimates the location parameter, and the slope b_2 estimates the scale parameter
For any member of a location-scale family:
Q(u) = theta_1 + theta_2 * Q_Z(u), for all 0 <= u <= 1
This is because if Y = theta_1 + theta_2 * Z, then:
u = P[Y <= Q_Y(u)] = P[Z <= (Q_Y(u) - theta_1) / theta_2]
So Q_Z(u) = (Q_Y(u) - theta_1) / theta_2, which rearranges to Q_Y(u) = theta_1 + theta_2 * Q_Z(u).
The plot of Q_Z(u_i) vs Y_(i) will therefore be linear if the data truly comes from that family, regardless of the actual parameter values.
Example 1: Normal family, mu and sigma unknown
Standard member: N(0,1)
Plot Q_Z(u_i) vs Y_(i), where Q_Z is the standard normal quantile
In R: qnorm(u, 0, 1) with u = seq(1/(2*n), 1 - 1/(2*n), 1/n)
Example 2: Exponential family, beta unknown
Beta is a scale parameter, so use the standard exponential (beta = 1)
Standard exponential CDF: F_Z(z) = 1 - e^(-z)
Standard exponential quantile: Q_Z(u) = -log(1 - u)
Plot -log(1 - u_i) vs Y_(i)
Example 3: Uniform on [theta, theta + 1]
Theta is a location parameter
Standard member: Uniform(0,1), with Q_Z(u) = u
Simply plot u_i vs Y_(i)
Example 4: Weibull family (reparametrisation needed)
Weibull has a scale parameter alpha and a shape parameter gamma
Gamma is a shape parameter, not location/scale, so direct Case 3 does not apply
Transform: X = log(Y), which has a log-Weibull distribution
The log-Weibull is location-scale with theta_1 = log(alpha) and theta_2 = 1/gamma
Standard log-Weibull quantile: Q_Z(u) = log(-log(1 - u))
Plot log(-log(1 - u_i)) vs log(Y_(i))
If W = h(Y), find Q_W in terms of Q_Y:
If h is increasing: Q_W(u) = h(Q_Y(u))
If h is decreasing: Q_W(u) = h(Q_Y(1 - u))
Fit a least squares line through the Q-Q plot points: Q-hat(u) = b_1 + b_2 * Q_Z(u)
Examine R². Close to 1.0 means good fit.
b_1 gives a rough estimate of the location parameter, b_2 of the scale parameter
The least squares line can be distorted by outliers, so an alternative is the line through the two IQR points: (Q_Z(0.25), Q-hat(0.25)) and (Q_Z(0.75), Q-hat(0.75))
For the standard normal: Q_Z(0.25) = -0.675 and Q_Z(0.75) = 0.675
This IQR line measures fit in the middle portion of the data, which is more robust
When you plot data against standard normal quantiles, deviations from a straight line tell you about the underlying distribution shape:
Normal data: points stay close to the line
Right-skewed (e.g. Chi-squared, df=4): points curve above the line on both the left and right ends
Heavy-tailed symmetric (e.g. t, df=2): points below the line on the left, above the line on the right (an S-shape)
Short-tailed symmetric (e.g. Uniform): points above the line on the left, below the line on the right (reverse S-shape)
Larger sample sizes (n = 200 vs n = 20) make these patterns much clearer and more consistent across replications.
Plotting coordinates for Q-Q plots:
u_i = (i - 0.5) / n, for i = 1, ..., n
Location-scale quantile relationship:
Q_Y(u) = theta_1 + theta_2 * Q_Z(u)
Standard exponential quantile:
Q_Z(u) = -log(1 - u)
Standard log-Weibull quantile:
Q_Z(u) = log(-log(1 - u))
Weibull quantile:
Q_Y(u) = alpha * [-log(1 - u)]^(1/gamma)
Transformation rule (increasing h):
Q_W(u) = h(Q_Y(u))
⚠️ In Case 1 (fully specified F_o), the reference line is the 45-degree line through the origin. In Case 3 (location-scale, unknown parameters), the reference is any straight line. Do not confuse the two.
⚠️ When the family is not location-scale (e.g. Weibull with unknown shape), you may be able to reparametrise via a log transform. This is a common exam setup.
⚠️ Know the characteristic Q-Q plot shapes: right-skewed curves up at both tails, heavy-tailed makes an S-shape, short-tailed makes a reverse S-shape. These are very commonly tested.
⚠️ The IQR-based reference line (through 25th and 75th percentile points) is more robust to outliers than the least squares line.
⚠️ Case 2 (estimated parameters) is the weakest approach. It requires large n (> 100), MLEs, and must be documented. Prefer Cases 1 or 3 when possible.
Q: You have 200 observations and want to check whether the data come from an exponential distribution with unknown rate parameter. What do you plot, and what pattern indicates a good fit?
A: Plot -log(1 - u_i) on the x-axis against Y_(i) on the y-axis, where u_i = (i - 0.5)/200. A good fit is indicated by points falling close to any straight line (not necessarily 45 degrees), because the exponential family is a scale family and you are using the standard member Q_Z(u) = -log(1 - u).
Q: On a normal probability plot, you see the plotted points dip below the reference line on the left side and rise above it on the right side, forming an S-shape. What does this tell you about the data?
A: The data likely come from a distribution with heavier tails than the normal (e.g. a t-distribution with low degrees of freedom or a Cauchy). The extreme values are more spread out than a normal distribution would predict.
Q: What is the standard log-Weibull quantile function, and why is it useful?
A: Q_Z(u) = log(-log(1 - u)). It is useful because the Weibull distribution has a shape parameter (gamma) that is not a location or scale parameter. Taking the log of Weibull data converts it to a log-Weibull distribution, which is a location-scale family. You can then use this standard quantile to do a Case 3 reference plot.
Q: In a Q-Q plot for Case 1 (fully specified F_o), what does it mean if the points fall along a straight line with slope 0.95 and intercept 0.14, rather than exactly on the 45-degree line?
A: It means the data distribution is close to F_o but not exactly equal. The slight deviation from slope 1 and intercept 0 suggests the data may come from the same family but with slightly different parameter values, or there may be minor sampling variability.
Q: Why might you prefer the line through (Q_Z(0.25), Q-hat(0.25)) and (Q_Z(0.75), Q-hat(0.75)) over the least squares line when assessing a Q-Q plot?
A: The least squares line is sensitive to outliers, which can distort the slope and intercept. The IQR-based line uses only the middle 50% of the data and gives a more robust assessment of fit in the central portion of the distribution.
Q-Q plot, quantile-quantile plot, normal probability plot, reference distribution plot, probability plot, quantile function, inverse CDF, location-scale family, standard member, order statistics, sample quantile, Gamma distribution, Weibull distribution, log-Weibull, exponential distribution, Cauchy distribution, Uniform distribution, R-squared, goodness of fit, distributional assumption checking, normal reference plot, heavy tails, skewness detection, Q-Q plot interpretation, STAT 301, Principles of Statistics I, Texas A&M, Tamhane Dunlop