Uncovering Data Across Continua: An Introduction to Functional Data Analysis
Sophie Dabo-Niang Camille Frévent




Electronic structure, self-doping, and superconducting instability in the alternating single-layer trilayer stacking nickelates La_3Ni_2O_7
    Elbio Dagotto
    April 29, 2024
===========================================================================================================================================





Sophie Dabo-Niang^1, Camille Frévent^2



^1Univ. Lille, CNRS, UMR 8524-Laboratoire Paul Painlevé, Inria-MODAL, Lille, F-59000, France

^2Univ. Lille, CHU Lille, ULR 2694 - METRICS: Evaluation des technologies de santé et des pratiques médicales, F-59000 Lille, France 






§ ABSTRACT

In a world increasingly awash with data, the need to extract meaningful insights from data has never been more crucial. Functional Data Analysis (FDA) goes beyond traditional data points, treating data as dynamic, continuous functions, capturing ever-changing phenomena nuances. This article introduces FDA, merging statistics with real-world complexity, ideal for those with mathematical skills but no FDA background.



§ INTRODUCTION

Nowadays, advancements in data collection technologies like sensors, computer vision, medical imaging, IoT and wearables have generated vast volumes of high-frequency data across various fields.
These data are not just a collection of numbers and tables but a rich, dynamic tapestry of information that captures the essence of change over a continuum. Functional Data Analysis (FDA)
<cit.> efficiently handles large-scale, high-dimensional datasets, extracting valuable insights from data containing structured
information. 


Unlike traditional statistics dealing with discrete data points, FDA focuses on entire functions, curves or shapes, providing insights into continuous changes.
Whether analyzing time series, spatial data, growth curves, or any structured dataset, FDA excels at capturing ongoing change.
FDA's applications span various fields like medicine, biology, chemistry, economics, and environmental science, offering insights beyond isolated measurements. It aids in patient health tracking, economic trend analysis, chemical or environmental management by modeling and understanding complex systems. In manufacturing, FDA can be applied to monitor continuous processes, such as chemical reactions, quality control measurements, and equipment performance. It helps detect deviations from the desired process behavior <cit.>.
In computational biology, FDA involves studying complex biomolecular structures and understanding the relationship between organism shapes and functionality.
FDA techniques are also applied to analyze longitudinal patient data <cit.>, which are common in clinical trials. This enables the study of disease progression, treatment effectiveness, and personalized medicine.
Furthermore, in biology, in the omics data context, gene expression data comprise measurements of gene expression levels across thousands of genes at multiple time points. 
By considering these data as a function of time, FDA <cit.> can help researchers to better understand the general features and dynamics of gene expression, to identify key genes associated with specific diseases or biological processes, and to identify differences or similarities between genes. 

In economics, FDA is employed to analyze longitudinal data, such as stock prices, gross domestic product trends, and inflation rates. It helps identify long-term patterns, cyclic behavior, and structural changes <cit.>.
In environmental science, FDA is used to analyze temporal or space-time environmental data, such as temperature records, precipitation patterns, and ocean currents. It aids in understanding long-term climate trends and variability. FDA can be applied to study spatial data, helping to identify pollution hotspots <cit.>, or study vegetation growth, and monitor land use changes over time.


In essence, FDA transcends traditional data analysis limitations by leveraging data with functionality, providing valuable statistical tools for researchers and professionals seeking deeper insights and solutions to complex problems. We explore FDA's significance, mathematical foundations, practical applications, and future prospects to unveil its transformative potential.





§ THE SIGNIFICANCE OF FUNCTIONAL DATA ANALYSIS

In various fields, FDA provides a powerful set of methods to model, analyze, and interpret data that exhibit continuous variation, allowing researchers and professionals to gain deeper insights, make more accurate predictions, and informed decisions based on the inherent functional nature of the data. This versatility makes FDA a valuable approach in a wide range of scientific and practical applications <cit.>.
 
Employing mathematical domains like linear algebra, functional analysis, probability and statistics, FDA manipulates and analyzes functions by representing data as observations of random variables in a function space. This allows operations like differentiation, integration, and smoothing, facilitating exploration of data structure and variations.
By treating data as functions, FDA helps uncover hidden patterns, relationships, and trends that would be challenging to discern using traditional statistical methods, leading to more informed decision-making and a deeper understanding of complex phenomena.



 §.§ FDA versus Multivariate statistics


