Package: pygam
pyGAMGeneralized Additive Models in Python.DocumentationOfficial pyGAM Documentation: Read the DocsBuilding interpretable models with Generalized additive models in PythonInstallationpip install pygamscikit-sparseTo speed up optimization on large models with constraints, it helps to havescikit-sparseinstalled because it contains a slightly faster, sparse version of Cholesky factorization. The import fromscikit-sparsereferencesnose, so you'll need that too.The easiest way is to use Conda:conda install -c conda-forge scikit-sparse nosescikit-sparse docsContributing - HELP REQUESTEDContributions are most welcome!You can help pyGAM in many ways including:Working on aknown bug.Trying it out and reporting bugs or what was difficult.Helping improve the documentation.Writing newdistributions, andlink functions.If you need some ideas, please take a look at theissues.To start:fork the projectand cut a new branchNowinstallthe testingdependenciesconda install cython
pip install --upgrade pip
pip install poetry
poetry install --with devMake some changes and write a test...Testyour contribution (eg from the.../pyGAM):py.test -sWhen you are happy with your changes, make apull requestinto themasterbranch of the main project.AboutGeneralized Additive Models (GAMs) are smooth semi-parametric models of the form:whereX.T = [X_1, X_2, ..., X_p]are independent variables,yis the dependent variable, andg()is the link function that relates our predictor variables to the expected value of the dependent variable.The feature functionsf_i()are built usingpenalized B splines, which allow us toautomatically model non-linear relationshipswithout having to manually try out many different transformations on each variable.GAMs extend generalized linear models by allowing non-linear functions of features while maintaining additivity. Since the model is additive, it is easy to examine the effect of eachX_ionYindividually while holding all other predictors constant.The result is a very flexible model, where it is easy to incorporate prior knowledge and control overfitting.Citing pyGAMPlease consider citing pyGAM if it has helped you in your research or work:Daniel Servén, & Charlie Brummitt. (2018, March 27). pyGAM: Generalized Additive Models in Python. Zenodo.DOI: 10.5281/zenodo.1208723BibTex:@misc{daniel\_serven\_2018_1208723,
  author       = {Daniel Servén and
                  Charlie Brummitt},
  title        = {pyGAM: Generalized Additive Models in Python},
  month        = mar,
  year         = 2018,
  doi          = {10.5281/zenodo.1208723},
  url          = {https://doi.org/10.5281/zenodo.1208723}
}ReferencesSimon N. Wood, 2006Generalized Additive Models: an introduction with RHastie, Tibshirani, FriedmanThe Elements of Statistical Learninghttp://statweb.stanford.edu/~tibs/ElemStatLearn/printings/ESLII_print10.pdfJames, Witten, Hastie and TibshiraniAn Introduction to Statistical Learninghttp://www-bcf.usc.edu/~gareth/ISL/ISLR%20Sixth%20Printing.pdfPaul Eilers & Brian Marx, 1996
Flexible Smoothing with B-splines and Penaltieshttp://www.stat.washington.edu/courses/stat527/s13/readings/EilersMarx_StatSci_1996.pdfKim Larsen, 2015GAM: The Predictive Modeling Silver Bullethttp://multithreaded.stitchfix.com/assets/files/gam.pdfDeva Ramanan, 2008UCI Machine Learning: Notes on IRLShttp://www.ics.uci.edu/~dramanan/teaching/ics273a_winter08/homework/irls_notes.pdfPaul Eilers & Brian Marx, 2015International Biometric Society: A Crash Course on P-splineshttp://www.ibschannel2015.nl/project/userfiles/Crash_course_handout.pdfKeiding, Niels, 1991Age-specific incidence and prevalence: a statistical perspective