GAA-UAM / scikit-fda

Functional Data Analysis Python package
https://fda.readthedocs.io
BSD 3-Clause "New" or "Revised" License
300 stars 53 forks source link

Provide function for general case of function-on-function regression #360

Open architdatar opened 3 years ago

architdatar commented 3 years ago

Currently, there doesn't seem to be a way to implement the general case of function-on-function regression (Ramsay, Hooker and Graves, 2009 Section 10.3). Specifically, the effect on y of x with the whole domain cannot be considered. The "Historical Linear Regression" method in the machine learning module comes close, but the upper limit of the integration is set at "t", the current value of the y variable. This is beneficial if the y(t) and x(s) are functions of time as it avoids the problem of backwards causation. But in case they are not, for example, x(s) is spectroscopic data, having a restricted on limits of integration can be problematic.

A simple solution could be to tweak the Historical Linear Regression code to provide an option to integrate over the entire domain of x.

Ramsey, Hooker and Graves book link (https://www.springer.com/gp/book/9780387981840)

Equation from that book:

Screenshot 2021-06-26 233944

Current equation in historical linear regression Screenshot 2021-06-26 234029

vnmabus commented 3 years ago

Thank you for your feedback! We are aware of that missing functionality and it is definitely in our plans to implement it.