The majority of studies in neuroimaging and psychiatry are focussed on case-control analysis(Marquand et al., 2019). However, case-control relies on well-defined groups which is more the exception than the rule in biology. Psychiatric conditions are diagnosed based on symptoms alone, which makes for heterogeneity at the biological level (Marquand et al., 2016). Relying on mean differences obscures this heterogeneity and the resulting loss of information can produce unreliable results or misleading conclusions (Loth et al., 2021). Normative Modeling is an emerging alternative to case-control analyses that seeks to parse heterogeneity by looking at how individuals deviate from the normal trajectory. Analogous to normative growth charts, normative models map the mean and variance of a trait for a given population against a set of explanatory variables (usually including age). Statistical inferences at the level of the individual participant can then be obtained with respect to the normative range (Marquand et al., 2019). This framework can detect patterns of abnormality that might not be consistent across the population, and recasts disease as an extreme deviation from the normal range rather than a separate group.PyNM is a lightweight python implementation of Normative Modeling making it approachable and easy to adopt.
The package provides:
• Python API and a command-line interface for wide accessibility
• Automatic dataset splitting and cross-validation
• Five models from various back-ends in a unified interface that cover a broad range of common use cases
• Solutions for very large datasets and heteroskedastic data
• Integrated plotting and evaluation functions to quickly check the validity of the model fit and results
• Comprehensive and interactive tutorials