Is it worthwhile to employ continuous representations, or are we unnecessarily adding complexity to our tasks? Given that discrete data are often needed for computational purposes, what are the benefits of utilizing continuous representations in our analyses?
While discrete data may offer computational convenience, the advantages of working with continuous representations are numerous. By viewing objects as functions, curves, or surfaces, scientists can unlock more powerful analysis techniques, yielding better practical results and more natural solutions. Grenander's principle of discretizing as late as possible underscores the importance of retaining continuous representations for as long as feasible, highlighting their inherent value in data analysis workflows. With this in mind, let us consider how continuous representations enhance our understanding and analysis of data. 

If data are sampled from an underlying function (e.g., Figure <ref> (a)), and time points are synchronized across observations, focusing solely on heights, then analysis can be conducted using the vector 
 𝐱=(x_1, x_2, …, x_L)^⊤. 
If the time points hold significance as well, then it is necessary to retain them alongside the height data: 
((t_1,x_1), (t_2,x_2), …, (t_L,x_L))^⊤.
With continuous functions one can interpolate and resample at arbitrary points (e.g., Figure <ref> (b)) and compare easily observations with different time points, as elements of a function space.



In traditional data analysis, one might work with data points in a table where each row represents an observation (e.g., 𝐱) and each column represents a variable. In FDA, the data are treated as functions, where each observation is considered as a function (e.g., in Figure <ref> (a)) that maps a continuous variable (often time, frequency, wavelength or a spatial dimension) to a measured value. These functions represent how the data change over the continuum.
 Understanding functions necessitates a profound grasp of the structures lying beneath them. Analyzing these structures requires a solid foundation of mathematical representations. The FDA approach empowers researchers to investigate various models extensively, thus expanding the comprehension of data characterized by functional structures across diverse fields of science and engineering. Examples of functional data are illustrated in Figure <ref>.





§ MATHEMATICAL FOUNDATIONS OF FDA

FDA involves a variety of specialized statistical techniques for handling functional data <cit.>, including methods for function smoothing, visualization (e.g., plotting entire functions as curves or surfaces), dimension reduction (e.g., functional principal component analysis), functional regression, and clustering. These techniques account for the continuous nature of the data and are designed to capture underlying patterns and structures in functions. As said before, analyzing these functions involves mathematical representations.


Let (Ω, 𝒜, ℙ) be a probability space, ℱ a function space (e.g., a separable Banach space or a Hilbert space). A functional random variable is a variable 

    X={X(t), t∈𝒯} : Ω→ℱ,

taking values in ℱ (of eventually infinite dimension). A functional data is then an observation of the functional random variable X.


If 𝒯⊆ℝ then X is a curve while an image may be considered as a functional data in the case where 𝒯⊆ℝ^2. If 𝒯⊆ℝ^d (d>2), X has a more complex structure.



Let us consider in the following the commonly used functional Hilbert space ℒ^2(𝒯,ℝ), the space of p-dimensional vector-valued square-integrable functions on 𝒯, and give the main background to analyse functional data. First, consider the inner product on that Hilbert space: for f,g ∈ℒ^2(𝒯,ℝ), 
⟨ f,g ⟩ = ∫_𝒯 f(t)  g(t)  dt. The mean and the covariance functions of the random variable X ∈ℒ^2(𝒯,ℝ), assumed as smooth functions, are respectively 

    μ_X(t) = 𝔼[X(t)] ∈ℝ
 and 

    C_X(s,t) = Cov(X_s,X_t) = 𝔼{[X(t) - μ_X(t)] [X(s)-μ_X(s)] }∈ℝ.

The latter is viewed as the kernel of the linear Hilbert-Schmidt operator Γ_X on ℱ=ℒ^2(𝒯,ℝ):
Γ_X: ℱ→ℱ, Γ_X f(t)=∫_𝒯C_X(t,s) f(s)  ds. Note that Γ_X admits the spectral decomposition
Γ_X=∑_j≥ 1λ_j f_j⊗ f_j
where (f⊗ g)(x)=⟨ f,x ⟩ g, x∈ℱ, {f_j}_j is a complete orthonormal system in ℒ^2(𝒯,ℝ) and 
{λ_j}_j is a decreasing sequence of positive real numbers such that ∑_j≥ 1λ_j < ∞.


