1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
//! Functional data analysis and functional regression.
//!
//! This module provides tools for analyzing data where each observation is a
//! function (curve) rather than a finite-dimensional vector. Key capabilities:
//!
//! - **Basis function expansion**: B-spline, Fourier, and polynomial bases
//! - **Curve smoothing**: Penalized least squares with GCV-based parameter selection
//! - **Functional PCA (fPCA)**: Extract principal modes of variation across curves
//! - **Scalar-on-function regression**: Predict a scalar from a functional predictor
//! - **Function-on-function regression**: Predict a curve from a functional predictor
//!
//! # Example
//!
//! ```rust
//! use scirs2_stats::functional::{
//! FunctionalData, FunctionalConfig, BasisType,
//! functional_pca, ScalarOnFunctionRegression,
//! };
//!
//! // Create some functional data (5 curves on a grid of 50 points)
//! let grid: Vec<f64> = (0..50).map(|i| i as f64 / 49.0).collect();
//! let observations: Vec<Vec<f64>> = (0..5)
//! .map(|i| {
//! grid.iter()
//! .map(|&t| (i as f64 * 0.5).sin() * t + (i as f64 * 0.3).cos() * t * t)
//! .collect()
//! })
//! .collect();
//!
//! let data = FunctionalData::new(grid, observations).expect("valid data");
//! let config = FunctionalConfig::default();
//!
//! // Functional PCA
//! let fpca_result = functional_pca(&data, &config).expect("fPCA succeeds");
//! ```
// Re-export main types and functions
pub use ;
pub use ;
pub use ;
pub use ;