Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

update fpca references #636

Open
wants to merge 6 commits into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
113 changes: 25 additions & 88 deletions docs/refs.bib
Original file line number Diff line number Diff line change
Expand Up @@ -223,29 +223,11 @@ @article{febrero-bande+oviedodelafuente_2012_statistical
keywords = {depth measures,functional data regression,non-parametric kernel estimation,outlier,representation of functional data}
}

@inbook{ferraty+vieu_2006_computational,
title = {Computational Issues},
booktitle = {Nonparametric Functional Data Analysis: Theory and Practice},
@book{ferraty+vieu_2006,
title = {Nonparametric Functional Data Analysis: Theory and Practice},
author = {Ferraty, Fr{\'e}d{\'e}ric and Vieu, Philippe},
year = {2006},
series = {Springer {{Series}} in {{Statistics}}},
pages = {99--108},
publisher = {{Springer-Verlag}},
address = {{New York}},
url = {https://www.springer.com/gp/book/9780387303697},
urldate = {2019-09-10},
collaborator = {Ferraty, Fr{\'e}d{\'e}ric and Vieu, Philippe},
isbn = {978-0-387-30369-7},
langid = {english}
}

@inbook{ferraty+vieu_2006_functional,
title = {Functional Nonparametric Prediction Methodologies},
booktitle = {Nonparametric Functional Data Analysis: Theory and Practice},
author = {Ferraty, Fr{\'e}d{\'e}ric and Vieu, Philippe},
year = {2006},
series = {Springer {{Series}} in {{Statistics}}},
pages = {49--59},
publisher = {{Springer-Verlag}},
address = {{New York}},
url = {https://www.springer.com/gp/book/9780387303697},
Expand Down Expand Up @@ -436,52 +418,12 @@ @inproceedings{ramos-carreno++_2022_scikitfda
keywords = {Data analysis,data visualization,Data visualization,Documentation,Ecosystems,Extrapolation,functional data analysis,Interpolation,machine learning,Machine learning,Python toolbox}
}

@inbook{ramsay+silverman_2005_functionala,
title = {From Functional Data to Smooth Functions},
booktitle = {Functional Data Analysis},
author = {Ramsay, James and Silverman, Bernard W.},
year = {2005},
series = {Springer {{Series}} in {{Statistics}}},
edition = {Second},
pages = {37--58},
publisher = {{Springer-Verlag}},
address = {{New York}},
doi = {10.1007/b98888},
url = {https://www.springer.com/gp/book/9780387400808},
urldate = {2021-09-19},
collaborator = {Ramsay, James and Silverman, Bernard W.},
isbn = {978-0-387-40080-8},
langid = {english},
keywords = {Multivariate analysis}
}

@inbook{ramsay+silverman_2005_introduction,
title = {Introduction},
booktitle = {Functional Data Analysis},
author = {Ramsay, James and Silverman, Bernard W.},
year = {2005},
series = {Springer {{Series}} in {{Statistics}}},
edition = {Second},
pages = {1--18},
publisher = {{Springer-Verlag}},
address = {{New York}},
doi = {10.1007/b98888},
url = {https://www.springer.com/gp/book/9780387400808},
urldate = {2021-09-19},
collaborator = {Ramsay, James and Silverman, Bernard W.},
isbn = {978-0-387-40080-8},
langid = {english},
keywords = {Multivariate analysis}
}

@inbook{ramsay+silverman_2005_registration,
title = {The Registration and Display of Functional Data},
booktitle = {Functional Data Analysis},
@book{ramsay+silverman_2005,
title = {Functional Data Analysis},
author = {Ramsay, James and Silverman, Bernard W.},
year = {2005},
series = {Springer {{Series}} in {{Statistics}}},
edition = {Second},
pages = {127--145},
publisher = {{Springer-Verlag}},
address = {{New York}},
doi = {10.1007/b98888},
Expand Down Expand Up @@ -545,31 +487,12 @@ @article{serfling+zuo_2000_general
keywords = {62G20,62H05,halfspace depth,multivariate symmetry,simplicial depth,Statistical depth functions}
}

@inbook{srivastava+klassen_2016_functionala,
title = {Functional Data and Elastic Registration},
booktitle = {Functional and Shape Data Analysis},
@book{srivastava+klassen_2016,
title = {Functional and Shape Data Analysis},
author = {Srivastava, Anuj and Klassen, Eric P.},
editor = {Bicke, Peter and Diggle, Peter and Fienberg, Stephen E. and Gather, Ursula and Olkin, Ingram and Zeger, Scott},
year = {2016},
series = {Springer {{Series}} in {{Statistics}}},
pages = {73--123},
publisher = {{Springer-Verlag}},
address = {{New York}},
doi = {10.1007/978-1-4939-4020-2},
url = {https://www.springer.com/gp/book/9781493940189},
urldate = {2020-01-12},
isbn = {978-1-4939-4018-9},
langid = {english}
}

@inbook{srivastava+klassen_2016_statistical,
title = {Statistical Modeling of Functional Data},
booktitle = {Functional and Shape Data Analysis},
author = {Srivastava, Anuj and Klassen, Eric P.},
editor = {Bicke, Peter and Diggle, Peter and Fienberg, Stephen E. and Gather, Ursula and Olkin, Ingram and Zeger, Scott},
year = {2016},
series = {Springer {{Series}} in {{Statistics}}},
pages = {269--303},
publisher = {{Springer-Verlag}},
address = {{New York}},
doi = {10.1007/978-1-4939-4020-2},
Expand Down Expand Up @@ -643,13 +566,28 @@ @inproceedings{torrecilla+suarez_2016_feature
urldate = {2018-09-25}
}

@inbook{wasserman_2006_nonparametric,
title = {Nonparametric Regression},
booktitle = {All of Nonparametric Statistics},
@article{wang+chiou+muller_2016_fpca,
title = {Functional Data Analysis},
author = {Wang, Jane-Ling and Chiou, Jeng-Min and M{\"u}ller, Hans-Georg},
year = {2016},
journal = {Annual Review of Statistics and Its Application},
volume = {3},
number = {Volume 3, 2016},
pages = {257--295},
publisher = {{Annual Reviews}},
issn = {2326-831X},
doi = {10.1146/annurev-statistics-041715-033624},
url = {https://www.annualreviews.org/content/journals/10.1146/annurev-statistics-041715-033624},
urldate = {2024-10-23},
abstract = {With the advance of modern technology, more and more data are being recorded continuously during a time interval or intermittently at several discrete time points. These are both examples of functional data, which has become a commonly encountered type of data. Functional data analysis (FDA) encompasses the statistical methodology for such data. Broadly interpreted, FDA deals with the analysis and theory of data that are in the form of functions. This paper provides an overview of FDA, starting with simple statistical notions such as mean and covariance functions, then covering some core techniques, the most popular of which is functional principal component analysis (FPCA). FPCA is an important dimension reduction tool, and in sparse data situations it can be used to impute functional data that are sparsely observed. Other dimension reduction approaches are also discussed. In addition, we review another core technique, functional linear regression, as well as clustering and classification of functional data. Beyond linear and single- or multiple- index methods, we touch upon a few nonlinear approaches that are promising for certain applications. They include additive and other nonlinear functional regression models and models that feature time warping, manifold learning, and empirical differential equations. The paper concludes with a brief discussion of future directions.},
keywords = {functional linear regression, functional principal component analysis, functional additive model, functional correlation, clustering and classification, time warping}
}

@book{wasserman_2006,
title = {All of Nonparametric Statistics},
author = {Wasserman, Larry},
year = {2006},
series = {Springer {{Texts}} in {{Statistics}}},
pages = {61--123},
publisher = {{Springer-Verlag}},
address = {{New York}},
url = {https://www.springer.com/gp/book/9780387251455},
Expand All @@ -658,4 +596,3 @@ @inbook{wasserman_2006_nonparametric
isbn = {978-0-387-25145-5},
langid = {english}
}

151 changes: 151 additions & 0 deletions docs/sg_execution_times.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,151 @@

:orphan:

.. _sphx_glr_sg_execution_times:


Computation times
=================
**00:00.682** total execution time for 39 files **from all galleries**:

.. container::

.. raw:: html

<style scoped>
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/5.3.0/css/bootstrap.min.css" rel="stylesheet" />
<link href="https://cdn.datatables.net/1.13.6/css/dataTables.bootstrap5.min.css" rel="stylesheet" />
</style>
<script src="https://code.jquery.com/jquery-3.7.0.js"></script>
<script src="https://cdn.datatables.net/1.13.6/js/jquery.dataTables.min.js"></script>
<script src="https://cdn.datatables.net/1.13.6/js/dataTables.bootstrap5.min.js"></script>
<script type="text/javascript" class="init">
$(document).ready( function () {
$('table.sg-datatable').DataTable({order: [[1, 'desc']]});
} );
</script>

.. list-table::
:header-rows: 1
:class: table table-striped sg-datatable

* - Example
- Time
- Mem (MB)
* - :ref:`sphx_glr_auto_examples_plot_pairwise_alignment.py` (``../examples/plot_pairwise_alignment.py``)
- 00:00.682
- 0.0
* - :ref:`sphx_glr_auto_examples_expand_skfda_plot_basis_subclass.py` (``../examples/expand_skfda/plot_basis_subclass.py``)
- 00:00.000
- 0.0
* - :ref:`sphx_glr_auto_examples_expand_skfda_plot_new_evaluator.py` (``../examples/expand_skfda/plot_new_evaluator.py``)
- 00:00.000
- 0.0
* - :ref:`sphx_glr_auto_examples_plot_aemet_unsupervised.py` (``../examples/plot_aemet_unsupervised.py``)
- 00:00.000
- 0.0
* - :ref:`sphx_glr_auto_examples_plot_boxplot.py` (``../examples/plot_boxplot.py``)
- 00:00.000
- 0.0
* - :ref:`sphx_glr_auto_examples_plot_classification_methods.py` (``../examples/plot_classification_methods.py``)
- 00:00.000
- 0.0
* - :ref:`sphx_glr_auto_examples_plot_clustering.py` (``../examples/plot_clustering.py``)
- 00:00.000
- 0.0
* - :ref:`sphx_glr_auto_examples_plot_composition.py` (``../examples/plot_composition.py``)
- 00:00.000
- 0.0
* - :ref:`sphx_glr_auto_examples_plot_depth_classification.py` (``../examples/plot_depth_classification.py``)
- 00:00.000
- 0.0
* - :ref:`sphx_glr_auto_examples_plot_discrete_representation.py` (``../examples/plot_discrete_representation.py``)
- 00:00.000
- 0.0
* - :ref:`sphx_glr_auto_examples_plot_elastic_registration.py` (``../examples/plot_elastic_registration.py``)
- 00:00.000
- 0.0
* - :ref:`sphx_glr_auto_examples_plot_explore.py` (``../examples/plot_explore.py``)
- 00:00.000
- 0.0
* - :ref:`sphx_glr_auto_examples_plot_extrapolation.py` (``../examples/plot_extrapolation.py``)
- 00:00.000
- 0.0
* - :ref:`sphx_glr_auto_examples_plot_fpca.py` (``../examples/plot_fpca.py``)
- 00:00.000
- 0.0
* - :ref:`sphx_glr_auto_examples_plot_fpca_inverse_transform_outl_detection.py` (``../examples/plot_fpca_inverse_transform_outl_detection.py``)
- 00:00.000
- 0.0
* - :ref:`sphx_glr_auto_examples_plot_fpca_regression.py` (``../examples/plot_fpca_regression.py``)
- 00:00.000
- 0.0
* - :ref:`sphx_glr_auto_examples_plot_functional_regression.py` (``../examples/plot_functional_regression.py``)
- 00:00.000
- 0.0
* - :ref:`sphx_glr_auto_examples_plot_interpolation.py` (``../examples/plot_interpolation.py``)
- 00:00.000
- 0.0
* - :ref:`sphx_glr_auto_examples_plot_k_neighbors_classification.py` (``../examples/plot_k_neighbors_classification.py``)
- 00:00.000
- 0.0
* - :ref:`sphx_glr_auto_examples_plot_kernel_regression.py` (``../examples/plot_kernel_regression.py``)
- 00:00.000
- 0.0
* - :ref:`sphx_glr_auto_examples_plot_kernel_smoothing.py` (``../examples/plot_kernel_smoothing.py``)
- 00:00.000
- 0.0
* - :ref:`sphx_glr_auto_examples_plot_landmark_registration.py` (``../examples/plot_landmark_registration.py``)
- 00:00.000
- 0.0
* - :ref:`sphx_glr_auto_examples_plot_landmark_shift.py` (``../examples/plot_landmark_shift.py``)
- 00:00.000
- 0.0
* - :ref:`sphx_glr_auto_examples_plot_magnitude_shape.py` (``../examples/plot_magnitude_shape.py``)
- 00:00.000
- 0.0
* - :ref:`sphx_glr_auto_examples_plot_magnitude_shape_synthetic.py` (``../examples/plot_magnitude_shape_synthetic.py``)
- 00:00.000
- 0.0
* - :ref:`sphx_glr_auto_examples_plot_neighbors_functional_regression.py` (``../examples/plot_neighbors_functional_regression.py``)
- 00:00.000
- 0.0
* - :ref:`sphx_glr_auto_examples_plot_neighbors_scalar_regression.py` (``../examples/plot_neighbors_scalar_regression.py``)
- 00:00.000
- 0.0
* - :ref:`sphx_glr_auto_examples_plot_oneway.py` (``../examples/plot_oneway.py``)
- 00:00.000
- 0.0
* - :ref:`sphx_glr_auto_examples_plot_oneway_synthetic.py` (``../examples/plot_oneway_synthetic.py``)
- 00:00.000
- 0.0
* - :ref:`sphx_glr_auto_examples_plot_phonemes_classification.py` (``../examples/plot_phonemes_classification.py``)
- 00:00.000
- 0.0
* - :ref:`sphx_glr_auto_examples_plot_radius_neighbors_classification.py` (``../examples/plot_radius_neighbors_classification.py``)
- 00:00.000
- 0.0
* - :ref:`sphx_glr_auto_examples_plot_representation.py` (``../examples/plot_representation.py``)
- 00:00.000
- 0.0
* - :ref:`sphx_glr_auto_examples_plot_shift_registration.py` (``../examples/plot_shift_registration.py``)
- 00:00.000
- 0.0
* - :ref:`sphx_glr_auto_examples_plot_surface_boxplot.py` (``../examples/plot_surface_boxplot.py``)
- 00:00.000
- 0.0
* - :ref:`sphx_glr_auto_examples_plot_tecator_regression.py` (``../examples/plot_tecator_regression.py``)
- 00:00.000
- 0.0
* - :ref:`sphx_glr_auto_tutorial_plot_basis_representation.py` (``../tutorial/plot_basis_representation.py``)
- 00:00.000
- 0.0
* - :ref:`sphx_glr_auto_tutorial_plot_getting_data.py` (``../tutorial/plot_getting_data.py``)
- 00:00.000
- 0.0
* - :ref:`sphx_glr_auto_tutorial_plot_introduction.py` (``../tutorial/plot_introduction.py``)
- 00:00.000
- 0.0
* - :ref:`sphx_glr_auto_tutorial_plot_skfda_sklearn.py` (``../tutorial/plot_skfda_sklearn.py``)
- 00:00.000
- 0.0
19 changes: 18 additions & 1 deletion examples/plot_fpca.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,18 @@
# to explore datasets and obtain conclusions about said dataset using this
# technique.
#
# First we are going to fetch the Berkeley Growth Study data. This dataset
# FPCA is a dimensionality reduction method for functional data that aims to
# reduce the complexity of studying observations by finding a finite number of
# principal components. These components are the directions that capture the
# main modes of variation across the function (the directions in which the
# curves vary the most). FPCA can be though of as a basis expansion, but what
# distinguishes FPCA is that among all basis expansions that use K components
# for a fixed K, the FPCA expansion explains most of the variation in X.
#
# For more information abour FPCA and its objectives, see
# :footcite:ts:`wang+chiou+muller_2016_fpca`.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is no footbibliography, so the references are not shown in this file.

#
# Firstly, we are going to fetch the Berkeley Growth Study data. This dataset
# correspond to the height of several boys and girls measured from birth to
# when they are 18 years old. The number and time of the measurements are the
# same for each individual. To better understand the data we plot it.
Expand Down Expand Up @@ -111,3 +122,9 @@
fpca = FPCA(n_components=2, components_basis=MonomialBasis(n_basis=4))
fpca.fit(basis_fd)
fpca.components_.plot()

# %%
# References
# ----------
#
# .. footbibliography::
5 changes: 3 additions & 2 deletions examples/plot_pairwise_alignment.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,9 @@
#
# In the case of elastic registration it is taken as energy function the
# Fisher-Rao distance with a penalisation term, due to the property of
# invariance to reparameterizations of warpings functions
# :footcite:p:`srivastava+klassen_2016_functionala`.
# invariance to reparameterizations of warpings functions,
# as detailed in Srivastava and Klassen's chapter, *"Functional Data and
# Elastic Registration"*, pp. 73-123\ :footcite:p:`srivastava+klassen_2016`.
#
# .. math::
# E[f \circ \gamma, g] = d_{FR} (f \circ \gamma, g)
Expand Down
5 changes: 3 additions & 2 deletions examples/plot_phonemes_classification.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,9 @@
# %%
# We will first load the (binary) Phoneme dataset and plot the first 20
# functions.
# We restrict the data to the first 150 variables, as done in
# :footcite:t:`ferraty+vieu_2006_computational`, because most of the
# We restrict the data to the first 150 variables, as done in Ferraty and
# Vieu's chapter, *"Computational Issues"*, pp. 99.-108\
# :footcite:ps:`ferraty+vieu_2006`, because most of the
# useful information is in the lower frequencies.
X, y = fetch_phoneme(return_X_y=True)

Expand Down
4 changes: 3 additions & 1 deletion examples/plot_tecator_regression.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,9 @@

# %%
# For spectrometric data, the relevant information of the curves can often
# be found in the derivatives\ :footcite:`ferraty+vieu_2006_computational`.
# be found in the derivatives, as discussed in Ferraty and Vieu's chapter,
# *"Computational Issues"*, pp. 99–108\
# :footcite:`ferraty+vieu_2006`.
# Thus, we compute numerically the second derivative and plot it.
X_der = X.derivative(order=2)
X_der.plot(gradient_criteria=y)
Expand Down
7 changes: 5 additions & 2 deletions skfda/datasets/_real_datasets.py
Original file line number Diff line number Diff line change
Expand Up @@ -1234,7 +1234,8 @@ def fetch_gait(

if fetch_gait.__doc__ is not None: # docstrings can be stripped off
fetch_gait.__doc__ += _gait_template.format(
cite=":footcite:p:`ramsay+silverman_2005_introduction`",
cite="Ramsay and Silverman, *'Introduction'*, pp. 1-18"
":footcite:p:`ramsay+silverman_2005`.",
bibliography=".. footbibliography::",
) + _param_descr

Expand Down Expand Up @@ -1344,7 +1345,9 @@ def fetch_handwriting(

if fetch_handwriting.__doc__ is not None: # docstrings can be stripped off
fetch_handwriting.__doc__ += _handwriting_template.format(
cite=":footcite:p:`ramsay+silverman_2005_functionala`",
cite="Ramsay and Silverman,"
"*'From Functional Data to Smooth Functions'*, pp. 37-58"
":footcite:p:`ramsay+silverman_2005`.",
bibliography=".. footbibliography::",
) + _param_descr

Expand Down
Loading