Let X_1, …, X_n be an independent and identically distributed (i.i.d.) sample of X.

The usual estimator of μ_X is the method of moments estimator given by
μ_X(t) = 1/n∑_i=1^n X_i(t).

In this i.i.d. framework, there are several theoretical guarantees regarding the convergence of μ_X to μ_X (such as the law of large numbers, the central limit theorem, and concentration inequalities of the Bernstein type, see Chapter 2 of <cit.>). For instance, for the Hilbert space ℱ equipped with a norm ._ℱ, if 
𝔼[X_1_ℱ]<∞
then μ_X →μ_X almost surely as n →∞.
If 
𝔼[X_1^2_ℱ]<∞, μ_X is asymptotically normally distributed: 
 √(n)( μ_X - μ_X ) converges in distribution to 𝒩(0,C_X). 
 
Classic empirical estimators of the covariance operator Γ_X and covariance function C_X are
Γ_X=1/n∑_i=1^n (X_i-μ_X) ⊗ (X_i-μ_X)
and
C_X(s,t)=1/n∑_i=1^n [X_i(t)-μ_X(t)] [X_i(s)-μ_X(s)].
Several asymptotic results on Γ_X are given in Chapter 4 of <cit.>. More theoretical details are given in this last reference, as well as in <cit.> and <cit.>.



  
From raw data to functional data:
Note that, in practice, we observe raw data (e.g., the average daily temperature in spatial locations described by the first panel of Figure <ref>: the temperature in each location is measured every day from 1960 to 1994) of the form

    x_i,t_i,l_i,   t_i,l_i∈𝒯,   i=1,…,n    l_i=1…, L_i.




It should be noted that the observation times t_i,l_i can vary in number and value depending on the individual i. 

Following <cit.>, we should distinguish the case of sparse and dense functional data. Dense functional data are characterized by the fact that all L_i are larger than some order of n. In this case, it is possible to use a smoothing technique on the raw data x_i,t_i,l_i to recover the original curves. 

It is common in FDA to assume that the L_i observations {x_i,t_i,1, …, x_i,t_i,L_i} are noisy observations of the smooth latent curve X_i(.). Namely, we have x_i,t_i,l_i=X_i(t_i,l_i)+ε_i,t_i,l_i, where the error terms ε_i,t_i,l_i are zero mean and i.i.d. In the early stages of FDA, this smoothing is typically conducted as an initial step by kernel smoothing, local polynomial smoothing, Fourier, spline or penalized spline approaches.

The classic smoothing approach is basis expansion by assuming that X_i, 1 ≤ i ≤ n can be expressed as a finite combination of the first K functions of a basis functions {ϕ_1, …ϕ_K, …} of ℒ^2(𝒯,ℝ):

    X_i(t) = _k=1^K a_i,kϕ_k (t).

This is equivalent to write
X_i(t) = ϕ(t)a_i
where ϕ(t) = (ϕ_1(t), ⋯, ϕ_K(t)) 
and a_i = (a_i,1, …, a_i,K)^⊤. Then the estimators of the mean and covariance functions of X can be defined respectively on 𝒯 by 

    μ_X(t) = 1n∑_i=1^n X_i(t)=1nϕ(t) _i=1^n a_i, and C_X(s,t) = 1nϕ(t) A^⊤ A ϕ(s)^⊤

where A is the n × K matrix whose i^th row A_i is equal to ( a_i - 1/n∑_k=1^n a_k )^⊤. Depending on the nature of the data, various choices for the ϕ_k are possible. In the case of periodic data, a Fourier basis is appropriate, whereas for non-periodic data, possible choices are polynomial basis or splines basis. Figure <ref> shows a transition from raw data to functional data using a cubic B-splines basis. This process is not applicable for sparse functional data due to the very limited quantity of information available for each curve. Sparse data require more sophisticated approaches not discuss here. For more details concerning basis options, please see <cit.> and for other smoothing techniques or more details on the sampling design of functional data, see <cit.>. 







With the growing popularity of functional data analysis, numerous statistical methods have been extended and adapted to this context. In the following discussion, we explore some of the most valuable and widely used ones (principal component analysis, clustering, linear and non-linear regressions). It should be noted that we only consider the case of univariate functional data, i.e., for all t ∈𝒯, X(t) ∈ℝ. The structure of multivariate functional data (X(t) ∈ℝ^p, p ≥ 2) is more complex, please refer to <cit.> for more details. 




  
Functional principal component analysis:




