Why Project New Individuals Into a Fixed MFA Space?
An MFA map is defined by the observations and transformations used to fit it. When new individuals arrive, it is often useful to display them against the existing map—for example, to see how a new sample relates to a reference cohort—without allowing those individuals to change the axes. This is a projection problem: apply the fitted transformation to the new measurements, then calculate their coordinates using the fitted loadings.
The distinction from refitting matters. A projection assigns coordinates in a space that is already defined; it does not alter the compromise space, the block weights, or the coordinates of the training individuals. Consequently, the result answers “Where does this individual fall under the fitted reference analysis?” rather than “What axes would be obtained if this individual were included?”
Fitted Transformations and Projection Formula
Suppose the MFA was fitted to \(K\) blocks measured on the same \(n\) training individuals. Block \(k\) has \(p_k\) features. Let \(Y_k\) denote the training data after the centering and any feature scaling chosen for that fitted analysis. Let \(\lambda_{1k}\) be the first principal inertia of that preprocessed block. In the standard first-inertia scaling, the weighted block is \(Z_k=Y_k/\sqrt{\lambda_{1k}}\), so its largest eigenvalue is one. The concatenated weighted training matrix is \(Z=[Z_1,\ldots,Z_K]\).
Let \(V\) be the matrix of fitted global loading vectors, with columns \(v_\ell\). The columns are orthonormal in the feature space of the concatenated weighted blocks. Partition a loading into its block segments, \(v_\ell=(v_{1\ell}^{T},\ldots,v_{K\ell}^{T})^{T}\), where \(v_{k\ell}\) has \(p_k\) entries. The fitted training coordinates are \(F=ZV\). These definitions fix the reference center, feature scales, block weights, and axis directions used for new observations.
The centering, feature scaling, and \(\lambda_{1k}\) values in this definition must be those stored from the training fit. If the fitted analysis used centered, unscaled features, use that same choice; if it standardized features, use the training means and standard deviations. A new individual must also have measurements in the same feature order and with the same definitions and units. The formula is a linear projection, so it does not by itself require that new observations be randomly sampled. But interpreting the result as a location in the same scientific reference requires measurements that are comparable to those used for fitting.
Why the Global Coordinate Is the Sum of Partial Coordinates
The projection identity follows directly from partitioning the weighted row and the loading vector into matching block segments. It is useful both for interpretation and for checking calculations: the global coordinate must equal the sum of the block-level partial coordinates, not their average.
This derivation uses the concatenated weighted representation. Each block’s contribution already includes the fitted MFA block weight through \(z_k\). Dividing the sum by the number of blocks would therefore apply an extra scaling that is not part of the fitted projection. Also, a partial coordinate is not a separate refitted PCA score: it is the projection of one weighted block onto that block’s segment of a global loading.
Worked Projections
Worked Example: One Global Axis and Two Partial Coordinates
Suppose a fitted MFA has two blocks with two weighted features each. For one fitted axis, let the loading segments be \(v_{1\ell}=(0.6,0)\) and \(v_{2\ell}=(0.8,0)\). Their concatenation has squared length \(0.6^2+0^2+0.8^2+0^2=0.36+0.64=1\), as required for a unit loading vector. A new individual has already been transformed using the training-set preprocessing and block weights, giving \(z_1=(2,0)\) and \(z_2=(-1,0)\).
The first block’s partial coordinate is \(q_{1\ell}=z_1^{T}v_{1\ell}\). Substitution gives \(q_{1\ell}=(2)(0.6)+(0)(0)=1.2\). The second block’s partial coordinate is \(q_{2\ell}=z_2^{T}v_{2\ell}=(-1)(0.8)+(0)(0)=-0.8\). Therefore the global coordinate is \(f_\ell=1.2+(-0.8)=0.4\).
The positive global coordinate is the net result of a positive contribution from block 1 and a negative contribution from block 2. It does not mean that both blocks place the individual on the positive side of the axis. The loading vector has unit length, and the global coordinate agrees with the direct concatenated calculation \((2,0,-1,0)^{T}(0.6,0,0.8,0) = 0.4\).
Worked Example: Projecting Onto Two Fitted Axes
Use the same two-block, four-feature setup. Suppose two columns of the fitted loading matrix are \(v_1=(0.6,0,0.8,0)^{T}\) and \(v_2=(0,1,0,0)^{T}\). Each has squared length one, and their inner product is zero, so these two columns are orthonormal. A new individual has weighted block rows \(z_1=(1,2)\) and \(z_2=(3,-1)\).
For axis 1, the partial coordinates are \(q_{11}=(1)(0.6)+(2)(0)=0.6\) and \(q_{21}=(3)(0.8)+(-1)(0)=2.4\). Thus \(f_1=0.6+2.4=3.0\). For axis 2, the loading segments are \((0,1)\) in block 1 and \((0,0)\) in block 2. Hence \(q_{12}=(1)(0)+(2)(1)=2\), \(q_{22}=(3)(0)+(-1)(0)=0\), and \(f_2=2+0=2\).
The projected point has coordinates \((3.0,2.0)\) on these two axes. This calculation uses each fitted axis as it stands; it neither recalculates the axes from the new individual nor changes any training coordinate.
Worked Example: Applying the Stored Preprocessing First
Suppose block 1 has training means \((10,20)\), training standard deviations \((2,4)\), and first principal inertia \(\lambda_{11}=4\). A new individual’s raw measurements are \((14,16)\). Standardizing with the training values gives \(((14-10)/2,(16-20)/4)=(2,-1)\). The fitted block weight is \(1/\sqrt{4}=1/2\), so its weighted row is \(z_1=(1,-0.5)\).
Suppose block 2 has training means \((5,8)\), standard deviations \((1,2)\), and first principal inertia \(\lambda_{12}=1\). Its new raw measurements are \((4,10)\). The training-standardized row is \(((4-5)/1,(10-8)/2)=(-1,1)\), and the block weight is \(1/\sqrt{1}=1\), giving \(z_2=(-1,1)\).
For a fitted axis with segments \(v_{1\ell}=(0.5,0.5)\) and \(v_{2\ell}=(0.5,0.5)\), the concatenated loading has squared length \(4(0.5^2)=1\). The partial coordinates are \(q_{1\ell}=(1)(0.5)+(-0.5)(0.5)=0.25\) and \(q_{2\ell}=(-1)(0.5)+(1)(0.5)=0\). The global coordinate is \(f_\ell=0.25+0=0.25\). Using a mean or standard deviation recalculated from the new individual would not be the fitted transformation and would produce a different, invalid projection into this reference map.
Checks, Diagnostics, and Failure Modes
A projection is simple algebraically, but errors in the transformation or loading segments can make its coordinates meaningless. Before interpreting a new point, check the following:
- Feature alignment. Confirm that columns are in the same order and represent the same measurements, units, and coding as in the fit. A permuted feature vector multiplied by the original loadings is not the intended projection.
- Training preprocessing. Reuse the fitted centers, feature scales, and block weights. Do not recenter or rescale using the new individual or a batch of new individuals if the goal is projection into the fixed map.
- Loading checks. For each fitted axis, its concatenated loading must have squared length one, and distinct loading columns must be orthogonal up to numerical rounding. In the first worked example, using segments \((0.8,0.2)\) and \((0.6,0.8)\) would fail: the squared length is \(0.64+0.04+0.36+0.64=1.68\), not one. Those segments cannot be asserted to be a unit fitted axis.
- Arithmetic check. Calculate partial coordinates block by block and verify that their sum equals the direct dot product with the concatenated loading. A mismatch usually indicates an omitted block weight, feature-order error, or arithmetic mistake.
- Coverage and representation. Check for missing features, values outside the range represented in training, and a large residual from the retained axes. A point far outside the reference data or poorly represented by the retained dimensions can still receive coordinates, but those coordinates may not summarize its full profile adequately.
If the fitted axes are orthonormal and \(V_r\) contains the retained \(r\) columns, the projection is \(f=zV_r\). The residual row \(z-fV_r^{T}\) is the part of the weighted profile not represented by those axes. Its squared length, \(\lVert z\rVert^2-\lVert f\rVert^2\), follows by expanding the residual norm and using \(V_r^{T}V_r=I\). A large residual relative to \(\lVert z\rVert^2\) warns that a low-dimensional map omits substantial information for that individual.
Projection Compared With Refitting
| Approach | What happens to the reference map? | Appropriate interpretation |
|---|---|---|
| Project supplementary individuals | Axes, preprocessing, and block weights stay fixed. | Locations of new individuals relative to the fitted reference. |
| Refit MFA including new individuals | Axes and potentially preprocessing and block weights can change. | A new joint analysis of the expanded data set. |
| Fit separate block analyses | Each block has its own fitted space. | Block-specific descriptions, not coordinates in the existing global MFA map. |
Projection is useful when comparability to a fixed reference is the goal, such as monitoring samples against a training cohort. Refitting can be preferable when the scientific target is a newly defined cohort and its joint structure. Neither approach is universally better: they answer different questions. With projection, an unusual new sample cannot rotate the axes to make itself look typical, which is helpful for reference monitoring but also means that the map may represent it poorly.
Common Mistakes and Limitations
- Recomputing the block weight. The new individual is not a new block fit. Use the saved \(\lambda_{1k}\), not a first inertia computed from the new data.
- Averaging partial coordinates. Under the stated concatenated weighted-matrix convention, the global coordinate is the sum of partial coordinates. An average would change the fitted projection.
- Treating a projection as evidence of fit quality. Every complete numeric row can be projected, including an extreme observation. A coordinate alone does not show that the individual is well represented or comparable to the training data.
- Ignoring missingness or changed measurement procedures. The dot-product formula assumes a complete transformed feature vector matching the fitted feature definitions. Missing-data imputation, changed assays, or incompatible feature sets require a separately justified strategy; silently substituting values does not preserve the original projection.
The projection is a fixed linear transformation, not a guarantee of biological comparability or of stable coordinates under future changes to the training data. If the reference fit is revised, its preprocessing, weights, and loadings may change, and all projected individuals should be recalculated against that revised reference.
Check Your Understanding
Answer each question, then compare with the solutions below.
- A new individual has partial coordinates \(0.7\), \(-0.2\), and \(0.1\) on one global axis from three blocks. What is the global coordinate?
- Why must a new observation use the training mean and standard deviation rather than values recalculated from the new sample?
- Two block loading segments are \((0.3,0.4)\) and \((0.4,0.7)\). Do they form a unit loading vector?
- What does a large residual from the retained axes indicate about a projected individual?
Solutions. 1. The global coordinate is \(0.7-0.2+0.1=0.6\). 2. The training values define the fitted coordinate system; changing them changes the transformation and does not project into the same reference map. 3. No. The squared length is \(0.3^2+0.4^2+0.4^2+0.7^2=0.09+0.16+0.16+0.49=0.90\), not one. 4. A large residual means much of the individual’s weighted profile is not represented by the retained axes, so the displayed low-dimensional coordinates omit substantial information.