From Assay Blocks to a Joint Map
A useful MFA analysis is more than a plot of sample points. The blocks must describe the same individuals, their scales must be justified, and the global axes must be traced back to the block-specific patterns that produce them. This workshop follows a small, entirely hypothetical dataset through those steps. It uses three quantitative blocks: metabolomics, proteomics, and transcriptomics. The calculations are deliberately small enough to check by hand; real analyses use the same logic with more features and samples.
The example uses centered feature matrices \(X_k\), one for each block \(k\). Feature scales are assumed comparable across the columns in this constructed dataset. In practice, features measured on different scales generally need appropriate variable scaling before block weighting. MFA then rescales each whole block according to its first principal component, so a block with many features or large overall variation does not automatically dominate the joint analysis.
This normalization is appropriate when the blocks are active, quantitative groups and their first principal components are defined. It does not correct mismatched individuals, unhandled missingness, poor feature scaling, or outliers. The interpretation also depends on the variables included: scaling gives blocks a defined relative influence, not an assurance that their biological contents are equally reliable or equally relevant.
Hypothetical Data and Block-Specific PCA
Consider four matched individuals, labelled A through D. Define three centered patterns across them: \(a=(1,-1,1,-1)^T\), \(b=(1,1,-1,-1)^T\), and \(c=(1,-1,-1,1)^T\). Each has squared length 4, and each is orthogonal to the other two. The six feature columns below are hypothetical centered measurements in comparable assay units.
| Individual | Metabolite 1 | Metabolite 2 | Protein 1 | Protein 2 | Transcript 1 | Transcript 2 |
|---|---|---|---|---|---|---|
| A | 1 | 0.5 | 0.8 | 1 | 1 | 0.5 |
| B | -1 | 0.5 | -0.8 | -1 | 1 | -0.5 |
| C | 1 | -0.5 | 0.8 | -1 | -1 | -0.5 |
| D | -1 | -0.5 | -0.8 | 1 | -1 | 0.5 |
In pattern notation, the three blocks are \(X_1=[a,\;0.5b]\), \(X_2=[0.8a,\;c]\), and \(X_3=[b,\;0.5c]\). Orthogonality makes each block’s PCA transparent: its two feature directions are orthogonal, so its eigenvalues are simply the squared column lengths.
Worked Example: Block-Specific PCA and MFA Scaling
For the metabolomics block, the column lengths are \(\|a\|=2\) and \(\|0.5b\|=1\). Because these columns are orthogonal, the block eigenvalues are \(4\) and \(1\), and its largest singular value is \(\sigma_{11}=2\). Its normalized columns are therefore \(0.5a\) and \(0.25b\).
For proteomics, the lengths are \(\|0.8a\|=1.6\) and \(\|c\|=2\), giving eigenvalues \(2.56\) and \(4\), with \(\sigma_{12}=2\). For transcriptomics, the lengths are \(2\) and \(1\), giving eigenvalues \(4\) and \(1\), with \(\sigma_{13}=2\). Thus each block is divided by 2. Their normalized eigenvalues are, respectively, \((1,0.25)\), \((0.64,1)\), and \((1,0.25)\).
The blocks do not have identical total inertia after normalization: those totals are \(1.25\), \(1.64\), and \(1.25\). MFA equalizes each block’s leading eigenvalue, not its total inertia. Proteomics retains more secondary-direction inertia here because its second normalized eigenvalue is \(0.64\), rather than \(0.25\).
Global Ordination and Its Justification
After normalization, the global individual structure can be computed from \(ZZ^T\), without needing to display the larger feature-space matrix \(Z^T Z\). Each block contributes \(Z_kZ_k^T\), so \(ZZ^T=\sum_k Z_kZ_k^T\). The orthogonal patterns \(a,b,c\) are eigenvectors of this sum. The corresponding unit vectors are \(u_a=a/2\), \(u_b=b/2\), and \(u_c=c/2\).
The metabolomics block contributes eigenvalues \(1\) along \(u_a\) and \(0.25\) along \(u_b\). Proteomics contributes \(0.64\) along \(u_a\) and \(1\) along \(u_c\). Transcriptomics contributes \(1\) along \(u_b\) and \(0.25\) along \(u_c\). Adding the contributions gives global eigenvalues \(1.64\), \(1.25\), and \(1.25\) along \(u_a,u_b,u_c\), respectively.
Worked Example: Global Eigenvalues and Explained Inertia
The total global inertia is \(1.64+1.25+1.25=4.14\). The first global axis is \(u_a\), with eigenvalue \(1.64\). Its proportion of total inertia is
The second and third axes each account for \(1.25/4.14\times100=30.19\%\). These percentages sum to 100% because the three patterns span all nonzero individual variation in this constructed dataset. In a larger dataset, the percentage on the first axis is calculated the same way, but it describes variation in the normalized MFA table—not a percentage of biological variation in every possible sense.
The global individual scores on axis 1 are \(\sqrt{1.64}\,u_a=1.2806u_a=0.6403a\). Thus individuals A and C have score \(0.6403\), while B and D have score \(-0.6403\), in the score units induced by the normalized table. The sign of an axis is arbitrary: reversing all scores and loadings on an axis leaves the analysis unchanged.
Partial Projections and Block Contributions
A partial map asks how each block relates to the global individual axes. One useful calculation is the block’s projection contribution to global individual scores. For unit global axis \(u_\ell\), define the block contribution vector as \(q_{k\ell}=Z_kZ_k^Tu_\ell\). To express it on the same score scale as the global scores \(f_\ell=\sqrt{\lambda_\ell}u_\ell\), use \(p_{k\ell}=q_{k\ell}/\sqrt{\lambda_\ell}\), where \(\lambda_\ell\) is that global eigenvalue. These contributions add exactly: \(\sum_k p_{k\ell}=f_\ell\). This is an additive projection view of partial maps; software can display partial coordinates with a different but documented normalization.
Worked Example: Reading the Partial Projections on Axis 1
For axis 1, \(u_1=u_a\) and \(\lambda_1=1.64\). The block eigenvalues along this direction are 1 for metabolomics, 0.64 for proteomics, and 0 for transcriptomics. Their partial projection vectors are therefore
For individual A, the contributions are \(0.3904\), \(0.2499\), and \(0\), which sum to \(0.6403\), the global score. For individual B they are \(-0.3904\), \(-0.2499\), and \(0\), summing to \(-0.6403\). The first axis is therefore shared by the metabolomics and proteomics blocks in this example, with no transcriptomics contribution along that direction. “Shared” here means that blocks contribute to the same global contrast; it does not establish a biological mechanism or causation.
On axis 2, the corresponding block eigenvalues are \(0.25,0,1\). Transcriptomics contributes more strongly to this axis than metabolomics, while proteomics contributes none. That pattern is block-specific relative to the other blocks in this constructed example. It is not evidence that the pattern is unique in a population: the dataset has only four hypothetical individuals.
Contribution Diagnostics and Assumptions
For an axis with eigenvalue \(\lambda_\ell\), a convenient block share of its inertia is \(u_\ell^TZ_kZ_k^Tu_\ell/\lambda_\ell\). These shares are nonnegative and sum to 1 across blocks. On axis 1 they are \(1/1.64=61.0\%\) for metabolomics, \(0.64/1.64=39.0\%\) for proteomics, and 0% for transcriptomics. On axis 2 they are \(0.25/1.25=20.0\%\), 0%, and \(1/1.25=80.0\%\). These are axis-specific contributions, not overall block weights or measures of significance.
The calculation relies on several conditions that should be checked before interpretation:
- Matched rows: row \(i\) must refer to the same individual in every active block, in the same order. Otherwise the global cross-block geometry is not meaningful.
- Centering and feature scales: quantitative features should be centered, and scaling should reflect their units and measurement properties. A few extreme values can strongly affect PCA and the block’s leading singular value.
- Meaningful block definition: features should be grouped by a defensible assay or scientific domain. Splitting one assay into several blocks changes its influence in the joint analysis.
- Nondegenerate blocks: an active block needs nonzero variation. A constant block has no positive leading singular value and cannot be normalized this way.
- Missingness and preprocessing: missing values must be handled using a method compatible with the analysis; silently dropping different individuals in different blocks breaks matching.
Diagnostics include inspecting each block’s first eigenvalue and remaining spectrum before and after scaling, checking feature distributions and outliers, confirming sample alignment, and comparing global and partial maps. If one block supplies nearly all of an axis, examine whether that reflects a genuine strong pattern, an outlier, a block definition with duplicated information, or preprocessing choices. Repeating the analysis under defensible alternative feature scaling or block definitions can reveal whether the interpretation is fragile. The earlier material on sensitivity of MFA maps to block weights motivates treating such checks as part of the analysis, not as decoration.
How MFA Differs From Nearby Alternatives
Separate PCA analyzes each block on its own. It can show within-block variation clearly, but its axes need not align across blocks, so it does not directly provide one joint individual map. Concatenated PCA analyzes all columns together without correcting blocks by their leading singular values. A block with larger scale, more variables, or stronger variation can then dominate. MFA instead adjusts each active block by its leading singular value before the global PCA, making the leading block directions comparable in the specific sense that each has unit eigenvalue after normalization.
That adjustment does not make the methods interchangeable or MFA universally preferable. Separate PCA is useful when block-specific structure is the main target. Concatenated PCA may be appropriate when unweighted feature-level variation is the intended objective. MFA answers a joint-structure question under its chosen block definitions and scaling. It can still be sensitive to feature preprocessing, correlated or redundant features, small samples, and the choice of active blocks. A global map is a summary of the observed data, not a test of association or a causal analysis.
A Practical Workflow
Verify matched individuals and feature order. Center quantitative features, justify any variable scaling, and inspect missingness and extreme values.
Run block-specific PCA and record each leading singular value, the remaining spectrum, and the block’s prominent patterns.
Divide each active block by its leading singular value, concatenate the results, and compute the global ordination.
Connect global axes to block contributions, inspect partial configurations, and assess whether the conclusions persist under defensible preprocessing choices.
A common mistake is to say, “MFA gives every block equal total influence because each block is divided by its first singular value.” The correction is precise: normalization makes each block’s first eigenvalue equal to 1, but total normalized inertia can differ, as the totals \(1.25,1.64,1.25\) demonstrate. Another mistake is to treat a large contribution as evidence of statistical significance. Contributions describe how the observed normalized geometry is assembled; uncertainty requires additional inferential methods and assumptions.
Check Your Understanding
Answer each question, then compare your reasoning with the concise solutions.
- If a centered block has leading eigenvalue 9, what is its leading singular value and the divisor used for MFA normalization?
- In the worked analysis, what proportion of axis 2 inertia comes from transcriptomics?
- Why do the block contributions to a global axis sum to the global individual scores under the stated projection definition?
- What is the principal distinction between MFA and PCA on the unscaled concatenated feature matrix?
Solutions. (1) The leading singular value is \(\sqrt{9}=3\), so divide the block by 3; its leading eigenvalue after scaling is \(9/3^2=1\). (2) Transcriptomics contributes \(1/1.25=0.80\), or 80.0%. (3) Since \(ZZ^T=\sum_k Z_kZ_k^T\), dividing each block projection by \(\sqrt{\lambda_\ell}\) makes their sum \(ZZ^Tu_\ell/\sqrt{\lambda_\ell}=\lambda_\ell u_\ell/\sqrt{\lambda_\ell}=\sqrt{\lambda_\ell}u_\ell\), the global score vector. (4) MFA scales each block by its leading singular value before the global PCA; unscaled concatenated PCA does not, so blocks with larger raw variation or more features may exert greater influence.