<cit.> has expanded upon the conventional and widely employed statistical approach known as Principal Component Analysis (PCA) to accommodate variables with values in a separable Hilbert space. Then PCA has been extended to accommodate specifically univariate functional data (see for example <cit.> and <cit.>).
This technique is particularly useful for reducing the dimensions of the data, extracting their main features, providing an indication of their complexity and gaining insights into the underlying patterns and structures.
The subsequent paragraph discusses the functional PCA method within the context of univariate functional data, noting that the case of multivariate functional data has also been investigated in the literature <cit.>.


The above spectral decomposition of Γ_X is linked to the PCA on the X_i. In fact, functional PCA aims to represent the i.i.d. curves X_i using a few (P) principal orthogonal eigenfunctions f_j ∈ℒ^2(𝒯,ℝ) so that 
    X_i(t) ≈μ_X(t) + _j=1^P c_i,j f_j(t).

This is an approximation of the Kosambi-Karhunen-Loève <cit.> 
expansion that states that 

    X_i(t) = μ_X(t) + _j≥ 1 c_i,j f_j(t),

where {f_j}_j≥ 1 and λ_1≥λ_2≥…≥ 0 are the eigenfunctions and eigenvalues of Γ_X.
The c_i,j=⟨ X_i-μ_X , f_j ⟩ are called the scores, they extract the main features of X_i and are centered pairwise uncorrelated random variables. 

Note that the Kosambi-Karhunen-Loève expansion is related to Mercer’s theorem <cit.>, 
that states

    C_X(s,t)=_j≥ 1λ_j f_j(t)f_j(s).



Since the mean and covariance functions are unknown, in the early stage of FDA, applying a functional PCA is in practice equivalent to find estimated orthogonal eigenfunctions f_j so that 

    ∀ t, _𝒯C_X(s,t) f_j(s)  ds = λ_j f_j(t).

Hence, assuming that f_j can be expressed as
f_j(t) = ϕ(t) b_j, the task is to find λ_j ∈ℝ and b_j ∈ℝ^K so that 

    1n A^⊤ A _𝒯ϕ(s)^⊤ϕ(s)  ds  b_j = λ_j b_j.

By defining W = ∫_𝒯ϕ(s)^⊤ϕ(s)  ds and u_j = b_j^⊤ W^1/2, and then multiplying the previous equation on the left by W^1/2⊤, we arrive at the classic PCA formula (where Z = A W^1/2):

    1n Z^⊤ Z u_j^⊤ = λ_j u_j^⊤.

Subsequently, it becomes straightforward to ascertain the values of u_j and λ_j. Additionally, the determination of b_j (and consequently f_j) can be inferred through the following relationships:

    b_j = (u_j W^-1/2)^⊤, f_j(t) = ϕ(t) b_j.

Ultimately, the estimated scores c_i,j are given by c_i,j = ⟨ X_i-μ_X, f_j ⟩ = A_i W b_j.
It should be noted that, although not discussed here, other approaches for functional PCA have been proposed in the literature. A more complete review can be found in <cit.>.



  
Functional linear regression:

Numerous studies have explored regression modeling within the context of functional data <cit.>.
In the following, we focus on presenting generalized functional linear models, which are designed to model a continuous response variable as a function of functional covariates.

In this framework, we consider a real-valued response variable Y and a functional covariate {X(t), t ∈𝒯}∈ℒ^2(𝒯,ℝ).
Throughout the section, we assume that X has been centered and that we have a sample (Y_i,{X_i(t), t ∈𝒯})_i=1, …, n of n i.i.d. replications of (Y,{X(t), t ∈𝒯}). 

Generalized functional linear regression posits that the relationship between the response variable and the functional covariate is defined as follows:

    𝔼[Y|{X(t), t ∈𝒯}] = g^-1(η), Var[Y|{X(t), t ∈𝒯}] = V(g^-1(η)),

where g is a monotonic “link function”, V is a positive “variance function” and β∈ℒ^2(𝒯,ℝ), η is a linear predictor defined by 
η = α + _𝒯 X(t)  β(t)  dt.

