Probabilistic PCA, Interactively
← text notes · Foundations › Probability. Three widgets: grow a data cloud from a hidden coordinate, locate a point's hidden coordinate from where it landed, and see where the noise level comes from.
1. The generative story: a line, blurred
Every point is made in two steps. First draw a hidden number z from a bell curve. Then walk that far along the arrow w (the z-th multiple of it), and finally add a little noise that is equally strong in every direction. The data you see is a stretched cloud around the line. Drag the sliders to rotate the arrow, lengthen it, or turn up the noise.
The solid ellipses are the model's own picture of the data, the Gaussian with covariance ww⊤ + σ²I. Press Fit from the points and the dashed ellipse is what maximum likelihood recovers from the dots alone: the long axis is the top principal direction, the noise is the short axis' variance, and the arrow length is what is left of the long axis after the noise is taken off.
2. From a point back to its hidden coordinate
Here the model is fixed (a line at 30°). Drag the black dot anywhere. PCA says: drop a perpendicular onto the line, and that foot is the point's coordinate (orange). Probabilistic PCA gives a whole bell curve for the hidden coordinate instead of a single value; its centre is the blue dot and the blue bar is its two-standard-deviation spread. The coordinate axis along the line is marked in units of z.
3. The noise is the variance PCA throws away
Each bar is one eigenvalue of the sample covariance: how much the data spreads along that principal direction. Choose how many directions q to keep. The model's noise variance σ² is the average of the bars you discard (dashed line), and each kept direction contributes its bar minus that floor. Change the preset to see when there is a natural place to cut.
Samples are generated in the browser from a fixed seed. Nothing here comes from the paper's data.