Search code examples
pythonmathstatisticsregressionprobability

How to perform a polynomial regression from N-dimensions set of samples in Python?


Here is the context of my problem: I have data samples from measurements. I'm reccording N properties. From those data I would like to perform a sensitivity analysis to focus my study on significant parameters. If I use the sobol method for example, I need to transform my data into a "model" to manipulate it (estimation from regression).

As a result, here is my question: do you know a method (or a toolbox if it exists) to perform a N-dimensions polynomial/spline regression (not linear), in Python language?

I heard something about a catmull-rom method, but I don't understand how to apply it.

Thank you for your help!


Solution

  • This sounds like a job for Multivariate Adaptive Regression Splines (MARS). In python,

    https://github.com/scikit-learn-contrib/py-earth

    https://github.com/lanl/pyBASS

    The R version of the latter (R package BASS) has direct functionality for calculating Sobol indices. The python version only has a subset of the functionality to calculate Sobol indices.