The model finds practical applications in various scenarios, such as establishing associations between the incidence of respiratory diseases (e.g., asthma, lung cancer) and air pollution levels in the months or years leading up to the study. In such cases, a generalized functional linear Poisson regression model is often employed, where the link function g is the logarithm, and V is the identity function.

The simplest and most popular model is the so-called functional linear model, where g is the identity function, and V is a constant function:

    Y_i= α + _𝒯 X_i(t)  β(t)  dt +ε_i.

The random variables ε_i are assumed i.i.d., scalar variables with a mean of zero and a constant variance. Sometimes, an additional assumption of normality is made.

More generally, this linear model may encompass both functional (X_i) and non-functional (Z_i ∈ℝ^d, d≥ 1) covariates, so that:

    Y_i = α + Z_i^⊤θ+ _𝒯 X_i(t)  β(t)  dt + ε_i,

with θ∈ℝ^d. 


The primary challenge in FDA lies in dealing with the infinite dimension of the functional variable. A frequently adopted solution is to approximate X_i as a finite combination of orthogonal basis functions (as mentioned earlier), as well as β.
However, in practice, finding such a basis is not always straightforward. 
An orthonormal basis can be derived through functional PCA:

    X_i(t) ≈_j = 1^P c_i,j f_j(t)
 where the f_j are the orthonormal eigenfunctions. By assuming that β can also be written as
β(t) ≈∑_j = 1^P d_j f_j(t),
we then obtain the following truncated linear regression model: Y_i = α + Z_i^⊤θ+ ∑_j = 1^P c_i,j d_j+ ε_i.
Beyond the linear model, this truncation procedure leads to a classic generalized linear model with covariates c_i,j and Z_i.





  
Functional data clustering:
Clustering is the process of organizing observations into clusters, where observations within each cluster share similar characteristics, while the characteristics of each cluster are distinct from those of others. Clustering methods can be broadly categorized into hierarchical, partitional, and model-based approaches. Researchers have explored adaptations of these categories to the functional data framework. In the case of hierarchical methods, a significant challenge arises in devising an appropriate similarity measure for functional observations.
One approach to addressing this challenge was presented by <cit.>.
Among partitional methods, the most well-known technique is the K-means algorithm. It starts by randomly selecting K points as the initial centers of K groups and then assigns each observation to the group with the closest centroid. The centroids of the K groups are then recalculated, and the observations are reassigned to the groups iteratively until convergence.

Then, the K-means algorithm relies on measuring the distance between observations, typically using the Euclidean distance for non-functional data. However, when dealing with functional data, this distance metric needs to be adapted. <cit.> conducted a study where they compared various approaches for modifying the K-means algorithm in the context of functional data.

Model-based clustering based on mixture of distributions have also been proposed. The interested reader may refer to <cit.> for a detailed examination of clustering approaches specific to functional data.

For more comprehensive details, methodologies, and applications, please refer to the reviews provided by <cit.>.






§ APPLICATIONS AND FUTURE DIRECTIONS


A multitude of methods for handling functional data have been introduced, with many others yet to be discovered. In this section, we highlight the potential of functional data through an illustration of clustering using the well-known Canadian Weather dataset from the  package fda. We focus on the average daily temperature recorded every day from 1960 to 1994 in 35 spatial locations in Canada.

As said above, in practical applications, functional data are typically observed at discrete points, such as the 365 days of the year. However, it is possible to reconstruct the underlying functions by representing them in a basis of functions. The initial step of this process is depicted in Figure <ref>, where a B-splines basis has been employed.




To distinguish groups of Canadian cities based on their temperature patterns, we applied the K-means algorithm proposed by <cit.> and implemented in the  package fdacluster. The optimal number of groups was determined using the optimal average silhouette index and the resulting clustering results are depicted in Figure <ref>.
We can observe that two distinct groups of Canadian cities emerge from the analysis: the first group (in green) corresponds to cities with consistently lower temperatures throughout the year, while the second group (in red) represents cities with consistently higher temperatures. 



In addition to the functional aspect of the data, the spatial dimension is becoming increasingly relevant, particularly in the context of environmental data. Thus, the literature has seen the emergence of numerous methods specifically tailored to the analysis of spatial functional data. Recently, several spatial cluster detection methods have been introduced in this context. These methods can be used, for instance, to identify environmental hotspots characterized by elevated levels of certain pollutants.

In the following example, we will demonstrate a cluster detection approach that incorporates both the spatial and the functional nature of the data. This approach is the distribution-free functional spatial scan statistic (DFFSS) proposed by <cit.>, which has been implemented in the  package HDSpatialScan. The data used in this example are sourced from the National Air Quality Forecasting Platform (<www.prevair.org>) and are available within the package. They comprise the daily average concentration of the pollutant NO_2 recorded from May 1 to June 25, 2020, in northern France. Figures <ref> and <ref> present the raw data, their functional reconstruction using a B-splines basis, and their spatial distribution, respectively.






Figure <ref> (left panel) displays the statistically significant cluster detected by the DFFSS (highlighted in red) in this air pollution dataset. The right panel compares the NO_2 concentration over the time within this cluster (in red) with that outside the cluster (in grey), revealing higher concentrations of NO_2 within the identified cluster. This information can be valuable for authorities in conducting local investigations and implementing policies to mitigate pollution. 




FDA's significance has grown significantly owing to its relevance across diverse domains and the advancements in data collection technology (please refer to <cit.> for further insights). The role of FDA in comprehending, analyzing, and harnessing these datasets is poised to expand further. FDA's utilization in burgeoning fields will influence the trajectory of data-driven innovation, decision-making, and issue resolution. Here is a glimpse of FDA's potential past and forthcoming contributions in these areas:



  * Healthcare and Personalized Medicine:
FDA can analyze patient data as continuous functions, allowing for personalized treatment plans based on individual health profiles. Real-time monitoring through wearables and FDA can aid in disease prediction and the optimization of treatment strategies.


  * Artificial Intelligence (AI) and Machine Learning (ML):
FDA provides a nuanced representation of data, improving AI and ML models' performance in various applications. In speech recognition, it enhances accuracy by capturing the continuous nature of speech signals.


  * Climate Science:
In high-resolution climate data analysis, FDA identifies subtle patterns and trends, aiding in modeling, prediction, and mitigation strategies. Continuous data analysis contributes to precise climate projections and monitoring environmental changes.


  * Digital Marketing and User Behavior:
In the digital realm, FDA uncovers intricate user behavior patterns, optimizing marketing, user experience, and product recommendations. It analyzes continuous data streams from digital platforms for deeper insights.


  * Brain-Computer Interfaces (BCIs):
FDA enhances BCIs by interpreting continuous brain activity data for prosthetics, neurorehabilitation, and cognitive augmentation. It enables precise control of assistive devices and cognitive enhancements.


  * Smart Cities:
In smart cities, FDA optimizes urban planning, transportation systems, and energy consumption by analyzing continuous IoT and sensor data. It helps design sustainable and efficient cities through traffic analysis and energy usage trends.


  * Biotechnology and Synthetic Biology:
In biotechnology, FDA models complex biological systems, facilitating the design of custom organisms and pharmaceuticals. It analyzes longitudinal data to engineer organisms for specific tasks.





  
Softwares:
The Task View Functional Data Analysis on CRAN (<https://cran.r-project.org/web/views/FunctionalData.html>) lists the available  packages in the field of FDA, covering general functional data analysis, unsupervised learning (PCA, clustering, …), supervised learning (regression, classification), visualization and exploratory data analysis, registration, and alignment.  and  also offer a few alternatives such as fdasrsf and scikit-fda (for ), and fda or fdasrvf (for ).





§ CONCLUSION


Functional Data Analysis (FDA) understands and extracts meaningful insights from data that continuously vary over a continuum. While FDA may be particularly intriguing for those with a mathematical inclination, it invites everyone to explore the process of transforming numbers into valuable insights and offers a statistical approach that allows us to gain a deeper understanding of the world and actively contribute to shaping the future.

Indeed, over time, the methods and frequency of data collection will evolve, and computing and storage capacities will increase. The development of functional analysis methods is therefore essential, and their applications will improve decision-making in a variety of fields, providing biologists, economists, and policymakers with accurate information to make informed choices.

FDA is therefore a powerful field for understanding, analyzing, and using complex datasets. Thus, next time you see a graph, don't just see points and lines, but look for the continuous story it tells, the hidden patterns it holds, and the insights it offers. Remember what you just read: this is the realm of functional data analysis, where numbers transform into narratives waiting to be discovered.






chicago



