From 9d1de4186e9f4fa2429a5f61884e2257abb3cfd8 Mon Sep 17 00:00:00 2001 From: mhjensen Date: Fri, 7 Sep 2018 05:32:45 +0200 Subject: [PATCH] updated regression analysis slides --- .../Regression/html/._Regression-bs000.html | 84 +- .../Regression/html/._Regression-bs001.html | 82 +- .../Regression/html/._Regression-bs002.html | 82 +- .../Regression/html/._Regression-bs003.html | 82 +- .../Regression/html/._Regression-bs004.html | 82 +- .../Regression/html/._Regression-bs005.html | 82 +- .../Regression/html/._Regression-bs006.html | 82 +- .../Regression/html/._Regression-bs007.html | 82 +- .../Regression/html/._Regression-bs008.html | 82 +- .../Regression/html/._Regression-bs009.html | 82 +- .../Regression/html/._Regression-bs010.html | 82 +- .../Regression/html/._Regression-bs011.html | 82 +- .../Regression/html/._Regression-bs012.html | 82 +- .../Regression/html/._Regression-bs013.html | 82 +- .../Regression/html/._Regression-bs014.html | 82 +- .../Regression/html/._Regression-bs015.html | 82 +- .../Regression/html/._Regression-bs016.html | 82 +- .../Regression/html/._Regression-bs017.html | 82 +- .../Regression/html/._Regression-bs018.html | 82 +- .../Regression/html/._Regression-bs019.html | 82 +- .../Regression/html/._Regression-bs020.html | 82 +- .../Regression/html/._Regression-bs021.html | 82 +- .../Regression/html/._Regression-bs022.html | 82 +- .../Regression/html/._Regression-bs023.html | 82 +- .../Regression/html/._Regression-bs024.html | 82 +- .../Regression/html/._Regression-bs025.html | 82 +- .../Regression/html/._Regression-bs026.html | 82 +- .../Regression/html/._Regression-bs027.html | 82 +- .../Regression/html/._Regression-bs028.html | 82 +- .../Regression/html/._Regression-bs029.html | 82 +- .../Regression/html/._Regression-bs030.html | 82 +- .../Regression/html/._Regression-bs031.html | 82 +- .../Regression/html/._Regression-bs032.html | 82 +- .../Regression/html/._Regression-bs033.html | 82 +- .../Regression/html/._Regression-bs034.html | 82 +- .../Regression/html/._Regression-bs035.html | 82 +- .../Regression/html/._Regression-bs036.html | 196 +- .../Regression/html/._Regression-bs037.html | 136 +- .../Regression/html/._Regression-bs038.html | 121 +- .../Regression/html/._Regression-bs039.html | 200 +- .../Regression/html/._Regression-bs040.html | 183 +- .../Regression/html/._Regression-bs041.html | 136 +- .../Regression/html/._Regression-bs042.html | 177 +- .../Regression/html/._Regression-bs043.html | 189 +- .../Regression/html/._Regression-bs044.html | 199 +- .../Regression/html/._Regression-bs045.html | 108 +- doc/pub/Regression/html/Regression-bs.html | 84 +- .../Regression/html/Regression-reveal.html | 739 ++++-- .../Regression/html/Regression-solarized.html | 767 ++++-- doc/pub/Regression/html/Regression.html | 767 ++++-- doc/pub/Regression/ipynb/Regression.ipynb | 745 ++++-- .../ipynb/ipynb-Regression-src.tar.gz | Bin 211 -> 210 bytes .../pdf/Regression-beamer-handouts2x3.pdf | Bin 389595 -> 411149 bytes doc/pub/Regression/pdf/Regression-beamer.pdf | Bin 351781 -> 366764 bytes doc/pub/Regression/pdf/Regression-minted.pdf | Bin 391306 -> 405955 bytes doc/src/Regression/Regression.do.txt | 587 +++-- doc/src/Regression/out.txt | 2161 ----------------- 57 files changed, 5396 insertions(+), 5053 deletions(-) delete mode 100644 doc/src/Regression/out.txt diff --git a/doc/pub/Regression/html/._Regression-bs000.html b/doc/pub/Regression/html/._Regression-bs000.html index c92c12f8a..bd71ca567 100644 --- a/doc/pub/Regression/html/._Regression-bs000.html +++ b/doc/pub/Regression/html/._Regression-bs000.html @@ -110,31 +110,51 @@ Automatically generated HTML file from DocOnce source '___sec32'), ('Expectation value and variance', 2, None, '___sec33'), ('The singular value decompostion', 2, None, '___sec34'), - ('Code examples for Ridge and Lasso Regression', - 2, - None, - '___sec35'), ('From standard regression to Ridge regressions', 2, None, - '___sec36'), - ('Fixing the singularity', 2, None, '___sec37'), - ('A second-order polynomial with Ridge and Lasso', - 2, - None, - '___sec38'), + '___sec35'), + ('Fixing the singularity', 2, None, '___sec36'), ('Fitting vs. predicting when data is in the model class', 2, None, - '___sec39'), + '___sec37'), ('Fitting versus predicting when data is not in the model class', 2, None, - '___sec40'), - ('The code', 2, None, '___sec41'), - ('Generating test data', 2, None, '___sec42'), - ('Lasso regression', 2, None, '___sec43'), - ('Logistic regression', 2, None, '___sec44')]} + '___sec38'), + ('An example code without the model assessment part', + 2, + None, + '___sec39'), + ('Generating test data', 2, None, '___sec40'), + ('How can we effectively evaluate the various models?', + 2, + None, + '___sec41'), + ('Code examples for Ridge and Lasso Regression', + 2, + None, + '___sec42'), + ('A second-order polynomial with Ridge and Lasso', + 2, + None, + '___sec43'), + ('Resampling methods', 2, None, '___sec44'), + ('Resampling approaches can be computationally expensive', + 2, + None, + '___sec45'), + ('Log-likelihood', 2, None, '___sec46'), + ('Cross-validation', 2, None, '___sec47'), + ('Computationally expensive', 2, None, '___sec48'), + ('Various steps in cross-validation', 2, None, '___sec49'), + ('How to set up the cross-validation for Ridge and/or Lasso', + 2, + None, + '___sec50'), + ('Predicted Residual Error Sum of Squares', 2, None, '___sec51'), + ('Bootstrap', 2, None, '___sec52')]} end of tocinfo --> @@ -207,16 +227,24 @@ MathJax.Hub.Config({
  • Linking the regression analysis with a statistical interpretation
  • Expectation value and variance
  • The singular value decompostion
  • -
  • Code examples for Ridge and Lasso Regression
  • -
  • From standard regression to Ridge regressions
  • -
  • Fixing the singularity
  • -
  • A second-order polynomial with Ridge and Lasso
  • -
  • Fitting vs. predicting when data is in the model class
  • -
  • Fitting versus predicting when data is not in the model class
  • -
  • The code
  • -
  • Generating test data
  • -
  • Lasso regression
  • -
  • Logistic regression
  • +
  • From standard regression to Ridge regressions
  • +
  • Fixing the singularity
  • +
  • Fitting vs. predicting when data is in the model class
  • +
  • Fitting versus predicting when data is not in the model class
  • +
  • An example code without the model assessment part
  • +
  • Generating test data
  • +
  • How can we effectively evaluate the various models?
  • +
  • Code examples for Ridge and Lasso Regression
  • +
  • A second-order polynomial with Ridge and Lasso
  • +
  • Resampling methods
  • +
  • Resampling approaches can be computationally expensive
  • +
  • Log-likelihood
  • +
  • Cross-validation
  • +
  • Computationally expensive
  • +
  • Various steps in cross-validation
  • +
  • How to set up the cross-validation for Ridge and/or Lasso
  • +
  • Predicted Residual Error Sum of Squares
  • +
  • Bootstrap
  • @@ -251,7 +279,7 @@ MathJax.Hub.Config({
    [2] Department of Physics and Astronomy and National Superconducting Cyclotron Laboratory, Michigan State University

    -

    Sep 6, 2018

    +

    Sep 7, 2018


    @@ -275,7 +303,7 @@ MathJax.Hub.Config({

  • 9
  • 10
  • ...
  • -
  • 46
  • +
  • 54
  • »
  • diff --git a/doc/pub/Regression/html/._Regression-bs001.html b/doc/pub/Regression/html/._Regression-bs001.html index f1cdcf478..70cde1f6e 100644 --- a/doc/pub/Regression/html/._Regression-bs001.html +++ b/doc/pub/Regression/html/._Regression-bs001.html @@ -110,31 +110,51 @@ Automatically generated HTML file from DocOnce source '___sec32'), ('Expectation value and variance', 2, None, '___sec33'), ('The singular value decompostion', 2, None, '___sec34'), - ('Code examples for Ridge and Lasso Regression', - 2, - None, - '___sec35'), ('From standard regression to Ridge regressions', 2, None, - '___sec36'), - ('Fixing the singularity', 2, None, '___sec37'), - ('A second-order polynomial with Ridge and Lasso', - 2, - None, - '___sec38'), + '___sec35'), + ('Fixing the singularity', 2, None, '___sec36'), ('Fitting vs. predicting when data is in the model class', 2, None, - '___sec39'), + '___sec37'), ('Fitting versus predicting when data is not in the model class', 2, None, - '___sec40'), - ('The code', 2, None, '___sec41'), - ('Generating test data', 2, None, '___sec42'), - ('Lasso regression', 2, None, '___sec43'), - ('Logistic regression', 2, None, '___sec44')]} + '___sec38'), + ('An example code without the model assessment part', + 2, + None, + '___sec39'), + ('Generating test data', 2, None, '___sec40'), + ('How can we effectively evaluate the various models?', + 2, + None, + '___sec41'), + ('Code examples for Ridge and Lasso Regression', + 2, + None, + '___sec42'), + ('A second-order polynomial with Ridge and Lasso', + 2, + None, + '___sec43'), + ('Resampling methods', 2, None, '___sec44'), + ('Resampling approaches can be computationally expensive', + 2, + None, + '___sec45'), + ('Log-likelihood', 2, None, '___sec46'), + ('Cross-validation', 2, None, '___sec47'), + ('Computationally expensive', 2, None, '___sec48'), + ('Various steps in cross-validation', 2, None, '___sec49'), + ('How to set up the cross-validation for Ridge and/or Lasso', + 2, + None, + '___sec50'), + ('Predicted Residual Error Sum of Squares', 2, None, '___sec51'), + ('Bootstrap', 2, None, '___sec52')]} end of tocinfo --> @@ -207,16 +227,24 @@ MathJax.Hub.Config({
  • Linking the regression analysis with a statistical interpretation
  • Expectation value and variance
  • The singular value decompostion
  • -
  • Code examples for Ridge and Lasso Regression
  • -
  • From standard regression to Ridge regressions
  • -
  • Fixing the singularity
  • -
  • A second-order polynomial with Ridge and Lasso
  • -
  • Fitting vs. predicting when data is in the model class
  • -
  • Fitting versus predicting when data is not in the model class
  • -
  • The code
  • -
  • Generating test data
  • -
  • Lasso regression
  • -
  • Logistic regression
  • +
  • From standard regression to Ridge regressions
  • +
  • Fixing the singularity
  • +
  • Fitting vs. predicting when data is in the model class
  • +
  • Fitting versus predicting when data is not in the model class
  • +
  • An example code without the model assessment part
  • +
  • Generating test data
  • +
  • How can we effectively evaluate the various models?
  • +
  • Code examples for Ridge and Lasso Regression
  • +
  • A second-order polynomial with Ridge and Lasso
  • +
  • Resampling methods
  • +
  • Resampling approaches can be computationally expensive
  • +
  • Log-likelihood
  • +
  • Cross-validation
  • +
  • Computationally expensive
  • +
  • Various steps in cross-validation
  • +
  • How to set up the cross-validation for Ridge and/or Lasso
  • +
  • Predicted Residual Error Sum of Squares
  • +
  • Bootstrap
  • @@ -272,7 +300,7 @@ A regression model aims at finding a likelihood function \( p(y\vert \hat{x}) \)
  • 10
  • 11
  • ...
  • -
  • 46
  • +
  • 54
  • »
  • diff --git a/doc/pub/Regression/html/._Regression-bs002.html b/doc/pub/Regression/html/._Regression-bs002.html index 523f9d68c..a514bd2ec 100644 --- a/doc/pub/Regression/html/._Regression-bs002.html +++ b/doc/pub/Regression/html/._Regression-bs002.html @@ -110,31 +110,51 @@ Automatically generated HTML file from DocOnce source '___sec32'), ('Expectation value and variance', 2, None, '___sec33'), ('The singular value decompostion', 2, None, '___sec34'), - ('Code examples for Ridge and Lasso Regression', - 2, - None, - '___sec35'), ('From standard regression to Ridge regressions', 2, None, - '___sec36'), - ('Fixing the singularity', 2, None, '___sec37'), - ('A second-order polynomial with Ridge and Lasso', - 2, - None, - '___sec38'), + '___sec35'), + ('Fixing the singularity', 2, None, '___sec36'), ('Fitting vs. predicting when data is in the model class', 2, None, - '___sec39'), + '___sec37'), ('Fitting versus predicting when data is not in the model class', 2, None, - '___sec40'), - ('The code', 2, None, '___sec41'), - ('Generating test data', 2, None, '___sec42'), - ('Lasso regression', 2, None, '___sec43'), - ('Logistic regression', 2, None, '___sec44')]} + '___sec38'), + ('An example code without the model assessment part', + 2, + None, + '___sec39'), + ('Generating test data', 2, None, '___sec40'), + ('How can we effectively evaluate the various models?', + 2, + None, + '___sec41'), + ('Code examples for Ridge and Lasso Regression', + 2, + None, + '___sec42'), + ('A second-order polynomial with Ridge and Lasso', + 2, + None, + '___sec43'), + ('Resampling methods', 2, None, '___sec44'), + ('Resampling approaches can be computationally expensive', + 2, + None, + '___sec45'), + ('Log-likelihood', 2, None, '___sec46'), + ('Cross-validation', 2, None, '___sec47'), + ('Computationally expensive', 2, None, '___sec48'), + ('Various steps in cross-validation', 2, None, '___sec49'), + ('How to set up the cross-validation for Ridge and/or Lasso', + 2, + None, + '___sec50'), + ('Predicted Residual Error Sum of Squares', 2, None, '___sec51'), + ('Bootstrap', 2, None, '___sec52')]} end of tocinfo --> @@ -207,16 +227,24 @@ MathJax.Hub.Config({
  • Linking the regression analysis with a statistical interpretation
  • Expectation value and variance
  • The singular value decompostion
  • -
  • Code examples for Ridge and Lasso Regression
  • -
  • From standard regression to Ridge regressions
  • -
  • Fixing the singularity
  • -
  • A second-order polynomial with Ridge and Lasso
  • -
  • Fitting vs. predicting when data is in the model class
  • -
  • Fitting versus predicting when data is not in the model class
  • -
  • The code
  • -
  • Generating test data
  • -
  • Lasso regression
  • -
  • Logistic regression
  • +
  • From standard regression to Ridge regressions
  • +
  • Fixing the singularity
  • +
  • Fitting vs. predicting when data is in the model class
  • +
  • Fitting versus predicting when data is not in the model class
  • +
  • An example code without the model assessment part
  • +
  • Generating test data
  • +
  • How can we effectively evaluate the various models?
  • +
  • Code examples for Ridge and Lasso Regression
  • +
  • A second-order polynomial with Ridge and Lasso
  • +
  • Resampling methods
  • +
  • Resampling approaches can be computationally expensive
  • +
  • Log-likelihood
  • +
  • Cross-validation
  • +
  • Computationally expensive
  • +
  • Various steps in cross-validation
  • +
  • How to set up the cross-validation for Ridge and/or Lasso
  • +
  • Predicted Residual Error Sum of Squares
  • +
  • Bootstrap
  • @@ -279,7 +307,7 @@ response is equal to \( \beta_j \).
  • 11
  • 12
  • ...
  • -
  • 46
  • +
  • 54
  • »
  • diff --git a/doc/pub/Regression/html/._Regression-bs003.html b/doc/pub/Regression/html/._Regression-bs003.html index d18ec8f83..572119bce 100644 --- a/doc/pub/Regression/html/._Regression-bs003.html +++ b/doc/pub/Regression/html/._Regression-bs003.html @@ -110,31 +110,51 @@ Automatically generated HTML file from DocOnce source '___sec32'), ('Expectation value and variance', 2, None, '___sec33'), ('The singular value decompostion', 2, None, '___sec34'), - ('Code examples for Ridge and Lasso Regression', - 2, - None, - '___sec35'), ('From standard regression to Ridge regressions', 2, None, - '___sec36'), - ('Fixing the singularity', 2, None, '___sec37'), - ('A second-order polynomial with Ridge and Lasso', - 2, - None, - '___sec38'), + '___sec35'), + ('Fixing the singularity', 2, None, '___sec36'), ('Fitting vs. predicting when data is in the model class', 2, None, - '___sec39'), + '___sec37'), ('Fitting versus predicting when data is not in the model class', 2, None, - '___sec40'), - ('The code', 2, None, '___sec41'), - ('Generating test data', 2, None, '___sec42'), - ('Lasso regression', 2, None, '___sec43'), - ('Logistic regression', 2, None, '___sec44')]} + '___sec38'), + ('An example code without the model assessment part', + 2, + None, + '___sec39'), + ('Generating test data', 2, None, '___sec40'), + ('How can we effectively evaluate the various models?', + 2, + None, + '___sec41'), + ('Code examples for Ridge and Lasso Regression', + 2, + None, + '___sec42'), + ('A second-order polynomial with Ridge and Lasso', + 2, + None, + '___sec43'), + ('Resampling methods', 2, None, '___sec44'), + ('Resampling approaches can be computationally expensive', + 2, + None, + '___sec45'), + ('Log-likelihood', 2, None, '___sec46'), + ('Cross-validation', 2, None, '___sec47'), + ('Computationally expensive', 2, None, '___sec48'), + ('Various steps in cross-validation', 2, None, '___sec49'), + ('How to set up the cross-validation for Ridge and/or Lasso', + 2, + None, + '___sec50'), + ('Predicted Residual Error Sum of Squares', 2, None, '___sec51'), + ('Bootstrap', 2, None, '___sec52')]} end of tocinfo --> @@ -207,16 +227,24 @@ MathJax.Hub.Config({
  • Linking the regression analysis with a statistical interpretation
  • Expectation value and variance
  • The singular value decompostion
  • -
  • Code examples for Ridge and Lasso Regression
  • -
  • From standard regression to Ridge regressions
  • -
  • Fixing the singularity
  • -
  • A second-order polynomial with Ridge and Lasso
  • -
  • Fitting vs. predicting when data is in the model class
  • -
  • Fitting versus predicting when data is not in the model class
  • -
  • The code
  • -
  • Generating test data
  • -
  • Lasso regression
  • -
  • Logistic regression
  • +
  • From standard regression to Ridge regressions
  • +
  • Fixing the singularity
  • +
  • Fitting vs. predicting when data is in the model class
  • +
  • Fitting versus predicting when data is not in the model class
  • +
  • An example code without the model assessment part
  • +
  • Generating test data
  • +
  • How can we effectively evaluate the various models?
  • +
  • Code examples for Ridge and Lasso Regression
  • +
  • A second-order polynomial with Ridge and Lasso
  • +
  • Resampling methods
  • +
  • Resampling approaches can be computationally expensive
  • +
  • Log-likelihood
  • +
  • Cross-validation
  • +
  • Computationally expensive
  • +
  • Various steps in cross-validation
  • +
  • How to set up the cross-validation for Ridge and/or Lasso
  • +
  • Predicted Residual Error Sum of Squares
  • +
  • Bootstrap
  • @@ -270,7 +298,7 @@ where \( \epsilon_i \) is the error in our approximation.
  • 12
  • 13
  • ...
  • -
  • 46
  • +
  • 54
  • »
  • diff --git a/doc/pub/Regression/html/._Regression-bs004.html b/doc/pub/Regression/html/._Regression-bs004.html index 643f337c1..de10c4d9c 100644 --- a/doc/pub/Regression/html/._Regression-bs004.html +++ b/doc/pub/Regression/html/._Regression-bs004.html @@ -110,31 +110,51 @@ Automatically generated HTML file from DocOnce source '___sec32'), ('Expectation value and variance', 2, None, '___sec33'), ('The singular value decompostion', 2, None, '___sec34'), - ('Code examples for Ridge and Lasso Regression', - 2, - None, - '___sec35'), ('From standard regression to Ridge regressions', 2, None, - '___sec36'), - ('Fixing the singularity', 2, None, '___sec37'), - ('A second-order polynomial with Ridge and Lasso', - 2, - None, - '___sec38'), + '___sec35'), + ('Fixing the singularity', 2, None, '___sec36'), ('Fitting vs. predicting when data is in the model class', 2, None, - '___sec39'), + '___sec37'), ('Fitting versus predicting when data is not in the model class', 2, None, - '___sec40'), - ('The code', 2, None, '___sec41'), - ('Generating test data', 2, None, '___sec42'), - ('Lasso regression', 2, None, '___sec43'), - ('Logistic regression', 2, None, '___sec44')]} + '___sec38'), + ('An example code without the model assessment part', + 2, + None, + '___sec39'), + ('Generating test data', 2, None, '___sec40'), + ('How can we effectively evaluate the various models?', + 2, + None, + '___sec41'), + ('Code examples for Ridge and Lasso Regression', + 2, + None, + '___sec42'), + ('A second-order polynomial with Ridge and Lasso', + 2, + None, + '___sec43'), + ('Resampling methods', 2, None, '___sec44'), + ('Resampling approaches can be computationally expensive', + 2, + None, + '___sec45'), + ('Log-likelihood', 2, None, '___sec46'), + ('Cross-validation', 2, None, '___sec47'), + ('Computationally expensive', 2, None, '___sec48'), + ('Various steps in cross-validation', 2, None, '___sec49'), + ('How to set up the cross-validation for Ridge and/or Lasso', + 2, + None, + '___sec50'), + ('Predicted Residual Error Sum of Squares', 2, None, '___sec51'), + ('Bootstrap', 2, None, '___sec52')]} end of tocinfo --> @@ -207,16 +227,24 @@ MathJax.Hub.Config({
  • Linking the regression analysis with a statistical interpretation
  • Expectation value and variance
  • The singular value decompostion
  • -
  • Code examples for Ridge and Lasso Regression
  • -
  • From standard regression to Ridge regressions
  • -
  • Fixing the singularity
  • -
  • A second-order polynomial with Ridge and Lasso
  • -
  • Fitting vs. predicting when data is in the model class
  • -
  • Fitting versus predicting when data is not in the model class
  • -
  • The code
  • -
  • Generating test data
  • -
  • Lasso regression
  • -
  • Logistic regression
  • +
  • From standard regression to Ridge regressions
  • +
  • Fixing the singularity
  • +
  • Fitting vs. predicting when data is in the model class
  • +
  • Fitting versus predicting when data is not in the model class
  • +
  • An example code without the model assessment part
  • +
  • Generating test data
  • +
  • How can we effectively evaluate the various models?
  • +
  • Code examples for Ridge and Lasso Regression
  • +
  • A second-order polynomial with Ridge and Lasso
  • +
  • Resampling methods
  • +
  • Resampling approaches can be computationally expensive
  • +
  • Log-likelihood
  • +
  • Cross-validation
  • +
  • Computationally expensive
  • +
  • Various steps in cross-validation
  • +
  • How to set up the cross-validation for Ridge and/or Lasso
  • +
  • Predicted Residual Error Sum of Squares
  • +
  • Bootstrap
  • @@ -270,7 +298,7 @@ $$
  • 13
  • 14
  • ...
  • -
  • 46
  • +
  • 54
  • »
  • diff --git a/doc/pub/Regression/html/._Regression-bs005.html b/doc/pub/Regression/html/._Regression-bs005.html index 79e79e7b3..acae72078 100644 --- a/doc/pub/Regression/html/._Regression-bs005.html +++ b/doc/pub/Regression/html/._Regression-bs005.html @@ -110,31 +110,51 @@ Automatically generated HTML file from DocOnce source '___sec32'), ('Expectation value and variance', 2, None, '___sec33'), ('The singular value decompostion', 2, None, '___sec34'), - ('Code examples for Ridge and Lasso Regression', - 2, - None, - '___sec35'), ('From standard regression to Ridge regressions', 2, None, - '___sec36'), - ('Fixing the singularity', 2, None, '___sec37'), - ('A second-order polynomial with Ridge and Lasso', - 2, - None, - '___sec38'), + '___sec35'), + ('Fixing the singularity', 2, None, '___sec36'), ('Fitting vs. predicting when data is in the model class', 2, None, - '___sec39'), + '___sec37'), ('Fitting versus predicting when data is not in the model class', 2, None, - '___sec40'), - ('The code', 2, None, '___sec41'), - ('Generating test data', 2, None, '___sec42'), - ('Lasso regression', 2, None, '___sec43'), - ('Logistic regression', 2, None, '___sec44')]} + '___sec38'), + ('An example code without the model assessment part', + 2, + None, + '___sec39'), + ('Generating test data', 2, None, '___sec40'), + ('How can we effectively evaluate the various models?', + 2, + None, + '___sec41'), + ('Code examples for Ridge and Lasso Regression', + 2, + None, + '___sec42'), + ('A second-order polynomial with Ridge and Lasso', + 2, + None, + '___sec43'), + ('Resampling methods', 2, None, '___sec44'), + ('Resampling approaches can be computationally expensive', + 2, + None, + '___sec45'), + ('Log-likelihood', 2, None, '___sec46'), + ('Cross-validation', 2, None, '___sec47'), + ('Computationally expensive', 2, None, '___sec48'), + ('Various steps in cross-validation', 2, None, '___sec49'), + ('How to set up the cross-validation for Ridge and/or Lasso', + 2, + None, + '___sec50'), + ('Predicted Residual Error Sum of Squares', 2, None, '___sec51'), + ('Bootstrap', 2, None, '___sec52')]} end of tocinfo --> @@ -207,16 +227,24 @@ MathJax.Hub.Config({
  • Linking the regression analysis with a statistical interpretation
  • Expectation value and variance
  • The singular value decompostion
  • -
  • Code examples for Ridge and Lasso Regression
  • -
  • From standard regression to Ridge regressions
  • -
  • Fixing the singularity
  • -
  • A second-order polynomial with Ridge and Lasso
  • -
  • Fitting vs. predicting when data is in the model class
  • -
  • Fitting versus predicting when data is not in the model class
  • -
  • The code
  • -
  • Generating test data
  • -
  • Lasso regression
  • -
  • Logistic regression
  • +
  • From standard regression to Ridge regressions
  • +
  • Fixing the singularity
  • +
  • Fitting vs. predicting when data is in the model class
  • +
  • Fitting versus predicting when data is not in the model class
  • +
  • An example code without the model assessment part
  • +
  • Generating test data
  • +
  • How can we effectively evaluate the various models?
  • +
  • Code examples for Ridge and Lasso Regression
  • +
  • A second-order polynomial with Ridge and Lasso
  • +
  • Resampling methods
  • +
  • Resampling approaches can be computationally expensive
  • +
  • Log-likelihood
  • +
  • Cross-validation
  • +
  • Computationally expensive
  • +
  • Various steps in cross-validation
  • +
  • How to set up the cross-validation for Ridge and/or Lasso
  • +
  • Predicted Residual Error Sum of Squares
  • +
  • Bootstrap
  • @@ -292,7 +320,7 @@ $$
  • 14
  • 15
  • ...
  • -
  • 46
  • +
  • 54
  • »
  • diff --git a/doc/pub/Regression/html/._Regression-bs006.html b/doc/pub/Regression/html/._Regression-bs006.html index 0666eaf89..afe7d5b85 100644 --- a/doc/pub/Regression/html/._Regression-bs006.html +++ b/doc/pub/Regression/html/._Regression-bs006.html @@ -110,31 +110,51 @@ Automatically generated HTML file from DocOnce source '___sec32'), ('Expectation value and variance', 2, None, '___sec33'), ('The singular value decompostion', 2, None, '___sec34'), - ('Code examples for Ridge and Lasso Regression', - 2, - None, - '___sec35'), ('From standard regression to Ridge regressions', 2, None, - '___sec36'), - ('Fixing the singularity', 2, None, '___sec37'), - ('A second-order polynomial with Ridge and Lasso', - 2, - None, - '___sec38'), + '___sec35'), + ('Fixing the singularity', 2, None, '___sec36'), ('Fitting vs. predicting when data is in the model class', 2, None, - '___sec39'), + '___sec37'), ('Fitting versus predicting when data is not in the model class', 2, None, - '___sec40'), - ('The code', 2, None, '___sec41'), - ('Generating test data', 2, None, '___sec42'), - ('Lasso regression', 2, None, '___sec43'), - ('Logistic regression', 2, None, '___sec44')]} + '___sec38'), + ('An example code without the model assessment part', + 2, + None, + '___sec39'), + ('Generating test data', 2, None, '___sec40'), + ('How can we effectively evaluate the various models?', + 2, + None, + '___sec41'), + ('Code examples for Ridge and Lasso Regression', + 2, + None, + '___sec42'), + ('A second-order polynomial with Ridge and Lasso', + 2, + None, + '___sec43'), + ('Resampling methods', 2, None, '___sec44'), + ('Resampling approaches can be computationally expensive', + 2, + None, + '___sec45'), + ('Log-likelihood', 2, None, '___sec46'), + ('Cross-validation', 2, None, '___sec47'), + ('Computationally expensive', 2, None, '___sec48'), + ('Various steps in cross-validation', 2, None, '___sec49'), + ('How to set up the cross-validation for Ridge and/or Lasso', + 2, + None, + '___sec50'), + ('Predicted Residual Error Sum of Squares', 2, None, '___sec51'), + ('Bootstrap', 2, None, '___sec52')]} end of tocinfo --> @@ -207,16 +227,24 @@ MathJax.Hub.Config({
  • Linking the regression analysis with a statistical interpretation
  • Expectation value and variance
  • The singular value decompostion
  • -
  • Code examples for Ridge and Lasso Regression
  • -
  • From standard regression to Ridge regressions
  • -
  • Fixing the singularity
  • -
  • A second-order polynomial with Ridge and Lasso
  • -
  • Fitting vs. predicting when data is in the model class
  • -
  • Fitting versus predicting when data is not in the model class
  • -
  • The code
  • -
  • Generating test data
  • -
  • Lasso regression
  • -
  • Logistic regression
  • +
  • From standard regression to Ridge regressions
  • +
  • Fixing the singularity
  • +
  • Fitting vs. predicting when data is in the model class
  • +
  • Fitting versus predicting when data is not in the model class
  • +
  • An example code without the model assessment part
  • +
  • Generating test data
  • +
  • How can we effectively evaluate the various models?
  • +
  • Code examples for Ridge and Lasso Regression
  • +
  • A second-order polynomial with Ridge and Lasso
  • +
  • Resampling methods
  • +
  • Resampling approaches can be computationally expensive
  • +
  • Log-likelihood
  • +
  • Cross-validation
  • +
  • Computationally expensive
  • +
  • Various steps in cross-validation
  • +
  • How to set up the cross-validation for Ridge and/or Lasso
  • +
  • Predicted Residual Error Sum of Squares
  • +
  • Bootstrap
  • @@ -275,7 +303,7 @@ $$
  • 15
  • 16
  • ...
  • -
  • 46
  • +
  • 54
  • »
  • diff --git a/doc/pub/Regression/html/._Regression-bs007.html b/doc/pub/Regression/html/._Regression-bs007.html index 1cbc6bb56..dc27b195c 100644 --- a/doc/pub/Regression/html/._Regression-bs007.html +++ b/doc/pub/Regression/html/._Regression-bs007.html @@ -110,31 +110,51 @@ Automatically generated HTML file from DocOnce source '___sec32'), ('Expectation value and variance', 2, None, '___sec33'), ('The singular value decompostion', 2, None, '___sec34'), - ('Code examples for Ridge and Lasso Regression', - 2, - None, - '___sec35'), ('From standard regression to Ridge regressions', 2, None, - '___sec36'), - ('Fixing the singularity', 2, None, '___sec37'), - ('A second-order polynomial with Ridge and Lasso', - 2, - None, - '___sec38'), + '___sec35'), + ('Fixing the singularity', 2, None, '___sec36'), ('Fitting vs. predicting when data is in the model class', 2, None, - '___sec39'), + '___sec37'), ('Fitting versus predicting when data is not in the model class', 2, None, - '___sec40'), - ('The code', 2, None, '___sec41'), - ('Generating test data', 2, None, '___sec42'), - ('Lasso regression', 2, None, '___sec43'), - ('Logistic regression', 2, None, '___sec44')]} + '___sec38'), + ('An example code without the model assessment part', + 2, + None, + '___sec39'), + ('Generating test data', 2, None, '___sec40'), + ('How can we effectively evaluate the various models?', + 2, + None, + '___sec41'), + ('Code examples for Ridge and Lasso Regression', + 2, + None, + '___sec42'), + ('A second-order polynomial with Ridge and Lasso', + 2, + None, + '___sec43'), + ('Resampling methods', 2, None, '___sec44'), + ('Resampling approaches can be computationally expensive', + 2, + None, + '___sec45'), + ('Log-likelihood', 2, None, '___sec46'), + ('Cross-validation', 2, None, '___sec47'), + ('Computationally expensive', 2, None, '___sec48'), + ('Various steps in cross-validation', 2, None, '___sec49'), + ('How to set up the cross-validation for Ridge and/or Lasso', + 2, + None, + '___sec50'), + ('Predicted Residual Error Sum of Squares', 2, None, '___sec51'), + ('Bootstrap', 2, None, '___sec52')]} end of tocinfo --> @@ -207,16 +227,24 @@ MathJax.Hub.Config({
  • Linking the regression analysis with a statistical interpretation
  • Expectation value and variance
  • The singular value decompostion
  • -
  • Code examples for Ridge and Lasso Regression
  • -
  • From standard regression to Ridge regressions
  • -
  • Fixing the singularity
  • -
  • A second-order polynomial with Ridge and Lasso
  • -
  • Fitting vs. predicting when data is in the model class
  • -
  • Fitting versus predicting when data is not in the model class
  • -
  • The code
  • -
  • Generating test data
  • -
  • Lasso regression
  • -
  • Logistic regression
  • +
  • From standard regression to Ridge regressions
  • +
  • Fixing the singularity
  • +
  • Fitting vs. predicting when data is in the model class
  • +
  • Fitting versus predicting when data is not in the model class
  • +
  • An example code without the model assessment part
  • +
  • Generating test data
  • +
  • How can we effectively evaluate the various models?
  • +
  • Code examples for Ridge and Lasso Regression
  • +
  • A second-order polynomial with Ridge and Lasso
  • +
  • Resampling methods
  • +
  • Resampling approaches can be computationally expensive
  • +
  • Log-likelihood
  • +
  • Cross-validation
  • +
  • Computationally expensive
  • +
  • Various steps in cross-validation
  • +
  • How to set up the cross-validation for Ridge and/or Lasso
  • +
  • Predicted Residual Error Sum of Squares
  • +
  • Bootstrap
  • @@ -281,7 +309,7 @@ The left-hand side of this equation forms know. Our error vector \( \hat{\epsilo
  • 16
  • 17
  • ...
  • -
  • 46
  • +
  • 54
  • »
  • diff --git a/doc/pub/Regression/html/._Regression-bs008.html b/doc/pub/Regression/html/._Regression-bs008.html index ebb470521..db6900e0c 100644 --- a/doc/pub/Regression/html/._Regression-bs008.html +++ b/doc/pub/Regression/html/._Regression-bs008.html @@ -110,31 +110,51 @@ Automatically generated HTML file from DocOnce source '___sec32'), ('Expectation value and variance', 2, None, '___sec33'), ('The singular value decompostion', 2, None, '___sec34'), - ('Code examples for Ridge and Lasso Regression', - 2, - None, - '___sec35'), ('From standard regression to Ridge regressions', 2, None, - '___sec36'), - ('Fixing the singularity', 2, None, '___sec37'), - ('A second-order polynomial with Ridge and Lasso', - 2, - None, - '___sec38'), + '___sec35'), + ('Fixing the singularity', 2, None, '___sec36'), ('Fitting vs. predicting when data is in the model class', 2, None, - '___sec39'), + '___sec37'), ('Fitting versus predicting when data is not in the model class', 2, None, - '___sec40'), - ('The code', 2, None, '___sec41'), - ('Generating test data', 2, None, '___sec42'), - ('Lasso regression', 2, None, '___sec43'), - ('Logistic regression', 2, None, '___sec44')]} + '___sec38'), + ('An example code without the model assessment part', + 2, + None, + '___sec39'), + ('Generating test data', 2, None, '___sec40'), + ('How can we effectively evaluate the various models?', + 2, + None, + '___sec41'), + ('Code examples for Ridge and Lasso Regression', + 2, + None, + '___sec42'), + ('A second-order polynomial with Ridge and Lasso', + 2, + None, + '___sec43'), + ('Resampling methods', 2, None, '___sec44'), + ('Resampling approaches can be computationally expensive', + 2, + None, + '___sec45'), + ('Log-likelihood', 2, None, '___sec46'), + ('Cross-validation', 2, None, '___sec47'), + ('Computationally expensive', 2, None, '___sec48'), + ('Various steps in cross-validation', 2, None, '___sec49'), + ('How to set up the cross-validation for Ridge and/or Lasso', + 2, + None, + '___sec50'), + ('Predicted Residual Error Sum of Squares', 2, None, '___sec51'), + ('Bootstrap', 2, None, '___sec52')]} end of tocinfo --> @@ -207,16 +227,24 @@ MathJax.Hub.Config({
  • Linking the regression analysis with a statistical interpretation
  • Expectation value and variance
  • The singular value decompostion
  • -
  • Code examples for Ridge and Lasso Regression
  • -
  • From standard regression to Ridge regressions
  • -
  • Fixing the singularity
  • -
  • A second-order polynomial with Ridge and Lasso
  • -
  • Fitting vs. predicting when data is in the model class
  • -
  • Fitting versus predicting when data is not in the model class
  • -
  • The code
  • -
  • Generating test data
  • -
  • Lasso regression
  • -
  • Logistic regression
  • +
  • From standard regression to Ridge regressions
  • +
  • Fixing the singularity
  • +
  • Fitting vs. predicting when data is in the model class
  • +
  • Fitting versus predicting when data is not in the model class
  • +
  • An example code without the model assessment part
  • +
  • Generating test data
  • +
  • How can we effectively evaluate the various models?
  • +
  • Code examples for Ridge and Lasso Regression
  • +
  • A second-order polynomial with Ridge and Lasso
  • +
  • Resampling methods
  • +
  • Resampling approaches can be computationally expensive
  • +
  • Log-likelihood
  • +
  • Cross-validation
  • +
  • Computationally expensive
  • +
  • Various steps in cross-validation
  • +
  • How to set up the cross-validation for Ridge and/or Lasso
  • +
  • Predicted Residual Error Sum of Squares
  • +
  • Bootstrap
  • @@ -276,7 +304,7 @@ $$
  • 17
  • 18
  • ...
  • -
  • 46
  • +
  • 54
  • »
  • diff --git a/doc/pub/Regression/html/._Regression-bs009.html b/doc/pub/Regression/html/._Regression-bs009.html index 2c4747519..9bda0b2aa 100644 --- a/doc/pub/Regression/html/._Regression-bs009.html +++ b/doc/pub/Regression/html/._Regression-bs009.html @@ -110,31 +110,51 @@ Automatically generated HTML file from DocOnce source '___sec32'), ('Expectation value and variance', 2, None, '___sec33'), ('The singular value decompostion', 2, None, '___sec34'), - ('Code examples for Ridge and Lasso Regression', - 2, - None, - '___sec35'), ('From standard regression to Ridge regressions', 2, None, - '___sec36'), - ('Fixing the singularity', 2, None, '___sec37'), - ('A second-order polynomial with Ridge and Lasso', - 2, - None, - '___sec38'), + '___sec35'), + ('Fixing the singularity', 2, None, '___sec36'), ('Fitting vs. predicting when data is in the model class', 2, None, - '___sec39'), + '___sec37'), ('Fitting versus predicting when data is not in the model class', 2, None, - '___sec40'), - ('The code', 2, None, '___sec41'), - ('Generating test data', 2, None, '___sec42'), - ('Lasso regression', 2, None, '___sec43'), - ('Logistic regression', 2, None, '___sec44')]} + '___sec38'), + ('An example code without the model assessment part', + 2, + None, + '___sec39'), + ('Generating test data', 2, None, '___sec40'), + ('How can we effectively evaluate the various models?', + 2, + None, + '___sec41'), + ('Code examples for Ridge and Lasso Regression', + 2, + None, + '___sec42'), + ('A second-order polynomial with Ridge and Lasso', + 2, + None, + '___sec43'), + ('Resampling methods', 2, None, '___sec44'), + ('Resampling approaches can be computationally expensive', + 2, + None, + '___sec45'), + ('Log-likelihood', 2, None, '___sec46'), + ('Cross-validation', 2, None, '___sec47'), + ('Computationally expensive', 2, None, '___sec48'), + ('Various steps in cross-validation', 2, None, '___sec49'), + ('How to set up the cross-validation for Ridge and/or Lasso', + 2, + None, + '___sec50'), + ('Predicted Residual Error Sum of Squares', 2, None, '___sec51'), + ('Bootstrap', 2, None, '___sec52')]} end of tocinfo --> @@ -207,16 +227,24 @@ MathJax.Hub.Config({
  • Linking the regression analysis with a statistical interpretation
  • Expectation value and variance
  • The singular value decompostion
  • -
  • Code examples for Ridge and Lasso Regression
  • -
  • From standard regression to Ridge regressions
  • -
  • Fixing the singularity
  • -
  • A second-order polynomial with Ridge and Lasso
  • -
  • Fitting vs. predicting when data is in the model class
  • -
  • Fitting versus predicting when data is not in the model class
  • -
  • The code
  • -
  • Generating test data
  • -
  • Lasso regression
  • -
  • Logistic regression
  • +
  • From standard regression to Ridge regressions
  • +
  • Fixing the singularity
  • +
  • Fitting vs. predicting when data is in the model class
  • +
  • Fitting versus predicting when data is not in the model class
  • +
  • An example code without the model assessment part
  • +
  • Generating test data
  • +
  • How can we effectively evaluate the various models?
  • +
  • Code examples for Ridge and Lasso Regression
  • +
  • A second-order polynomial with Ridge and Lasso
  • +
  • Resampling methods
  • +
  • Resampling approaches can be computationally expensive
  • +
  • Log-likelihood
  • +
  • Cross-validation
  • +
  • Computationally expensive
  • +
  • Various steps in cross-validation
  • +
  • How to set up the cross-validation for Ridge and/or Lasso
  • +
  • Predicted Residual Error Sum of Squares
  • +
  • Bootstrap
  • @@ -279,7 +307,7 @@ $$
  • 18
  • 19
  • ...
  • -
  • 46
  • +
  • 54
  • »
  • diff --git a/doc/pub/Regression/html/._Regression-bs010.html b/doc/pub/Regression/html/._Regression-bs010.html index 90e7a3478..d7076e786 100644 --- a/doc/pub/Regression/html/._Regression-bs010.html +++ b/doc/pub/Regression/html/._Regression-bs010.html @@ -110,31 +110,51 @@ Automatically generated HTML file from DocOnce source '___sec32'), ('Expectation value and variance', 2, None, '___sec33'), ('The singular value decompostion', 2, None, '___sec34'), - ('Code examples for Ridge and Lasso Regression', - 2, - None, - '___sec35'), ('From standard regression to Ridge regressions', 2, None, - '___sec36'), - ('Fixing the singularity', 2, None, '___sec37'), - ('A second-order polynomial with Ridge and Lasso', - 2, - None, - '___sec38'), + '___sec35'), + ('Fixing the singularity', 2, None, '___sec36'), ('Fitting vs. predicting when data is in the model class', 2, None, - '___sec39'), + '___sec37'), ('Fitting versus predicting when data is not in the model class', 2, None, - '___sec40'), - ('The code', 2, None, '___sec41'), - ('Generating test data', 2, None, '___sec42'), - ('Lasso regression', 2, None, '___sec43'), - ('Logistic regression', 2, None, '___sec44')]} + '___sec38'), + ('An example code without the model assessment part', + 2, + None, + '___sec39'), + ('Generating test data', 2, None, '___sec40'), + ('How can we effectively evaluate the various models?', + 2, + None, + '___sec41'), + ('Code examples for Ridge and Lasso Regression', + 2, + None, + '___sec42'), + ('A second-order polynomial with Ridge and Lasso', + 2, + None, + '___sec43'), + ('Resampling methods', 2, None, '___sec44'), + ('Resampling approaches can be computationally expensive', + 2, + None, + '___sec45'), + ('Log-likelihood', 2, None, '___sec46'), + ('Cross-validation', 2, None, '___sec47'), + ('Computationally expensive', 2, None, '___sec48'), + ('Various steps in cross-validation', 2, None, '___sec49'), + ('How to set up the cross-validation for Ridge and/or Lasso', + 2, + None, + '___sec50'), + ('Predicted Residual Error Sum of Squares', 2, None, '___sec51'), + ('Bootstrap', 2, None, '___sec52')]} end of tocinfo --> @@ -207,16 +227,24 @@ MathJax.Hub.Config({
  • Linking the regression analysis with a statistical interpretation
  • Expectation value and variance
  • The singular value decompostion
  • -
  • Code examples for Ridge and Lasso Regression
  • -
  • From standard regression to Ridge regressions
  • -
  • Fixing the singularity
  • -
  • A second-order polynomial with Ridge and Lasso
  • -
  • Fitting vs. predicting when data is in the model class
  • -
  • Fitting versus predicting when data is not in the model class
  • -
  • The code
  • -
  • Generating test data
  • -
  • Lasso regression
  • -
  • Logistic regression
  • +
  • From standard regression to Ridge regressions
  • +
  • Fixing the singularity
  • +
  • Fitting vs. predicting when data is in the model class
  • +
  • Fitting versus predicting when data is not in the model class
  • +
  • An example code without the model assessment part
  • +
  • Generating test data
  • +
  • How can we effectively evaluate the various models?
  • +
  • Code examples for Ridge and Lasso Regression
  • +
  • A second-order polynomial with Ridge and Lasso
  • +
  • Resampling methods
  • +
  • Resampling approaches can be computationally expensive
  • +
  • Log-likelihood
  • +
  • Cross-validation
  • +
  • Computationally expensive
  • +
  • Various steps in cross-validation
  • +
  • How to set up the cross-validation for Ridge and/or Lasso
  • +
  • Predicted Residual Error Sum of Squares
  • +
  • Bootstrap
  • @@ -295,7 +323,7 @@ $$
  • 19
  • 20
  • ...
  • -
  • 46
  • +
  • 54
  • »
  • diff --git a/doc/pub/Regression/html/._Regression-bs011.html b/doc/pub/Regression/html/._Regression-bs011.html index 94864f6a6..f40aab856 100644 --- a/doc/pub/Regression/html/._Regression-bs011.html +++ b/doc/pub/Regression/html/._Regression-bs011.html @@ -110,31 +110,51 @@ Automatically generated HTML file from DocOnce source '___sec32'), ('Expectation value and variance', 2, None, '___sec33'), ('The singular value decompostion', 2, None, '___sec34'), - ('Code examples for Ridge and Lasso Regression', - 2, - None, - '___sec35'), ('From standard regression to Ridge regressions', 2, None, - '___sec36'), - ('Fixing the singularity', 2, None, '___sec37'), - ('A second-order polynomial with Ridge and Lasso', - 2, - None, - '___sec38'), + '___sec35'), + ('Fixing the singularity', 2, None, '___sec36'), ('Fitting vs. predicting when data is in the model class', 2, None, - '___sec39'), + '___sec37'), ('Fitting versus predicting when data is not in the model class', 2, None, - '___sec40'), - ('The code', 2, None, '___sec41'), - ('Generating test data', 2, None, '___sec42'), - ('Lasso regression', 2, None, '___sec43'), - ('Logistic regression', 2, None, '___sec44')]} + '___sec38'), + ('An example code without the model assessment part', + 2, + None, + '___sec39'), + ('Generating test data', 2, None, '___sec40'), + ('How can we effectively evaluate the various models?', + 2, + None, + '___sec41'), + ('Code examples for Ridge and Lasso Regression', + 2, + None, + '___sec42'), + ('A second-order polynomial with Ridge and Lasso', + 2, + None, + '___sec43'), + ('Resampling methods', 2, None, '___sec44'), + ('Resampling approaches can be computationally expensive', + 2, + None, + '___sec45'), + ('Log-likelihood', 2, None, '___sec46'), + ('Cross-validation', 2, None, '___sec47'), + ('Computationally expensive', 2, None, '___sec48'), + ('Various steps in cross-validation', 2, None, '___sec49'), + ('How to set up the cross-validation for Ridge and/or Lasso', + 2, + None, + '___sec50'), + ('Predicted Residual Error Sum of Squares', 2, None, '___sec51'), + ('Bootstrap', 2, None, '___sec52')]} end of tocinfo --> @@ -207,16 +227,24 @@ MathJax.Hub.Config({
  • Linking the regression analysis with a statistical interpretation
  • Expectation value and variance
  • The singular value decompostion
  • -
  • Code examples for Ridge and Lasso Regression
  • -
  • From standard regression to Ridge regressions
  • -
  • Fixing the singularity
  • -
  • A second-order polynomial with Ridge and Lasso
  • -
  • Fitting vs. predicting when data is in the model class
  • -
  • Fitting versus predicting when data is not in the model class
  • -
  • The code
  • -
  • Generating test data
  • -
  • Lasso regression
  • -
  • Logistic regression
  • +
  • From standard regression to Ridge regressions
  • +
  • Fixing the singularity
  • +
  • Fitting vs. predicting when data is in the model class
  • +
  • Fitting versus predicting when data is not in the model class
  • +
  • An example code without the model assessment part
  • +
  • Generating test data
  • +
  • How can we effectively evaluate the various models?
  • +
  • Code examples for Ridge and Lasso Regression
  • +
  • A second-order polynomial with Ridge and Lasso
  • +
  • Resampling methods
  • +
  • Resampling approaches can be computationally expensive
  • +
  • Log-likelihood
  • +
  • Cross-validation
  • +
  • Computationally expensive
  • +
  • Various steps in cross-validation
  • +
  • How to set up the cross-validation for Ridge and/or Lasso
  • +
  • Predicted Residual Error Sum of Squares
  • +
  • Bootstrap
  • @@ -282,7 +310,7 @@ $$
  • 20
  • 21
  • ...
  • -
  • 46
  • +
  • 54
  • »
  • diff --git a/doc/pub/Regression/html/._Regression-bs012.html b/doc/pub/Regression/html/._Regression-bs012.html index dd8c3fbf9..b9a0cb05d 100644 --- a/doc/pub/Regression/html/._Regression-bs012.html +++ b/doc/pub/Regression/html/._Regression-bs012.html @@ -110,31 +110,51 @@ Automatically generated HTML file from DocOnce source '___sec32'), ('Expectation value and variance', 2, None, '___sec33'), ('The singular value decompostion', 2, None, '___sec34'), - ('Code examples for Ridge and Lasso Regression', - 2, - None, - '___sec35'), ('From standard regression to Ridge regressions', 2, None, - '___sec36'), - ('Fixing the singularity', 2, None, '___sec37'), - ('A second-order polynomial with Ridge and Lasso', - 2, - None, - '___sec38'), + '___sec35'), + ('Fixing the singularity', 2, None, '___sec36'), ('Fitting vs. predicting when data is in the model class', 2, None, - '___sec39'), + '___sec37'), ('Fitting versus predicting when data is not in the model class', 2, None, - '___sec40'), - ('The code', 2, None, '___sec41'), - ('Generating test data', 2, None, '___sec42'), - ('Lasso regression', 2, None, '___sec43'), - ('Logistic regression', 2, None, '___sec44')]} + '___sec38'), + ('An example code without the model assessment part', + 2, + None, + '___sec39'), + ('Generating test data', 2, None, '___sec40'), + ('How can we effectively evaluate the various models?', + 2, + None, + '___sec41'), + ('Code examples for Ridge and Lasso Regression', + 2, + None, + '___sec42'), + ('A second-order polynomial with Ridge and Lasso', + 2, + None, + '___sec43'), + ('Resampling methods', 2, None, '___sec44'), + ('Resampling approaches can be computationally expensive', + 2, + None, + '___sec45'), + ('Log-likelihood', 2, None, '___sec46'), + ('Cross-validation', 2, None, '___sec47'), + ('Computationally expensive', 2, None, '___sec48'), + ('Various steps in cross-validation', 2, None, '___sec49'), + ('How to set up the cross-validation for Ridge and/or Lasso', + 2, + None, + '___sec50'), + ('Predicted Residual Error Sum of Squares', 2, None, '___sec51'), + ('Bootstrap', 2, None, '___sec52')]} end of tocinfo --> @@ -207,16 +227,24 @@ MathJax.Hub.Config({
  • Linking the regression analysis with a statistical interpretation
  • Expectation value and variance
  • The singular value decompostion
  • -
  • Code examples for Ridge and Lasso Regression
  • -
  • From standard regression to Ridge regressions
  • -
  • Fixing the singularity
  • -
  • A second-order polynomial with Ridge and Lasso
  • -
  • Fitting vs. predicting when data is in the model class
  • -
  • Fitting versus predicting when data is not in the model class
  • -
  • The code
  • -
  • Generating test data
  • -
  • Lasso regression
  • -
  • Logistic regression
  • +
  • From standard regression to Ridge regressions
  • +
  • Fixing the singularity
  • +
  • Fitting vs. predicting when data is in the model class
  • +
  • Fitting versus predicting when data is not in the model class
  • +
  • An example code without the model assessment part
  • +
  • Generating test data
  • +
  • How can we effectively evaluate the various models?
  • +
  • Code examples for Ridge and Lasso Regression
  • +
  • A second-order polynomial with Ridge and Lasso
  • +
  • Resampling methods
  • +
  • Resampling approaches can be computationally expensive
  • +
  • Log-likelihood
  • +
  • Cross-validation
  • +
  • Computationally expensive
  • +
  • Various steps in cross-validation
  • +
  • How to set up the cross-validation for Ridge and/or Lasso
  • +
  • Predicted Residual Error Sum of Squares
  • +
  • Bootstrap
  • @@ -284,7 +312,7 @@ meaning that the solution for \( \hat{\beta} \) is the one which minimizes the r
  • 21
  • 22
  • ...
  • -
  • 46
  • +
  • 54
  • »
  • diff --git a/doc/pub/Regression/html/._Regression-bs013.html b/doc/pub/Regression/html/._Regression-bs013.html index 86165977c..b0a6684a9 100644 --- a/doc/pub/Regression/html/._Regression-bs013.html +++ b/doc/pub/Regression/html/._Regression-bs013.html @@ -110,31 +110,51 @@ Automatically generated HTML file from DocOnce source '___sec32'), ('Expectation value and variance', 2, None, '___sec33'), ('The singular value decompostion', 2, None, '___sec34'), - ('Code examples for Ridge and Lasso Regression', - 2, - None, - '___sec35'), ('From standard regression to Ridge regressions', 2, None, - '___sec36'), - ('Fixing the singularity', 2, None, '___sec37'), - ('A second-order polynomial with Ridge and Lasso', - 2, - None, - '___sec38'), + '___sec35'), + ('Fixing the singularity', 2, None, '___sec36'), ('Fitting vs. predicting when data is in the model class', 2, None, - '___sec39'), + '___sec37'), ('Fitting versus predicting when data is not in the model class', 2, None, - '___sec40'), - ('The code', 2, None, '___sec41'), - ('Generating test data', 2, None, '___sec42'), - ('Lasso regression', 2, None, '___sec43'), - ('Logistic regression', 2, None, '___sec44')]} + '___sec38'), + ('An example code without the model assessment part', + 2, + None, + '___sec39'), + ('Generating test data', 2, None, '___sec40'), + ('How can we effectively evaluate the various models?', + 2, + None, + '___sec41'), + ('Code examples for Ridge and Lasso Regression', + 2, + None, + '___sec42'), + ('A second-order polynomial with Ridge and Lasso', + 2, + None, + '___sec43'), + ('Resampling methods', 2, None, '___sec44'), + ('Resampling approaches can be computationally expensive', + 2, + None, + '___sec45'), + ('Log-likelihood', 2, None, '___sec46'), + ('Cross-validation', 2, None, '___sec47'), + ('Computationally expensive', 2, None, '___sec48'), + ('Various steps in cross-validation', 2, None, '___sec49'), + ('How to set up the cross-validation for Ridge and/or Lasso', + 2, + None, + '___sec50'), + ('Predicted Residual Error Sum of Squares', 2, None, '___sec51'), + ('Bootstrap', 2, None, '___sec52')]} end of tocinfo --> @@ -207,16 +227,24 @@ MathJax.Hub.Config({
  • Linking the regression analysis with a statistical interpretation
  • Expectation value and variance
  • The singular value decompostion
  • -
  • Code examples for Ridge and Lasso Regression
  • -
  • From standard regression to Ridge regressions
  • -
  • Fixing the singularity
  • -
  • A second-order polynomial with Ridge and Lasso
  • -
  • Fitting vs. predicting when data is in the model class
  • -
  • Fitting versus predicting when data is not in the model class
  • -
  • The code
  • -
  • Generating test data
  • -
  • Lasso regression
  • -
  • Logistic regression
  • +
  • From standard regression to Ridge regressions
  • +
  • Fixing the singularity
  • +
  • Fitting vs. predicting when data is in the model class
  • +
  • Fitting versus predicting when data is not in the model class
  • +
  • An example code without the model assessment part
  • +
  • Generating test data
  • +
  • How can we effectively evaluate the various models?
  • +
  • Code examples for Ridge and Lasso Regression
  • +
  • A second-order polynomial with Ridge and Lasso
  • +
  • Resampling methods
  • +
  • Resampling approaches can be computationally expensive
  • +
  • Log-likelihood
  • +
  • Cross-validation
  • +
  • Computationally expensive
  • +
  • Various steps in cross-validation
  • +
  • How to set up the cross-validation for Ridge and/or Lasso
  • +
  • Predicted Residual Error Sum of Squares
  • +
  • Bootstrap
  • @@ -279,7 +307,7 @@ where the matrix \( \hat{\Sigma} \) is a diagonal matrix with \( \sigma_i \) as
  • 22
  • 23
  • ...
  • -
  • 46
  • +
  • 54
  • »
  • diff --git a/doc/pub/Regression/html/._Regression-bs014.html b/doc/pub/Regression/html/._Regression-bs014.html index bbde82e75..2ca7e8568 100644 --- a/doc/pub/Regression/html/._Regression-bs014.html +++ b/doc/pub/Regression/html/._Regression-bs014.html @@ -110,31 +110,51 @@ Automatically generated HTML file from DocOnce source '___sec32'), ('Expectation value and variance', 2, None, '___sec33'), ('The singular value decompostion', 2, None, '___sec34'), - ('Code examples for Ridge and Lasso Regression', - 2, - None, - '___sec35'), ('From standard regression to Ridge regressions', 2, None, - '___sec36'), - ('Fixing the singularity', 2, None, '___sec37'), - ('A second-order polynomial with Ridge and Lasso', - 2, - None, - '___sec38'), + '___sec35'), + ('Fixing the singularity', 2, None, '___sec36'), ('Fitting vs. predicting when data is in the model class', 2, None, - '___sec39'), + '___sec37'), ('Fitting versus predicting when data is not in the model class', 2, None, - '___sec40'), - ('The code', 2, None, '___sec41'), - ('Generating test data', 2, None, '___sec42'), - ('Lasso regression', 2, None, '___sec43'), - ('Logistic regression', 2, None, '___sec44')]} + '___sec38'), + ('An example code without the model assessment part', + 2, + None, + '___sec39'), + ('Generating test data', 2, None, '___sec40'), + ('How can we effectively evaluate the various models?', + 2, + None, + '___sec41'), + ('Code examples for Ridge and Lasso Regression', + 2, + None, + '___sec42'), + ('A second-order polynomial with Ridge and Lasso', + 2, + None, + '___sec43'), + ('Resampling methods', 2, None, '___sec44'), + ('Resampling approaches can be computationally expensive', + 2, + None, + '___sec45'), + ('Log-likelihood', 2, None, '___sec46'), + ('Cross-validation', 2, None, '___sec47'), + ('Computationally expensive', 2, None, '___sec48'), + ('Various steps in cross-validation', 2, None, '___sec49'), + ('How to set up the cross-validation for Ridge and/or Lasso', + 2, + None, + '___sec50'), + ('Predicted Residual Error Sum of Squares', 2, None, '___sec51'), + ('Bootstrap', 2, None, '___sec52')]} end of tocinfo --> @@ -207,16 +227,24 @@ MathJax.Hub.Config({
  • Linking the regression analysis with a statistical interpretation
  • Expectation value and variance
  • The singular value decompostion
  • -
  • Code examples for Ridge and Lasso Regression
  • -
  • From standard regression to Ridge regressions
  • -
  • Fixing the singularity
  • -
  • A second-order polynomial with Ridge and Lasso
  • -
  • Fitting vs. predicting when data is in the model class
  • -
  • Fitting versus predicting when data is not in the model class
  • -
  • The code
  • -
  • Generating test data
  • -
  • Lasso regression
  • -
  • Logistic regression
  • +
  • From standard regression to Ridge regressions
  • +
  • Fixing the singularity
  • +
  • Fitting vs. predicting when data is in the model class
  • +
  • Fitting versus predicting when data is not in the model class
  • +
  • An example code without the model assessment part
  • +
  • Generating test data
  • +
  • How can we effectively evaluate the various models?
  • +
  • Code examples for Ridge and Lasso Regression
  • +
  • A second-order polynomial with Ridge and Lasso
  • +
  • Resampling methods
  • +
  • Resampling approaches can be computationally expensive
  • +
  • Log-likelihood
  • +
  • Cross-validation
  • +
  • Computationally expensive
  • +
  • Various steps in cross-validation
  • +
  • How to set up the cross-validation for Ridge and/or Lasso
  • +
  • Predicted Residual Error Sum of Squares
  • +
  • Bootstrap
  • @@ -284,7 +312,7 @@ where we have defined the matrix \( \hat{A} =\hat{X}/\hat{\Sigma} \) with matrix
  • 23
  • 24
  • ...
  • -
  • 46
  • +
  • 54
  • »
  • diff --git a/doc/pub/Regression/html/._Regression-bs015.html b/doc/pub/Regression/html/._Regression-bs015.html index 9bb6354df..0d26f1e4c 100644 --- a/doc/pub/Regression/html/._Regression-bs015.html +++ b/doc/pub/Regression/html/._Regression-bs015.html @@ -110,31 +110,51 @@ Automatically generated HTML file from DocOnce source '___sec32'), ('Expectation value and variance', 2, None, '___sec33'), ('The singular value decompostion', 2, None, '___sec34'), - ('Code examples for Ridge and Lasso Regression', - 2, - None, - '___sec35'), ('From standard regression to Ridge regressions', 2, None, - '___sec36'), - ('Fixing the singularity', 2, None, '___sec37'), - ('A second-order polynomial with Ridge and Lasso', - 2, - None, - '___sec38'), + '___sec35'), + ('Fixing the singularity', 2, None, '___sec36'), ('Fitting vs. predicting when data is in the model class', 2, None, - '___sec39'), + '___sec37'), ('Fitting versus predicting when data is not in the model class', 2, None, - '___sec40'), - ('The code', 2, None, '___sec41'), - ('Generating test data', 2, None, '___sec42'), - ('Lasso regression', 2, None, '___sec43'), - ('Logistic regression', 2, None, '___sec44')]} + '___sec38'), + ('An example code without the model assessment part', + 2, + None, + '___sec39'), + ('Generating test data', 2, None, '___sec40'), + ('How can we effectively evaluate the various models?', + 2, + None, + '___sec41'), + ('Code examples for Ridge and Lasso Regression', + 2, + None, + '___sec42'), + ('A second-order polynomial with Ridge and Lasso', + 2, + None, + '___sec43'), + ('Resampling methods', 2, None, '___sec44'), + ('Resampling approaches can be computationally expensive', + 2, + None, + '___sec45'), + ('Log-likelihood', 2, None, '___sec46'), + ('Cross-validation', 2, None, '___sec47'), + ('Computationally expensive', 2, None, '___sec48'), + ('Various steps in cross-validation', 2, None, '___sec49'), + ('How to set up the cross-validation for Ridge and/or Lasso', + 2, + None, + '___sec50'), + ('Predicted Residual Error Sum of Squares', 2, None, '___sec51'), + ('Bootstrap', 2, None, '___sec52')]} end of tocinfo --> @@ -207,16 +227,24 @@ MathJax.Hub.Config({
  • Linking the regression analysis with a statistical interpretation
  • Expectation value and variance
  • The singular value decompostion
  • -
  • Code examples for Ridge and Lasso Regression
  • -
  • From standard regression to Ridge regressions
  • -
  • Fixing the singularity
  • -
  • A second-order polynomial with Ridge and Lasso
  • -
  • Fitting vs. predicting when data is in the model class
  • -
  • Fitting versus predicting when data is not in the model class
  • -
  • The code
  • -
  • Generating test data
  • -
  • Lasso regression
  • -
  • Logistic regression
  • +
  • From standard regression to Ridge regressions
  • +
  • Fixing the singularity
  • +
  • Fitting vs. predicting when data is in the model class
  • +
  • Fitting versus predicting when data is not in the model class
  • +
  • An example code without the model assessment part
  • +
  • Generating test data
  • +
  • How can we effectively evaluate the various models?
  • +
  • Code examples for Ridge and Lasso Regression
  • +
  • A second-order polynomial with Ridge and Lasso
  • +
  • Resampling methods
  • +
  • Resampling approaches can be computationally expensive
  • +
  • Log-likelihood
  • +
  • Cross-validation
  • +
  • Computationally expensive
  • +
  • Various steps in cross-validation
  • +
  • How to set up the cross-validation for Ridge and/or Lasso
  • +
  • Predicted Residual Error Sum of Squares
  • +
  • Bootstrap
  • @@ -282,7 +310,7 @@ $$
  • 24
  • 25
  • ...
  • -
  • 46
  • +
  • 54
  • »
  • diff --git a/doc/pub/Regression/html/._Regression-bs016.html b/doc/pub/Regression/html/._Regression-bs016.html index b3aeb045a..a53ae1b6b 100644 --- a/doc/pub/Regression/html/._Regression-bs016.html +++ b/doc/pub/Regression/html/._Regression-bs016.html @@ -110,31 +110,51 @@ Automatically generated HTML file from DocOnce source '___sec32'), ('Expectation value and variance', 2, None, '___sec33'), ('The singular value decompostion', 2, None, '___sec34'), - ('Code examples for Ridge and Lasso Regression', - 2, - None, - '___sec35'), ('From standard regression to Ridge regressions', 2, None, - '___sec36'), - ('Fixing the singularity', 2, None, '___sec37'), - ('A second-order polynomial with Ridge and Lasso', - 2, - None, - '___sec38'), + '___sec35'), + ('Fixing the singularity', 2, None, '___sec36'), ('Fitting vs. predicting when data is in the model class', 2, None, - '___sec39'), + '___sec37'), ('Fitting versus predicting when data is not in the model class', 2, None, - '___sec40'), - ('The code', 2, None, '___sec41'), - ('Generating test data', 2, None, '___sec42'), - ('Lasso regression', 2, None, '___sec43'), - ('Logistic regression', 2, None, '___sec44')]} + '___sec38'), + ('An example code without the model assessment part', + 2, + None, + '___sec39'), + ('Generating test data', 2, None, '___sec40'), + ('How can we effectively evaluate the various models?', + 2, + None, + '___sec41'), + ('Code examples for Ridge and Lasso Regression', + 2, + None, + '___sec42'), + ('A second-order polynomial with Ridge and Lasso', + 2, + None, + '___sec43'), + ('Resampling methods', 2, None, '___sec44'), + ('Resampling approaches can be computationally expensive', + 2, + None, + '___sec45'), + ('Log-likelihood', 2, None, '___sec46'), + ('Cross-validation', 2, None, '___sec47'), + ('Computationally expensive', 2, None, '___sec48'), + ('Various steps in cross-validation', 2, None, '___sec49'), + ('How to set up the cross-validation for Ridge and/or Lasso', + 2, + None, + '___sec50'), + ('Predicted Residual Error Sum of Squares', 2, None, '___sec51'), + ('Bootstrap', 2, None, '___sec52')]} end of tocinfo --> @@ -207,16 +227,24 @@ MathJax.Hub.Config({
  • Linking the regression analysis with a statistical interpretation
  • Expectation value and variance
  • The singular value decompostion
  • -
  • Code examples for Ridge and Lasso Regression
  • -
  • From standard regression to Ridge regressions
  • -
  • Fixing the singularity
  • -
  • A second-order polynomial with Ridge and Lasso
  • -
  • Fitting vs. predicting when data is in the model class
  • -
  • Fitting versus predicting when data is not in the model class
  • -
  • The code
  • -
  • Generating test data
  • -
  • Lasso regression
  • -
  • Logistic regression
  • +
  • From standard regression to Ridge regressions
  • +
  • Fixing the singularity
  • +
  • Fitting vs. predicting when data is in the model class
  • +
  • Fitting versus predicting when data is not in the model class
  • +
  • An example code without the model assessment part
  • +
  • Generating test data
  • +
  • How can we effectively evaluate the various models?
  • +
  • Code examples for Ridge and Lasso Regression
  • +
  • A second-order polynomial with Ridge and Lasso
  • +
  • Resampling methods
  • +
  • Resampling approaches can be computationally expensive
  • +
  • Log-likelihood
  • +
  • Cross-validation
  • +
  • Computationally expensive
  • +
  • Various steps in cross-validation
  • +
  • How to set up the cross-validation for Ridge and/or Lasso
  • +
  • Predicted Residual Error Sum of Squares
  • +
  • Bootstrap
  • @@ -287,7 +315,7 @@ $$
  • 25
  • 26
  • ...
  • -
  • 46
  • +
  • 54
  • »
  • diff --git a/doc/pub/Regression/html/._Regression-bs017.html b/doc/pub/Regression/html/._Regression-bs017.html index a258a9d2c..9eca50aa1 100644 --- a/doc/pub/Regression/html/._Regression-bs017.html +++ b/doc/pub/Regression/html/._Regression-bs017.html @@ -110,31 +110,51 @@ Automatically generated HTML file from DocOnce source '___sec32'), ('Expectation value and variance', 2, None, '___sec33'), ('The singular value decompostion', 2, None, '___sec34'), - ('Code examples for Ridge and Lasso Regression', - 2, - None, - '___sec35'), ('From standard regression to Ridge regressions', 2, None, - '___sec36'), - ('Fixing the singularity', 2, None, '___sec37'), - ('A second-order polynomial with Ridge and Lasso', - 2, - None, - '___sec38'), + '___sec35'), + ('Fixing the singularity', 2, None, '___sec36'), ('Fitting vs. predicting when data is in the model class', 2, None, - '___sec39'), + '___sec37'), ('Fitting versus predicting when data is not in the model class', 2, None, - '___sec40'), - ('The code', 2, None, '___sec41'), - ('Generating test data', 2, None, '___sec42'), - ('Lasso regression', 2, None, '___sec43'), - ('Logistic regression', 2, None, '___sec44')]} + '___sec38'), + ('An example code without the model assessment part', + 2, + None, + '___sec39'), + ('Generating test data', 2, None, '___sec40'), + ('How can we effectively evaluate the various models?', + 2, + None, + '___sec41'), + ('Code examples for Ridge and Lasso Regression', + 2, + None, + '___sec42'), + ('A second-order polynomial with Ridge and Lasso', + 2, + None, + '___sec43'), + ('Resampling methods', 2, None, '___sec44'), + ('Resampling approaches can be computationally expensive', + 2, + None, + '___sec45'), + ('Log-likelihood', 2, None, '___sec46'), + ('Cross-validation', 2, None, '___sec47'), + ('Computationally expensive', 2, None, '___sec48'), + ('Various steps in cross-validation', 2, None, '___sec49'), + ('How to set up the cross-validation for Ridge and/or Lasso', + 2, + None, + '___sec50'), + ('Predicted Residual Error Sum of Squares', 2, None, '___sec51'), + ('Bootstrap', 2, None, '___sec52')]} end of tocinfo --> @@ -207,16 +227,24 @@ MathJax.Hub.Config({
  • Linking the regression analysis with a statistical interpretation
  • Expectation value and variance
  • The singular value decompostion
  • -
  • Code examples for Ridge and Lasso Regression
  • -
  • From standard regression to Ridge regressions
  • -
  • Fixing the singularity
  • -
  • A second-order polynomial with Ridge and Lasso
  • -
  • Fitting vs. predicting when data is in the model class
  • -
  • Fitting versus predicting when data is not in the model class
  • -
  • The code
  • -
  • Generating test data
  • -
  • Lasso regression
  • -
  • Logistic regression
  • +
  • From standard regression to Ridge regressions
  • +
  • Fixing the singularity
  • +
  • Fitting vs. predicting when data is in the model class
  • +
  • Fitting versus predicting when data is not in the model class
  • +
  • An example code without the model assessment part
  • +
  • Generating test data
  • +
  • How can we effectively evaluate the various models?
  • +
  • Code examples for Ridge and Lasso Regression
  • +
  • A second-order polynomial with Ridge and Lasso
  • +
  • Resampling methods
  • +
  • Resampling approaches can be computationally expensive
  • +
  • Log-likelihood
  • +
  • Cross-validation
  • +
  • Computationally expensive
  • +
  • Various steps in cross-validation
  • +
  • How to set up the cross-validation for Ridge and/or Lasso
  • +
  • Predicted Residual Error Sum of Squares
  • +
  • Bootstrap
  • @@ -280,7 +308,7 @@ $$
  • 26
  • 27
  • ...
  • -
  • 46
  • +
  • 54
  • »
  • diff --git a/doc/pub/Regression/html/._Regression-bs018.html b/doc/pub/Regression/html/._Regression-bs018.html index cc9cfc97e..ea0076b77 100644 --- a/doc/pub/Regression/html/._Regression-bs018.html +++ b/doc/pub/Regression/html/._Regression-bs018.html @@ -110,31 +110,51 @@ Automatically generated HTML file from DocOnce source '___sec32'), ('Expectation value and variance', 2, None, '___sec33'), ('The singular value decompostion', 2, None, '___sec34'), - ('Code examples for Ridge and Lasso Regression', - 2, - None, - '___sec35'), ('From standard regression to Ridge regressions', 2, None, - '___sec36'), - ('Fixing the singularity', 2, None, '___sec37'), - ('A second-order polynomial with Ridge and Lasso', - 2, - None, - '___sec38'), + '___sec35'), + ('Fixing the singularity', 2, None, '___sec36'), ('Fitting vs. predicting when data is in the model class', 2, None, - '___sec39'), + '___sec37'), ('Fitting versus predicting when data is not in the model class', 2, None, - '___sec40'), - ('The code', 2, None, '___sec41'), - ('Generating test data', 2, None, '___sec42'), - ('Lasso regression', 2, None, '___sec43'), - ('Logistic regression', 2, None, '___sec44')]} + '___sec38'), + ('An example code without the model assessment part', + 2, + None, + '___sec39'), + ('Generating test data', 2, None, '___sec40'), + ('How can we effectively evaluate the various models?', + 2, + None, + '___sec41'), + ('Code examples for Ridge and Lasso Regression', + 2, + None, + '___sec42'), + ('A second-order polynomial with Ridge and Lasso', + 2, + None, + '___sec43'), + ('Resampling methods', 2, None, '___sec44'), + ('Resampling approaches can be computationally expensive', + 2, + None, + '___sec45'), + ('Log-likelihood', 2, None, '___sec46'), + ('Cross-validation', 2, None, '___sec47'), + ('Computationally expensive', 2, None, '___sec48'), + ('Various steps in cross-validation', 2, None, '___sec49'), + ('How to set up the cross-validation for Ridge and/or Lasso', + 2, + None, + '___sec50'), + ('Predicted Residual Error Sum of Squares', 2, None, '___sec51'), + ('Bootstrap', 2, None, '___sec52')]} end of tocinfo --> @@ -207,16 +227,24 @@ MathJax.Hub.Config({
  • Linking the regression analysis with a statistical interpretation
  • Expectation value and variance
  • The singular value decompostion
  • -
  • Code examples for Ridge and Lasso Regression
  • -
  • From standard regression to Ridge regressions
  • -
  • Fixing the singularity
  • -
  • A second-order polynomial with Ridge and Lasso
  • -
  • Fitting vs. predicting when data is in the model class
  • -
  • Fitting versus predicting when data is not in the model class
  • -
  • The code
  • -
  • Generating test data
  • -
  • Lasso regression
  • -
  • Logistic regression
  • +
  • From standard regression to Ridge regressions
  • +
  • Fixing the singularity
  • +
  • Fitting vs. predicting when data is in the model class
  • +
  • Fitting versus predicting when data is not in the model class
  • +
  • An example code without the model assessment part
  • +
  • Generating test data
  • +
  • How can we effectively evaluate the various models?
  • +
  • Code examples for Ridge and Lasso Regression
  • +
  • A second-order polynomial with Ridge and Lasso
  • +
  • Resampling methods
  • +
  • Resampling approaches can be computationally expensive
  • +
  • Log-likelihood
  • +
  • Cross-validation
  • +
  • Computationally expensive
  • +
  • Various steps in cross-validation
  • +
  • How to set up the cross-validation for Ridge and/or Lasso
  • +
  • Predicted Residual Error Sum of Squares
  • +
  • Bootstrap
  • @@ -302,7 +330,7 @@ This approach (different linear and non-linear regression) suffers often from bo
  • 27
  • 28
  • ...
  • -
  • 46
  • +
  • 54
  • »
  • diff --git a/doc/pub/Regression/html/._Regression-bs019.html b/doc/pub/Regression/html/._Regression-bs019.html index 26f66fce1..5e38d1e83 100644 --- a/doc/pub/Regression/html/._Regression-bs019.html +++ b/doc/pub/Regression/html/._Regression-bs019.html @@ -110,31 +110,51 @@ Automatically generated HTML file from DocOnce source '___sec32'), ('Expectation value and variance', 2, None, '___sec33'), ('The singular value decompostion', 2, None, '___sec34'), - ('Code examples for Ridge and Lasso Regression', - 2, - None, - '___sec35'), ('From standard regression to Ridge regressions', 2, None, - '___sec36'), - ('Fixing the singularity', 2, None, '___sec37'), - ('A second-order polynomial with Ridge and Lasso', - 2, - None, - '___sec38'), + '___sec35'), + ('Fixing the singularity', 2, None, '___sec36'), ('Fitting vs. predicting when data is in the model class', 2, None, - '___sec39'), + '___sec37'), ('Fitting versus predicting when data is not in the model class', 2, None, - '___sec40'), - ('The code', 2, None, '___sec41'), - ('Generating test data', 2, None, '___sec42'), - ('Lasso regression', 2, None, '___sec43'), - ('Logistic regression', 2, None, '___sec44')]} + '___sec38'), + ('An example code without the model assessment part', + 2, + None, + '___sec39'), + ('Generating test data', 2, None, '___sec40'), + ('How can we effectively evaluate the various models?', + 2, + None, + '___sec41'), + ('Code examples for Ridge and Lasso Regression', + 2, + None, + '___sec42'), + ('A second-order polynomial with Ridge and Lasso', + 2, + None, + '___sec43'), + ('Resampling methods', 2, None, '___sec44'), + ('Resampling approaches can be computationally expensive', + 2, + None, + '___sec45'), + ('Log-likelihood', 2, None, '___sec46'), + ('Cross-validation', 2, None, '___sec47'), + ('Computationally expensive', 2, None, '___sec48'), + ('Various steps in cross-validation', 2, None, '___sec49'), + ('How to set up the cross-validation for Ridge and/or Lasso', + 2, + None, + '___sec50'), + ('Predicted Residual Error Sum of Squares', 2, None, '___sec51'), + ('Bootstrap', 2, None, '___sec52')]} end of tocinfo --> @@ -207,16 +227,24 @@ MathJax.Hub.Config({
  • Linking the regression analysis with a statistical interpretation
  • Expectation value and variance
  • The singular value decompostion
  • -
  • Code examples for Ridge and Lasso Regression
  • -
  • From standard regression to Ridge regressions
  • -
  • Fixing the singularity
  • -
  • A second-order polynomial with Ridge and Lasso
  • -
  • Fitting vs. predicting when data is in the model class
  • -
  • Fitting versus predicting when data is not in the model class
  • -
  • The code
  • -
  • Generating test data
  • -
  • Lasso regression
  • -
  • Logistic regression
  • +
  • From standard regression to Ridge regressions
  • +
  • Fixing the singularity
  • +
  • Fitting vs. predicting when data is in the model class
  • +
  • Fitting versus predicting when data is not in the model class
  • +
  • An example code without the model assessment part
  • +
  • Generating test data
  • +
  • How can we effectively evaluate the various models?
  • +
  • Code examples for Ridge and Lasso Regression
  • +
  • A second-order polynomial with Ridge and Lasso
  • +
  • Resampling methods
  • +
  • Resampling approaches can be computationally expensive
  • +
  • Log-likelihood
  • +
  • Cross-validation
  • +
  • Computationally expensive
  • +
  • Various steps in cross-validation
  • +
  • How to set up the cross-validation for Ridge and/or Lasso
  • +
  • Predicted Residual Error Sum of Squares
  • +
  • Bootstrap
  • @@ -295,7 +323,7 @@ We see that, as expected, a linear fit gives a seemingly (from the graph) good r
  • 28
  • 29
  • ...
  • -
  • 46
  • +
  • 54
  • »
  • diff --git a/doc/pub/Regression/html/._Regression-bs020.html b/doc/pub/Regression/html/._Regression-bs020.html index 4cbf19b9e..188ed0aa4 100644 --- a/doc/pub/Regression/html/._Regression-bs020.html +++ b/doc/pub/Regression/html/._Regression-bs020.html @@ -110,31 +110,51 @@ Automatically generated HTML file from DocOnce source '___sec32'), ('Expectation value and variance', 2, None, '___sec33'), ('The singular value decompostion', 2, None, '___sec34'), - ('Code examples for Ridge and Lasso Regression', - 2, - None, - '___sec35'), ('From standard regression to Ridge regressions', 2, None, - '___sec36'), - ('Fixing the singularity', 2, None, '___sec37'), - ('A second-order polynomial with Ridge and Lasso', - 2, - None, - '___sec38'), + '___sec35'), + ('Fixing the singularity', 2, None, '___sec36'), ('Fitting vs. predicting when data is in the model class', 2, None, - '___sec39'), + '___sec37'), ('Fitting versus predicting when data is not in the model class', 2, None, - '___sec40'), - ('The code', 2, None, '___sec41'), - ('Generating test data', 2, None, '___sec42'), - ('Lasso regression', 2, None, '___sec43'), - ('Logistic regression', 2, None, '___sec44')]} + '___sec38'), + ('An example code without the model assessment part', + 2, + None, + '___sec39'), + ('Generating test data', 2, None, '___sec40'), + ('How can we effectively evaluate the various models?', + 2, + None, + '___sec41'), + ('Code examples for Ridge and Lasso Regression', + 2, + None, + '___sec42'), + ('A second-order polynomial with Ridge and Lasso', + 2, + None, + '___sec43'), + ('Resampling methods', 2, None, '___sec44'), + ('Resampling approaches can be computationally expensive', + 2, + None, + '___sec45'), + ('Log-likelihood', 2, None, '___sec46'), + ('Cross-validation', 2, None, '___sec47'), + ('Computationally expensive', 2, None, '___sec48'), + ('Various steps in cross-validation', 2, None, '___sec49'), + ('How to set up the cross-validation for Ridge and/or Lasso', + 2, + None, + '___sec50'), + ('Predicted Residual Error Sum of Squares', 2, None, '___sec51'), + ('Bootstrap', 2, None, '___sec52')]} end of tocinfo --> @@ -207,16 +227,24 @@ MathJax.Hub.Config({
  • Linking the regression analysis with a statistical interpretation
  • Expectation value and variance
  • The singular value decompostion
  • -
  • Code examples for Ridge and Lasso Regression
  • -
  • From standard regression to Ridge regressions
  • -
  • Fixing the singularity
  • -
  • A second-order polynomial with Ridge and Lasso
  • -
  • Fitting vs. predicting when data is in the model class
  • -
  • Fitting versus predicting when data is not in the model class
  • -
  • The code
  • -
  • Generating test data
  • -
  • Lasso regression
  • -
  • Logistic regression
  • +
  • From standard regression to Ridge regressions
  • +
  • Fixing the singularity
  • +
  • Fitting vs. predicting when data is in the model class
  • +
  • Fitting versus predicting when data is not in the model class
  • +
  • An example code without the model assessment part
  • +
  • Generating test data
  • +
  • How can we effectively evaluate the various models?
  • +
  • Code examples for Ridge and Lasso Regression
  • +
  • A second-order polynomial with Ridge and Lasso
  • +
  • Resampling methods
  • +
  • Resampling approaches can be computationally expensive
  • +
  • Log-likelihood
  • +
  • Cross-validation
  • +
  • Computationally expensive
  • +
  • Various steps in cross-validation
  • +
  • How to set up the cross-validation for Ridge and/or Lasso
  • +
  • Predicted Residual Error Sum of Squares
  • +
  • Bootstrap
  • @@ -286,7 +314,7 @@ plt.show()
  • 29
  • 30
  • ...
  • -
  • 46
  • +
  • 54
  • »
  • diff --git a/doc/pub/Regression/html/._Regression-bs021.html b/doc/pub/Regression/html/._Regression-bs021.html index a768c9fd4..b02ce24d9 100644 --- a/doc/pub/Regression/html/._Regression-bs021.html +++ b/doc/pub/Regression/html/._Regression-bs021.html @@ -110,31 +110,51 @@ Automatically generated HTML file from DocOnce source '___sec32'), ('Expectation value and variance', 2, None, '___sec33'), ('The singular value decompostion', 2, None, '___sec34'), - ('Code examples for Ridge and Lasso Regression', - 2, - None, - '___sec35'), ('From standard regression to Ridge regressions', 2, None, - '___sec36'), - ('Fixing the singularity', 2, None, '___sec37'), - ('A second-order polynomial with Ridge and Lasso', - 2, - None, - '___sec38'), + '___sec35'), + ('Fixing the singularity', 2, None, '___sec36'), ('Fitting vs. predicting when data is in the model class', 2, None, - '___sec39'), + '___sec37'), ('Fitting versus predicting when data is not in the model class', 2, None, - '___sec40'), - ('The code', 2, None, '___sec41'), - ('Generating test data', 2, None, '___sec42'), - ('Lasso regression', 2, None, '___sec43'), - ('Logistic regression', 2, None, '___sec44')]} + '___sec38'), + ('An example code without the model assessment part', + 2, + None, + '___sec39'), + ('Generating test data', 2, None, '___sec40'), + ('How can we effectively evaluate the various models?', + 2, + None, + '___sec41'), + ('Code examples for Ridge and Lasso Regression', + 2, + None, + '___sec42'), + ('A second-order polynomial with Ridge and Lasso', + 2, + None, + '___sec43'), + ('Resampling methods', 2, None, '___sec44'), + ('Resampling approaches can be computationally expensive', + 2, + None, + '___sec45'), + ('Log-likelihood', 2, None, '___sec46'), + ('Cross-validation', 2, None, '___sec47'), + ('Computationally expensive', 2, None, '___sec48'), + ('Various steps in cross-validation', 2, None, '___sec49'), + ('How to set up the cross-validation for Ridge and/or Lasso', + 2, + None, + '___sec50'), + ('Predicted Residual Error Sum of Squares', 2, None, '___sec51'), + ('Bootstrap', 2, None, '___sec52')]} end of tocinfo --> @@ -207,16 +227,24 @@ MathJax.Hub.Config({
  • Linking the regression analysis with a statistical interpretation
  • Expectation value and variance
  • The singular value decompostion
  • -
  • Code examples for Ridge and Lasso Regression
  • -
  • From standard regression to Ridge regressions
  • -
  • Fixing the singularity
  • -
  • A second-order polynomial with Ridge and Lasso
  • -
  • Fitting vs. predicting when data is in the model class
  • -
  • Fitting versus predicting when data is not in the model class
  • -
  • The code
  • -
  • Generating test data
  • -
  • Lasso regression
  • -
  • Logistic regression
  • +
  • From standard regression to Ridge regressions
  • +
  • Fixing the singularity
  • +
  • Fitting vs. predicting when data is in the model class
  • +
  • Fitting versus predicting when data is not in the model class
  • +
  • An example code without the model assessment part
  • +
  • Generating test data
  • +
  • How can we effectively evaluate the various models?
  • +
  • Code examples for Ridge and Lasso Regression
  • +
  • A second-order polynomial with Ridge and Lasso
  • +
  • Resampling methods
  • +
  • Resampling approaches can be computationally expensive
  • +
  • Log-likelihood
  • +
  • Cross-validation
  • +
  • Computationally expensive
  • +
  • Various steps in cross-validation
  • +
  • How to set up the cross-validation for Ridge and/or Lasso
  • +
  • Predicted Residual Error Sum of Squares
  • +
  • Bootstrap
  • @@ -323,7 +351,7 @@ plt.show()
  • 30
  • 31
  • ...
  • -
  • 46
  • +
  • 54
  • »
  • diff --git a/doc/pub/Regression/html/._Regression-bs022.html b/doc/pub/Regression/html/._Regression-bs022.html index dc088d321..ef3e8f482 100644 --- a/doc/pub/Regression/html/._Regression-bs022.html +++ b/doc/pub/Regression/html/._Regression-bs022.html @@ -110,31 +110,51 @@ Automatically generated HTML file from DocOnce source '___sec32'), ('Expectation value and variance', 2, None, '___sec33'), ('The singular value decompostion', 2, None, '___sec34'), - ('Code examples for Ridge and Lasso Regression', - 2, - None, - '___sec35'), ('From standard regression to Ridge regressions', 2, None, - '___sec36'), - ('Fixing the singularity', 2, None, '___sec37'), - ('A second-order polynomial with Ridge and Lasso', - 2, - None, - '___sec38'), + '___sec35'), + ('Fixing the singularity', 2, None, '___sec36'), ('Fitting vs. predicting when data is in the model class', 2, None, - '___sec39'), + '___sec37'), ('Fitting versus predicting when data is not in the model class', 2, None, - '___sec40'), - ('The code', 2, None, '___sec41'), - ('Generating test data', 2, None, '___sec42'), - ('Lasso regression', 2, None, '___sec43'), - ('Logistic regression', 2, None, '___sec44')]} + '___sec38'), + ('An example code without the model assessment part', + 2, + None, + '___sec39'), + ('Generating test data', 2, None, '___sec40'), + ('How can we effectively evaluate the various models?', + 2, + None, + '___sec41'), + ('Code examples for Ridge and Lasso Regression', + 2, + None, + '___sec42'), + ('A second-order polynomial with Ridge and Lasso', + 2, + None, + '___sec43'), + ('Resampling methods', 2, None, '___sec44'), + ('Resampling approaches can be computationally expensive', + 2, + None, + '___sec45'), + ('Log-likelihood', 2, None, '___sec46'), + ('Cross-validation', 2, None, '___sec47'), + ('Computationally expensive', 2, None, '___sec48'), + ('Various steps in cross-validation', 2, None, '___sec49'), + ('How to set up the cross-validation for Ridge and/or Lasso', + 2, + None, + '___sec50'), + ('Predicted Residual Error Sum of Squares', 2, None, '___sec51'), + ('Bootstrap', 2, None, '___sec52')]} end of tocinfo --> @@ -207,16 +227,24 @@ MathJax.Hub.Config({
  • Linking the regression analysis with a statistical interpretation
  • Expectation value and variance
  • The singular value decompostion
  • -
  • Code examples for Ridge and Lasso Regression
  • -
  • From standard regression to Ridge regressions
  • -
  • Fixing the singularity
  • -
  • A second-order polynomial with Ridge and Lasso
  • -
  • Fitting vs. predicting when data is in the model class
  • -
  • Fitting versus predicting when data is not in the model class
  • -
  • The code
  • -
  • Generating test data
  • -
  • Lasso regression
  • -
  • Logistic regression
  • +
  • From standard regression to Ridge regressions
  • +
  • Fixing the singularity
  • +
  • Fitting vs. predicting when data is in the model class
  • +
  • Fitting versus predicting when data is not in the model class
  • +
  • An example code without the model assessment part
  • +
  • Generating test data
  • +
  • How can we effectively evaluate the various models?
  • +
  • Code examples for Ridge and Lasso Regression
  • +
  • A second-order polynomial with Ridge and Lasso
  • +
  • Resampling methods
  • +
  • Resampling approaches can be computationally expensive
  • +
  • Log-likelihood
  • +
  • Cross-validation
  • +
  • Computationally expensive
  • +
  • Various steps in cross-validation
  • +
  • How to set up the cross-validation for Ridge and/or Lasso
  • +
  • Predicted Residual Error Sum of Squares
  • +
  • Bootstrap
  • @@ -277,7 +305,7 @@ where \( x \) is defined as before.
  • 31
  • 32
  • ...
  • -
  • 46
  • +
  • 54
  • »
  • diff --git a/doc/pub/Regression/html/._Regression-bs023.html b/doc/pub/Regression/html/._Regression-bs023.html index 193801b1c..e2730e41b 100644 --- a/doc/pub/Regression/html/._Regression-bs023.html +++ b/doc/pub/Regression/html/._Regression-bs023.html @@ -110,31 +110,51 @@ Automatically generated HTML file from DocOnce source '___sec32'), ('Expectation value and variance', 2, None, '___sec33'), ('The singular value decompostion', 2, None, '___sec34'), - ('Code examples for Ridge and Lasso Regression', - 2, - None, - '___sec35'), ('From standard regression to Ridge regressions', 2, None, - '___sec36'), - ('Fixing the singularity', 2, None, '___sec37'), - ('A second-order polynomial with Ridge and Lasso', - 2, - None, - '___sec38'), + '___sec35'), + ('Fixing the singularity', 2, None, '___sec36'), ('Fitting vs. predicting when data is in the model class', 2, None, - '___sec39'), + '___sec37'), ('Fitting versus predicting when data is not in the model class', 2, None, - '___sec40'), - ('The code', 2, None, '___sec41'), - ('Generating test data', 2, None, '___sec42'), - ('Lasso regression', 2, None, '___sec43'), - ('Logistic regression', 2, None, '___sec44')]} + '___sec38'), + ('An example code without the model assessment part', + 2, + None, + '___sec39'), + ('Generating test data', 2, None, '___sec40'), + ('How can we effectively evaluate the various models?', + 2, + None, + '___sec41'), + ('Code examples for Ridge and Lasso Regression', + 2, + None, + '___sec42'), + ('A second-order polynomial with Ridge and Lasso', + 2, + None, + '___sec43'), + ('Resampling methods', 2, None, '___sec44'), + ('Resampling approaches can be computationally expensive', + 2, + None, + '___sec45'), + ('Log-likelihood', 2, None, '___sec46'), + ('Cross-validation', 2, None, '___sec47'), + ('Computationally expensive', 2, None, '___sec48'), + ('Various steps in cross-validation', 2, None, '___sec49'), + ('How to set up the cross-validation for Ridge and/or Lasso', + 2, + None, + '___sec50'), + ('Predicted Residual Error Sum of Squares', 2, None, '___sec51'), + ('Bootstrap', 2, None, '___sec52')]} end of tocinfo --> @@ -207,16 +227,24 @@ MathJax.Hub.Config({
  • Linking the regression analysis with a statistical interpretation
  • Expectation value and variance
  • The singular value decompostion
  • -
  • Code examples for Ridge and Lasso Regression
  • -
  • From standard regression to Ridge regressions
  • -
  • Fixing the singularity
  • -
  • A second-order polynomial with Ridge and Lasso
  • -
  • Fitting vs. predicting when data is in the model class
  • -
  • Fitting versus predicting when data is not in the model class
  • -
  • The code
  • -
  • Generating test data
  • -
  • Lasso regression
  • -
  • Logistic regression
  • +
  • From standard regression to Ridge regressions
  • +
  • Fixing the singularity
  • +
  • Fitting vs. predicting when data is in the model class
  • +
  • Fitting versus predicting when data is not in the model class
  • +
  • An example code without the model assessment part
  • +
  • Generating test data
  • +
  • How can we effectively evaluate the various models?
  • +
  • Code examples for Ridge and Lasso Regression
  • +
  • A second-order polynomial with Ridge and Lasso
  • +
  • Resampling methods
  • +
  • Resampling approaches can be computationally expensive
  • +
  • Log-likelihood
  • +
  • Cross-validation
  • +
  • Computationally expensive
  • +
  • Various steps in cross-validation
  • +
  • How to set up the cross-validation for Ridge and/or Lasso
  • +
  • Predicted Residual Error Sum of Squares
  • +
  • Bootstrap
  • @@ -268,7 +296,7 @@ have not discussed a more rigorous approach to the cost function.
  • 32
  • 33
  • ...
  • -
  • 46
  • +
  • 54
  • »
  • diff --git a/doc/pub/Regression/html/._Regression-bs024.html b/doc/pub/Regression/html/._Regression-bs024.html index fe69a6e2a..cd61ec01b 100644 --- a/doc/pub/Regression/html/._Regression-bs024.html +++ b/doc/pub/Regression/html/._Regression-bs024.html @@ -110,31 +110,51 @@ Automatically generated HTML file from DocOnce source '___sec32'), ('Expectation value and variance', 2, None, '___sec33'), ('The singular value decompostion', 2, None, '___sec34'), - ('Code examples for Ridge and Lasso Regression', - 2, - None, - '___sec35'), ('From standard regression to Ridge regressions', 2, None, - '___sec36'), - ('Fixing the singularity', 2, None, '___sec37'), - ('A second-order polynomial with Ridge and Lasso', - 2, - None, - '___sec38'), + '___sec35'), + ('Fixing the singularity', 2, None, '___sec36'), ('Fitting vs. predicting when data is in the model class', 2, None, - '___sec39'), + '___sec37'), ('Fitting versus predicting when data is not in the model class', 2, None, - '___sec40'), - ('The code', 2, None, '___sec41'), - ('Generating test data', 2, None, '___sec42'), - ('Lasso regression', 2, None, '___sec43'), - ('Logistic regression', 2, None, '___sec44')]} + '___sec38'), + ('An example code without the model assessment part', + 2, + None, + '___sec39'), + ('Generating test data', 2, None, '___sec40'), + ('How can we effectively evaluate the various models?', + 2, + None, + '___sec41'), + ('Code examples for Ridge and Lasso Regression', + 2, + None, + '___sec42'), + ('A second-order polynomial with Ridge and Lasso', + 2, + None, + '___sec43'), + ('Resampling methods', 2, None, '___sec44'), + ('Resampling approaches can be computationally expensive', + 2, + None, + '___sec45'), + ('Log-likelihood', 2, None, '___sec46'), + ('Cross-validation', 2, None, '___sec47'), + ('Computationally expensive', 2, None, '___sec48'), + ('Various steps in cross-validation', 2, None, '___sec49'), + ('How to set up the cross-validation for Ridge and/or Lasso', + 2, + None, + '___sec50'), + ('Predicted Residual Error Sum of Squares', 2, None, '___sec51'), + ('Bootstrap', 2, None, '___sec52')]} end of tocinfo --> @@ -207,16 +227,24 @@ MathJax.Hub.Config({
  • Linking the regression analysis with a statistical interpretation
  • Expectation value and variance
  • The singular value decompostion
  • -
  • Code examples for Ridge and Lasso Regression
  • -
  • From standard regression to Ridge regressions
  • -
  • Fixing the singularity
  • -
  • A second-order polynomial with Ridge and Lasso
  • -
  • Fitting vs. predicting when data is in the model class
  • -
  • Fitting versus predicting when data is not in the model class
  • -
  • The code
  • -
  • Generating test data
  • -
  • Lasso regression
  • -
  • Logistic regression
  • +
  • From standard regression to Ridge regressions
  • +
  • Fixing the singularity
  • +
  • Fitting vs. predicting when data is in the model class
  • +
  • Fitting versus predicting when data is not in the model class
  • +
  • An example code without the model assessment part
  • +
  • Generating test data
  • +
  • How can we effectively evaluate the various models?
  • +
  • Code examples for Ridge and Lasso Regression
  • +
  • A second-order polynomial with Ridge and Lasso
  • +
  • Resampling methods
  • +
  • Resampling approaches can be computationally expensive
  • +
  • Log-likelihood
  • +
  • Cross-validation
  • +
  • Computationally expensive
  • +
  • Various steps in cross-validation
  • +
  • How to set up the cross-validation for Ridge and/or Lasso
  • +
  • Predicted Residual Error Sum of Squares
  • +
  • Bootstrap
  • @@ -277,7 +305,7 @@ dimensionless.
  • 33
  • 34
  • ...
  • -
  • 46
  • +
  • 54
  • »
  • diff --git a/doc/pub/Regression/html/._Regression-bs025.html b/doc/pub/Regression/html/._Regression-bs025.html index a1e2a076e..31f5d6002 100644 --- a/doc/pub/Regression/html/._Regression-bs025.html +++ b/doc/pub/Regression/html/._Regression-bs025.html @@ -110,31 +110,51 @@ Automatically generated HTML file from DocOnce source '___sec32'), ('Expectation value and variance', 2, None, '___sec33'), ('The singular value decompostion', 2, None, '___sec34'), - ('Code examples for Ridge and Lasso Regression', - 2, - None, - '___sec35'), ('From standard regression to Ridge regressions', 2, None, - '___sec36'), - ('Fixing the singularity', 2, None, '___sec37'), - ('A second-order polynomial with Ridge and Lasso', - 2, - None, - '___sec38'), + '___sec35'), + ('Fixing the singularity', 2, None, '___sec36'), ('Fitting vs. predicting when data is in the model class', 2, None, - '___sec39'), + '___sec37'), ('Fitting versus predicting when data is not in the model class', 2, None, - '___sec40'), - ('The code', 2, None, '___sec41'), - ('Generating test data', 2, None, '___sec42'), - ('Lasso regression', 2, None, '___sec43'), - ('Logistic regression', 2, None, '___sec44')]} + '___sec38'), + ('An example code without the model assessment part', + 2, + None, + '___sec39'), + ('Generating test data', 2, None, '___sec40'), + ('How can we effectively evaluate the various models?', + 2, + None, + '___sec41'), + ('Code examples for Ridge and Lasso Regression', + 2, + None, + '___sec42'), + ('A second-order polynomial with Ridge and Lasso', + 2, + None, + '___sec43'), + ('Resampling methods', 2, None, '___sec44'), + ('Resampling approaches can be computationally expensive', + 2, + None, + '___sec45'), + ('Log-likelihood', 2, None, '___sec46'), + ('Cross-validation', 2, None, '___sec47'), + ('Computationally expensive', 2, None, '___sec48'), + ('Various steps in cross-validation', 2, None, '___sec49'), + ('How to set up the cross-validation for Ridge and/or Lasso', + 2, + None, + '___sec50'), + ('Predicted Residual Error Sum of Squares', 2, None, '___sec51'), + ('Bootstrap', 2, None, '___sec52')]} end of tocinfo --> @@ -207,16 +227,24 @@ MathJax.Hub.Config({
  • Linking the regression analysis with a statistical interpretation
  • Expectation value and variance
  • The singular value decompostion
  • -
  • Code examples for Ridge and Lasso Regression
  • -
  • From standard regression to Ridge regressions
  • -
  • Fixing the singularity
  • -
  • A second-order polynomial with Ridge and Lasso
  • -
  • Fitting vs. predicting when data is in the model class
  • -
  • Fitting versus predicting when data is not in the model class
  • -
  • The code
  • -
  • Generating test data
  • -
  • Lasso regression
  • -
  • Logistic regression
  • +
  • From standard regression to Ridge regressions
  • +
  • Fixing the singularity
  • +
  • Fitting vs. predicting when data is in the model class
  • +
  • Fitting versus predicting when data is not in the model class
  • +
  • An example code without the model assessment part
  • +
  • Generating test data
  • +
  • How can we effectively evaluate the various models?
  • +
  • Code examples for Ridge and Lasso Regression
  • +
  • A second-order polynomial with Ridge and Lasso
  • +
  • Resampling methods
  • +
  • Resampling approaches can be computationally expensive
  • +
  • Log-likelihood
  • +
  • Cross-validation
  • +
  • Computationally expensive
  • +
  • Various steps in cross-validation
  • +
  • How to set up the cross-validation for Ridge and/or Lasso
  • +
  • Predicted Residual Error Sum of Squares
  • +
  • Bootstrap
  • @@ -276,7 +304,7 @@ the \( \chi^2 \) function becomes smaller.
  • 34
  • 35
  • ...
  • -
  • 46
  • +
  • 54
  • »
  • diff --git a/doc/pub/Regression/html/._Regression-bs026.html b/doc/pub/Regression/html/._Regression-bs026.html index 2b050bf0f..f72d47d9f 100644 --- a/doc/pub/Regression/html/._Regression-bs026.html +++ b/doc/pub/Regression/html/._Regression-bs026.html @@ -110,31 +110,51 @@ Automatically generated HTML file from DocOnce source '___sec32'), ('Expectation value and variance', 2, None, '___sec33'), ('The singular value decompostion', 2, None, '___sec34'), - ('Code examples for Ridge and Lasso Regression', - 2, - None, - '___sec35'), ('From standard regression to Ridge regressions', 2, None, - '___sec36'), - ('Fixing the singularity', 2, None, '___sec37'), - ('A second-order polynomial with Ridge and Lasso', - 2, - None, - '___sec38'), + '___sec35'), + ('Fixing the singularity', 2, None, '___sec36'), ('Fitting vs. predicting when data is in the model class', 2, None, - '___sec39'), + '___sec37'), ('Fitting versus predicting when data is not in the model class', 2, None, - '___sec40'), - ('The code', 2, None, '___sec41'), - ('Generating test data', 2, None, '___sec42'), - ('Lasso regression', 2, None, '___sec43'), - ('Logistic regression', 2, None, '___sec44')]} + '___sec38'), + ('An example code without the model assessment part', + 2, + None, + '___sec39'), + ('Generating test data', 2, None, '___sec40'), + ('How can we effectively evaluate the various models?', + 2, + None, + '___sec41'), + ('Code examples for Ridge and Lasso Regression', + 2, + None, + '___sec42'), + ('A second-order polynomial with Ridge and Lasso', + 2, + None, + '___sec43'), + ('Resampling methods', 2, None, '___sec44'), + ('Resampling approaches can be computationally expensive', + 2, + None, + '___sec45'), + ('Log-likelihood', 2, None, '___sec46'), + ('Cross-validation', 2, None, '___sec47'), + ('Computationally expensive', 2, None, '___sec48'), + ('Various steps in cross-validation', 2, None, '___sec49'), + ('How to set up the cross-validation for Ridge and/or Lasso', + 2, + None, + '___sec50'), + ('Predicted Residual Error Sum of Squares', 2, None, '___sec51'), + ('Bootstrap', 2, None, '___sec52')]} end of tocinfo --> @@ -207,16 +227,24 @@ MathJax.Hub.Config({
  • Linking the regression analysis with a statistical interpretation
  • Expectation value and variance
  • The singular value decompostion
  • -
  • Code examples for Ridge and Lasso Regression
  • -
  • From standard regression to Ridge regressions
  • -
  • Fixing the singularity
  • -
  • A second-order polynomial with Ridge and Lasso
  • -
  • Fitting vs. predicting when data is in the model class
  • -
  • Fitting versus predicting when data is not in the model class
  • -
  • The code
  • -
  • Generating test data
  • -
  • Lasso regression
  • -
  • Logistic regression
  • +
  • From standard regression to Ridge regressions
  • +
  • Fixing the singularity
  • +
  • Fitting vs. predicting when data is in the model class
  • +
  • Fitting versus predicting when data is not in the model class
  • +
  • An example code without the model assessment part
  • +
  • Generating test data
  • +
  • How can we effectively evaluate the various models?
  • +
  • Code examples for Ridge and Lasso Regression
  • +
  • A second-order polynomial with Ridge and Lasso
  • +
  • Resampling methods
  • +
  • Resampling approaches can be computationally expensive
  • +
  • Log-likelihood
  • +
  • Cross-validation
  • +
  • Computationally expensive
  • +
  • Various steps in cross-validation
  • +
  • How to set up the cross-validation for Ridge and/or Lasso
  • +
  • Predicted Residual Error Sum of Squares
  • +
  • Bootstrap
  • @@ -295,7 +323,7 @@ relative error.
  • 35
  • 36
  • ...
  • -
  • 46
  • +
  • 54
  • »
  • diff --git a/doc/pub/Regression/html/._Regression-bs027.html b/doc/pub/Regression/html/._Regression-bs027.html index 79b422d69..402165acb 100644 --- a/doc/pub/Regression/html/._Regression-bs027.html +++ b/doc/pub/Regression/html/._Regression-bs027.html @@ -110,31 +110,51 @@ Automatically generated HTML file from DocOnce source '___sec32'), ('Expectation value and variance', 2, None, '___sec33'), ('The singular value decompostion', 2, None, '___sec34'), - ('Code examples for Ridge and Lasso Regression', - 2, - None, - '___sec35'), ('From standard regression to Ridge regressions', 2, None, - '___sec36'), - ('Fixing the singularity', 2, None, '___sec37'), - ('A second-order polynomial with Ridge and Lasso', - 2, - None, - '___sec38'), + '___sec35'), + ('Fixing the singularity', 2, None, '___sec36'), ('Fitting vs. predicting when data is in the model class', 2, None, - '___sec39'), + '___sec37'), ('Fitting versus predicting when data is not in the model class', 2, None, - '___sec40'), - ('The code', 2, None, '___sec41'), - ('Generating test data', 2, None, '___sec42'), - ('Lasso regression', 2, None, '___sec43'), - ('Logistic regression', 2, None, '___sec44')]} + '___sec38'), + ('An example code without the model assessment part', + 2, + None, + '___sec39'), + ('Generating test data', 2, None, '___sec40'), + ('How can we effectively evaluate the various models?', + 2, + None, + '___sec41'), + ('Code examples for Ridge and Lasso Regression', + 2, + None, + '___sec42'), + ('A second-order polynomial with Ridge and Lasso', + 2, + None, + '___sec43'), + ('Resampling methods', 2, None, '___sec44'), + ('Resampling approaches can be computationally expensive', + 2, + None, + '___sec45'), + ('Log-likelihood', 2, None, '___sec46'), + ('Cross-validation', 2, None, '___sec47'), + ('Computationally expensive', 2, None, '___sec48'), + ('Various steps in cross-validation', 2, None, '___sec49'), + ('How to set up the cross-validation for Ridge and/or Lasso', + 2, + None, + '___sec50'), + ('Predicted Residual Error Sum of Squares', 2, None, '___sec51'), + ('Bootstrap', 2, None, '___sec52')]} end of tocinfo --> @@ -207,16 +227,24 @@ MathJax.Hub.Config({
  • Linking the regression analysis with a statistical interpretation
  • Expectation value and variance
  • The singular value decompostion
  • -
  • Code examples for Ridge and Lasso Regression
  • -
  • From standard regression to Ridge regressions
  • -
  • Fixing the singularity
  • -
  • A second-order polynomial with Ridge and Lasso
  • -
  • Fitting vs. predicting when data is in the model class
  • -
  • Fitting versus predicting when data is not in the model class
  • -
  • The code
  • -
  • Generating test data
  • -
  • Lasso regression
  • -
  • Logistic regression
  • +
  • From standard regression to Ridge regressions
  • +
  • Fixing the singularity
  • +
  • Fitting vs. predicting when data is in the model class
  • +
  • Fitting versus predicting when data is not in the model class
  • +
  • An example code without the model assessment part
  • +
  • Generating test data
  • +
  • How can we effectively evaluate the various models?
  • +
  • Code examples for Ridge and Lasso Regression
  • +
  • A second-order polynomial with Ridge and Lasso
  • +
  • Resampling methods
  • +
  • Resampling approaches can be computationally expensive
  • +
  • Log-likelihood
  • +
  • Cross-validation
  • +
  • Computationally expensive
  • +
  • Various steps in cross-validation
  • +
  • How to set up the cross-validation for Ridge and/or Lasso
  • +
  • Predicted Residual Error Sum of Squares
  • +
  • Bootstrap
  • @@ -300,7 +328,7 @@ plt.show()
  • 36
  • 37
  • ...
  • -
  • 46
  • +
  • 54
  • »
  • diff --git a/doc/pub/Regression/html/._Regression-bs028.html b/doc/pub/Regression/html/._Regression-bs028.html index 79c5f693a..56e72568c 100644 --- a/doc/pub/Regression/html/._Regression-bs028.html +++ b/doc/pub/Regression/html/._Regression-bs028.html @@ -110,31 +110,51 @@ Automatically generated HTML file from DocOnce source '___sec32'), ('Expectation value and variance', 2, None, '___sec33'), ('The singular value decompostion', 2, None, '___sec34'), - ('Code examples for Ridge and Lasso Regression', - 2, - None, - '___sec35'), ('From standard regression to Ridge regressions', 2, None, - '___sec36'), - ('Fixing the singularity', 2, None, '___sec37'), - ('A second-order polynomial with Ridge and Lasso', - 2, - None, - '___sec38'), + '___sec35'), + ('Fixing the singularity', 2, None, '___sec36'), ('Fitting vs. predicting when data is in the model class', 2, None, - '___sec39'), + '___sec37'), ('Fitting versus predicting when data is not in the model class', 2, None, - '___sec40'), - ('The code', 2, None, '___sec41'), - ('Generating test data', 2, None, '___sec42'), - ('Lasso regression', 2, None, '___sec43'), - ('Logistic regression', 2, None, '___sec44')]} + '___sec38'), + ('An example code without the model assessment part', + 2, + None, + '___sec39'), + ('Generating test data', 2, None, '___sec40'), + ('How can we effectively evaluate the various models?', + 2, + None, + '___sec41'), + ('Code examples for Ridge and Lasso Regression', + 2, + None, + '___sec42'), + ('A second-order polynomial with Ridge and Lasso', + 2, + None, + '___sec43'), + ('Resampling methods', 2, None, '___sec44'), + ('Resampling approaches can be computationally expensive', + 2, + None, + '___sec45'), + ('Log-likelihood', 2, None, '___sec46'), + ('Cross-validation', 2, None, '___sec47'), + ('Computationally expensive', 2, None, '___sec48'), + ('Various steps in cross-validation', 2, None, '___sec49'), + ('How to set up the cross-validation for Ridge and/or Lasso', + 2, + None, + '___sec50'), + ('Predicted Residual Error Sum of Squares', 2, None, '___sec51'), + ('Bootstrap', 2, None, '___sec52')]} end of tocinfo --> @@ -207,16 +227,24 @@ MathJax.Hub.Config({
  • Linking the regression analysis with a statistical interpretation
  • Expectation value and variance
  • The singular value decompostion
  • -
  • Code examples for Ridge and Lasso Regression
  • -
  • From standard regression to Ridge regressions
  • -
  • Fixing the singularity
  • -
  • A second-order polynomial with Ridge and Lasso
  • -
  • Fitting vs. predicting when data is in the model class
  • -
  • Fitting versus predicting when data is not in the model class
  • -
  • The code
  • -
  • Generating test data
  • -
  • Lasso regression
  • -
  • Logistic regression
  • +
  • From standard regression to Ridge regressions
  • +
  • Fixing the singularity
  • +
  • Fitting vs. predicting when data is in the model class
  • +
  • Fitting versus predicting when data is not in the model class
  • +
  • An example code without the model assessment part
  • +
  • Generating test data
  • +
  • How can we effectively evaluate the various models?
  • +
  • Code examples for Ridge and Lasso Regression
  • +
  • A second-order polynomial with Ridge and Lasso
  • +
  • Resampling methods
  • +
  • Resampling approaches can be computationally expensive
  • +
  • Log-likelihood
  • +
  • Cross-validation
  • +
  • Computationally expensive
  • +
  • Various steps in cross-validation
  • +
  • How to set up the cross-validation for Ridge and/or Lasso
  • +
  • Predicted Residual Error Sum of Squares
  • +
  • Bootstrap
  • @@ -272,7 +300,7 @@ this function as being similar to the \( \chi^2 \) function defined above.
  • 37
  • 38
  • ...
  • -
  • 46
  • +
  • 54
  • »
  • diff --git a/doc/pub/Regression/html/._Regression-bs029.html b/doc/pub/Regression/html/._Regression-bs029.html index 33cd41ef8..a17909406 100644 --- a/doc/pub/Regression/html/._Regression-bs029.html +++ b/doc/pub/Regression/html/._Regression-bs029.html @@ -110,31 +110,51 @@ Automatically generated HTML file from DocOnce source '___sec32'), ('Expectation value and variance', 2, None, '___sec33'), ('The singular value decompostion', 2, None, '___sec34'), - ('Code examples for Ridge and Lasso Regression', - 2, - None, - '___sec35'), ('From standard regression to Ridge regressions', 2, None, - '___sec36'), - ('Fixing the singularity', 2, None, '___sec37'), - ('A second-order polynomial with Ridge and Lasso', - 2, - None, - '___sec38'), + '___sec35'), + ('Fixing the singularity', 2, None, '___sec36'), ('Fitting vs. predicting when data is in the model class', 2, None, - '___sec39'), + '___sec37'), ('Fitting versus predicting when data is not in the model class', 2, None, - '___sec40'), - ('The code', 2, None, '___sec41'), - ('Generating test data', 2, None, '___sec42'), - ('Lasso regression', 2, None, '___sec43'), - ('Logistic regression', 2, None, '___sec44')]} + '___sec38'), + ('An example code without the model assessment part', + 2, + None, + '___sec39'), + ('Generating test data', 2, None, '___sec40'), + ('How can we effectively evaluate the various models?', + 2, + None, + '___sec41'), + ('Code examples for Ridge and Lasso Regression', + 2, + None, + '___sec42'), + ('A second-order polynomial with Ridge and Lasso', + 2, + None, + '___sec43'), + ('Resampling methods', 2, None, '___sec44'), + ('Resampling approaches can be computationally expensive', + 2, + None, + '___sec45'), + ('Log-likelihood', 2, None, '___sec46'), + ('Cross-validation', 2, None, '___sec47'), + ('Computationally expensive', 2, None, '___sec48'), + ('Various steps in cross-validation', 2, None, '___sec49'), + ('How to set up the cross-validation for Ridge and/or Lasso', + 2, + None, + '___sec50'), + ('Predicted Residual Error Sum of Squares', 2, None, '___sec51'), + ('Bootstrap', 2, None, '___sec52')]} end of tocinfo --> @@ -207,16 +227,24 @@ MathJax.Hub.Config({
  • Linking the regression analysis with a statistical interpretation
  • Expectation value and variance
  • The singular value decompostion
  • -
  • Code examples for Ridge and Lasso Regression
  • -
  • From standard regression to Ridge regressions
  • -
  • Fixing the singularity
  • -
  • A second-order polynomial with Ridge and Lasso
  • -
  • Fitting vs. predicting when data is in the model class
  • -
  • Fitting versus predicting when data is not in the model class
  • -
  • The code
  • -
  • Generating test data
  • -
  • Lasso regression
  • -
  • Logistic regression
  • +
  • From standard regression to Ridge regressions
  • +
  • Fixing the singularity
  • +
  • Fitting vs. predicting when data is in the model class
  • +
  • Fitting versus predicting when data is not in the model class
  • +
  • An example code without the model assessment part
  • +
  • Generating test data
  • +
  • How can we effectively evaluate the various models?
  • +
  • Code examples for Ridge and Lasso Regression
  • +
  • A second-order polynomial with Ridge and Lasso
  • +
  • Resampling methods
  • +
  • Resampling approaches can be computationally expensive
  • +
  • Log-likelihood
  • +
  • Cross-validation
  • +
  • Computationally expensive
  • +
  • Various steps in cross-validation
  • +
  • How to set up the cross-validation for Ridge and/or Lasso
  • +
  • Predicted Residual Error Sum of Squares
  • +
  • Bootstrap
  • @@ -279,7 +307,7 @@ $$
  • 38
  • 39
  • ...
  • -
  • 46
  • +
  • 54
  • »
  • diff --git a/doc/pub/Regression/html/._Regression-bs030.html b/doc/pub/Regression/html/._Regression-bs030.html index 69b76d122..c26af9a7b 100644 --- a/doc/pub/Regression/html/._Regression-bs030.html +++ b/doc/pub/Regression/html/._Regression-bs030.html @@ -110,31 +110,51 @@ Automatically generated HTML file from DocOnce source '___sec32'), ('Expectation value and variance', 2, None, '___sec33'), ('The singular value decompostion', 2, None, '___sec34'), - ('Code examples for Ridge and Lasso Regression', - 2, - None, - '___sec35'), ('From standard regression to Ridge regressions', 2, None, - '___sec36'), - ('Fixing the singularity', 2, None, '___sec37'), - ('A second-order polynomial with Ridge and Lasso', - 2, - None, - '___sec38'), + '___sec35'), + ('Fixing the singularity', 2, None, '___sec36'), ('Fitting vs. predicting when data is in the model class', 2, None, - '___sec39'), + '___sec37'), ('Fitting versus predicting when data is not in the model class', 2, None, - '___sec40'), - ('The code', 2, None, '___sec41'), - ('Generating test data', 2, None, '___sec42'), - ('Lasso regression', 2, None, '___sec43'), - ('Logistic regression', 2, None, '___sec44')]} + '___sec38'), + ('An example code without the model assessment part', + 2, + None, + '___sec39'), + ('Generating test data', 2, None, '___sec40'), + ('How can we effectively evaluate the various models?', + 2, + None, + '___sec41'), + ('Code examples for Ridge and Lasso Regression', + 2, + None, + '___sec42'), + ('A second-order polynomial with Ridge and Lasso', + 2, + None, + '___sec43'), + ('Resampling methods', 2, None, '___sec44'), + ('Resampling approaches can be computationally expensive', + 2, + None, + '___sec45'), + ('Log-likelihood', 2, None, '___sec46'), + ('Cross-validation', 2, None, '___sec47'), + ('Computationally expensive', 2, None, '___sec48'), + ('Various steps in cross-validation', 2, None, '___sec49'), + ('How to set up the cross-validation for Ridge and/or Lasso', + 2, + None, + '___sec50'), + ('Predicted Residual Error Sum of Squares', 2, None, '___sec51'), + ('Bootstrap', 2, None, '___sec52')]} end of tocinfo --> @@ -207,16 +227,24 @@ MathJax.Hub.Config({
  • Linking the regression analysis with a statistical interpretation
  • Expectation value and variance
  • The singular value decompostion
  • -
  • Code examples for Ridge and Lasso Regression
  • -
  • From standard regression to Ridge regressions
  • -
  • Fixing the singularity
  • -
  • A second-order polynomial with Ridge and Lasso
  • -
  • Fitting vs. predicting when data is in the model class
  • -
  • Fitting versus predicting when data is not in the model class
  • -
  • The code
  • -
  • Generating test data
  • -
  • Lasso regression
  • -
  • Logistic regression
  • +
  • From standard regression to Ridge regressions
  • +
  • Fixing the singularity
  • +
  • Fitting vs. predicting when data is in the model class
  • +
  • Fitting versus predicting when data is not in the model class
  • +
  • An example code without the model assessment part
  • +
  • Generating test data
  • +
  • How can we effectively evaluate the various models?
  • +
  • Code examples for Ridge and Lasso Regression
  • +
  • A second-order polynomial with Ridge and Lasso
  • +
  • Resampling methods
  • +
  • Resampling approaches can be computationally expensive
  • +
  • Log-likelihood
  • +
  • Cross-validation
  • +
  • Computationally expensive
  • +
  • Various steps in cross-validation
  • +
  • How to set up the cross-validation for Ridge and/or Lasso
  • +
  • Predicted Residual Error Sum of Squares
  • +
  • Bootstrap
  • @@ -280,7 +308,7 @@ years etc.
  • 39
  • 40
  • ...
  • -
  • 46
  • +
  • 54
  • »
  • diff --git a/doc/pub/Regression/html/._Regression-bs031.html b/doc/pub/Regression/html/._Regression-bs031.html index 3033d8063..ff865ccb9 100644 --- a/doc/pub/Regression/html/._Regression-bs031.html +++ b/doc/pub/Regression/html/._Regression-bs031.html @@ -110,31 +110,51 @@ Automatically generated HTML file from DocOnce source '___sec32'), ('Expectation value and variance', 2, None, '___sec33'), ('The singular value decompostion', 2, None, '___sec34'), - ('Code examples for Ridge and Lasso Regression', - 2, - None, - '___sec35'), ('From standard regression to Ridge regressions', 2, None, - '___sec36'), - ('Fixing the singularity', 2, None, '___sec37'), - ('A second-order polynomial with Ridge and Lasso', - 2, - None, - '___sec38'), + '___sec35'), + ('Fixing the singularity', 2, None, '___sec36'), ('Fitting vs. predicting when data is in the model class', 2, None, - '___sec39'), + '___sec37'), ('Fitting versus predicting when data is not in the model class', 2, None, - '___sec40'), - ('The code', 2, None, '___sec41'), - ('Generating test data', 2, None, '___sec42'), - ('Lasso regression', 2, None, '___sec43'), - ('Logistic regression', 2, None, '___sec44')]} + '___sec38'), + ('An example code without the model assessment part', + 2, + None, + '___sec39'), + ('Generating test data', 2, None, '___sec40'), + ('How can we effectively evaluate the various models?', + 2, + None, + '___sec41'), + ('Code examples for Ridge and Lasso Regression', + 2, + None, + '___sec42'), + ('A second-order polynomial with Ridge and Lasso', + 2, + None, + '___sec43'), + ('Resampling methods', 2, None, '___sec44'), + ('Resampling approaches can be computationally expensive', + 2, + None, + '___sec45'), + ('Log-likelihood', 2, None, '___sec46'), + ('Cross-validation', 2, None, '___sec47'), + ('Computationally expensive', 2, None, '___sec48'), + ('Various steps in cross-validation', 2, None, '___sec49'), + ('How to set up the cross-validation for Ridge and/or Lasso', + 2, + None, + '___sec50'), + ('Predicted Residual Error Sum of Squares', 2, None, '___sec51'), + ('Bootstrap', 2, None, '___sec52')]} end of tocinfo --> @@ -207,16 +227,24 @@ MathJax.Hub.Config({
  • Linking the regression analysis with a statistical interpretation
  • Expectation value and variance
  • The singular value decompostion
  • -
  • Code examples for Ridge and Lasso Regression
  • -
  • From standard regression to Ridge regressions
  • -
  • Fixing the singularity
  • -
  • A second-order polynomial with Ridge and Lasso
  • -
  • Fitting vs. predicting when data is in the model class
  • -
  • Fitting versus predicting when data is not in the model class
  • -
  • The code
  • -
  • Generating test data
  • -
  • Lasso regression
  • -
  • Logistic regression
  • +
  • From standard regression to Ridge regressions
  • +
  • Fixing the singularity
  • +
  • Fitting vs. predicting when data is in the model class
  • +
  • Fitting versus predicting when data is not in the model class
  • +
  • An example code without the model assessment part
  • +
  • Generating test data
  • +
  • How can we effectively evaluate the various models?
  • +
  • Code examples for Ridge and Lasso Regression
  • +
  • A second-order polynomial with Ridge and Lasso
  • +
  • Resampling methods
  • +
  • Resampling approaches can be computationally expensive
  • +
  • Log-likelihood
  • +
  • Cross-validation
  • +
  • Computationally expensive
  • +
  • Various steps in cross-validation
  • +
  • How to set up the cross-validation for Ridge and/or Lasso
  • +
  • Predicted Residual Error Sum of Squares
  • +
  • Bootstrap
  • @@ -303,7 +331,7 @@ Using R, we can perform similar studies.
  • 40
  • 41
  • ...
  • -
  • 46
  • +
  • 54
  • »
  • diff --git a/doc/pub/Regression/html/._Regression-bs032.html b/doc/pub/Regression/html/._Regression-bs032.html index 0f9b89474..1101eac0f 100644 --- a/doc/pub/Regression/html/._Regression-bs032.html +++ b/doc/pub/Regression/html/._Regression-bs032.html @@ -110,31 +110,51 @@ Automatically generated HTML file from DocOnce source '___sec32'), ('Expectation value and variance', 2, None, '___sec33'), ('The singular value decompostion', 2, None, '___sec34'), - ('Code examples for Ridge and Lasso Regression', - 2, - None, - '___sec35'), ('From standard regression to Ridge regressions', 2, None, - '___sec36'), - ('Fixing the singularity', 2, None, '___sec37'), - ('A second-order polynomial with Ridge and Lasso', - 2, - None, - '___sec38'), + '___sec35'), + ('Fixing the singularity', 2, None, '___sec36'), ('Fitting vs. predicting when data is in the model class', 2, None, - '___sec39'), + '___sec37'), ('Fitting versus predicting when data is not in the model class', 2, None, - '___sec40'), - ('The code', 2, None, '___sec41'), - ('Generating test data', 2, None, '___sec42'), - ('Lasso regression', 2, None, '___sec43'), - ('Logistic regression', 2, None, '___sec44')]} + '___sec38'), + ('An example code without the model assessment part', + 2, + None, + '___sec39'), + ('Generating test data', 2, None, '___sec40'), + ('How can we effectively evaluate the various models?', + 2, + None, + '___sec41'), + ('Code examples for Ridge and Lasso Regression', + 2, + None, + '___sec42'), + ('A second-order polynomial with Ridge and Lasso', + 2, + None, + '___sec43'), + ('Resampling methods', 2, None, '___sec44'), + ('Resampling approaches can be computationally expensive', + 2, + None, + '___sec45'), + ('Log-likelihood', 2, None, '___sec46'), + ('Cross-validation', 2, None, '___sec47'), + ('Computationally expensive', 2, None, '___sec48'), + ('Various steps in cross-validation', 2, None, '___sec49'), + ('How to set up the cross-validation for Ridge and/or Lasso', + 2, + None, + '___sec50'), + ('Predicted Residual Error Sum of Squares', 2, None, '___sec51'), + ('Bootstrap', 2, None, '___sec52')]} end of tocinfo --> @@ -207,16 +227,24 @@ MathJax.Hub.Config({
  • Linking the regression analysis with a statistical interpretation
  • Expectation value and variance
  • The singular value decompostion
  • -
  • Code examples for Ridge and Lasso Regression
  • -
  • From standard regression to Ridge regressions
  • -
  • Fixing the singularity
  • -
  • A second-order polynomial with Ridge and Lasso
  • -
  • Fitting vs. predicting when data is in the model class
  • -
  • Fitting versus predicting when data is not in the model class
  • -
  • The code
  • -
  • Generating test data
  • -
  • Lasso regression
  • -
  • Logistic regression
  • +
  • From standard regression to Ridge regressions
  • +
  • Fixing the singularity
  • +
  • Fitting vs. predicting when data is in the model class
  • +
  • Fitting versus predicting when data is not in the model class
  • +
  • An example code without the model assessment part
  • +
  • Generating test data
  • +
  • How can we effectively evaluate the various models?
  • +
  • Code examples for Ridge and Lasso Regression
  • +
  • A second-order polynomial with Ridge and Lasso
  • +
  • Resampling methods
  • +
  • Resampling approaches can be computationally expensive
  • +
  • Log-likelihood
  • +
  • Cross-validation
  • +
  • Computationally expensive
  • +
  • Various steps in cross-validation
  • +
  • How to set up the cross-validation for Ridge and/or Lasso
  • +
  • Predicted Residual Error Sum of Squares
  • +
  • Bootstrap
  • @@ -286,7 +314,7 @@ plt.show()
  • 41
  • 42
  • ...
  • -
  • 46
  • +
  • 54
  • »
  • diff --git a/doc/pub/Regression/html/._Regression-bs033.html b/doc/pub/Regression/html/._Regression-bs033.html index d55114e2c..a9b1394ed 100644 --- a/doc/pub/Regression/html/._Regression-bs033.html +++ b/doc/pub/Regression/html/._Regression-bs033.html @@ -110,31 +110,51 @@ Automatically generated HTML file from DocOnce source '___sec32'), ('Expectation value and variance', 2, None, '___sec33'), ('The singular value decompostion', 2, None, '___sec34'), - ('Code examples for Ridge and Lasso Regression', - 2, - None, - '___sec35'), ('From standard regression to Ridge regressions', 2, None, - '___sec36'), - ('Fixing the singularity', 2, None, '___sec37'), - ('A second-order polynomial with Ridge and Lasso', - 2, - None, - '___sec38'), + '___sec35'), + ('Fixing the singularity', 2, None, '___sec36'), ('Fitting vs. predicting when data is in the model class', 2, None, - '___sec39'), + '___sec37'), ('Fitting versus predicting when data is not in the model class', 2, None, - '___sec40'), - ('The code', 2, None, '___sec41'), - ('Generating test data', 2, None, '___sec42'), - ('Lasso regression', 2, None, '___sec43'), - ('Logistic regression', 2, None, '___sec44')]} + '___sec38'), + ('An example code without the model assessment part', + 2, + None, + '___sec39'), + ('Generating test data', 2, None, '___sec40'), + ('How can we effectively evaluate the various models?', + 2, + None, + '___sec41'), + ('Code examples for Ridge and Lasso Regression', + 2, + None, + '___sec42'), + ('A second-order polynomial with Ridge and Lasso', + 2, + None, + '___sec43'), + ('Resampling methods', 2, None, '___sec44'), + ('Resampling approaches can be computationally expensive', + 2, + None, + '___sec45'), + ('Log-likelihood', 2, None, '___sec46'), + ('Cross-validation', 2, None, '___sec47'), + ('Computationally expensive', 2, None, '___sec48'), + ('Various steps in cross-validation', 2, None, '___sec49'), + ('How to set up the cross-validation for Ridge and/or Lasso', + 2, + None, + '___sec50'), + ('Predicted Residual Error Sum of Squares', 2, None, '___sec51'), + ('Bootstrap', 2, None, '___sec52')]} end of tocinfo --> @@ -207,16 +227,24 @@ MathJax.Hub.Config({
  • Linking the regression analysis with a statistical interpretation
  • Expectation value and variance
  • The singular value decompostion
  • -
  • Code examples for Ridge and Lasso Regression
  • -
  • From standard regression to Ridge regressions
  • -
  • Fixing the singularity
  • -
  • A second-order polynomial with Ridge and Lasso
  • -
  • Fitting vs. predicting when data is in the model class
  • -
  • Fitting versus predicting when data is not in the model class
  • -
  • The code
  • -
  • Generating test data
  • -
  • Lasso regression
  • -
  • Logistic regression
  • +
  • From standard regression to Ridge regressions
  • +
  • Fixing the singularity
  • +
  • Fitting vs. predicting when data is in the model class
  • +
  • Fitting versus predicting when data is not in the model class
  • +
  • An example code without the model assessment part
  • +
  • Generating test data
  • +
  • How can we effectively evaluate the various models?
  • +
  • Code examples for Ridge and Lasso Regression
  • +
  • A second-order polynomial with Ridge and Lasso
  • +
  • Resampling methods
  • +
  • Resampling approaches can be computationally expensive
  • +
  • Log-likelihood
  • +
  • Cross-validation
  • +
  • Computationally expensive
  • +
  • Various steps in cross-validation
  • +
  • How to set up the cross-validation for Ridge and/or Lasso
  • +
  • Predicted Residual Error Sum of Squares
  • +
  • Bootstrap
  • @@ -282,7 +310,7 @@ non-random scalar. To specify the parameters of the distribution of
  • 42
  • 43
  • ...
  • -
  • 46
  • +
  • 54
  • »
  • diff --git a/doc/pub/Regression/html/._Regression-bs034.html b/doc/pub/Regression/html/._Regression-bs034.html index a5c44e236..c5be7672b 100644 --- a/doc/pub/Regression/html/._Regression-bs034.html +++ b/doc/pub/Regression/html/._Regression-bs034.html @@ -110,31 +110,51 @@ Automatically generated HTML file from DocOnce source '___sec32'), ('Expectation value and variance', 2, None, '___sec33'), ('The singular value decompostion', 2, None, '___sec34'), - ('Code examples for Ridge and Lasso Regression', - 2, - None, - '___sec35'), ('From standard regression to Ridge regressions', 2, None, - '___sec36'), - ('Fixing the singularity', 2, None, '___sec37'), - ('A second-order polynomial with Ridge and Lasso', - 2, - None, - '___sec38'), + '___sec35'), + ('Fixing the singularity', 2, None, '___sec36'), ('Fitting vs. predicting when data is in the model class', 2, None, - '___sec39'), + '___sec37'), ('Fitting versus predicting when data is not in the model class', 2, None, - '___sec40'), - ('The code', 2, None, '___sec41'), - ('Generating test data', 2, None, '___sec42'), - ('Lasso regression', 2, None, '___sec43'), - ('Logistic regression', 2, None, '___sec44')]} + '___sec38'), + ('An example code without the model assessment part', + 2, + None, + '___sec39'), + ('Generating test data', 2, None, '___sec40'), + ('How can we effectively evaluate the various models?', + 2, + None, + '___sec41'), + ('Code examples for Ridge and Lasso Regression', + 2, + None, + '___sec42'), + ('A second-order polynomial with Ridge and Lasso', + 2, + None, + '___sec43'), + ('Resampling methods', 2, None, '___sec44'), + ('Resampling approaches can be computationally expensive', + 2, + None, + '___sec45'), + ('Log-likelihood', 2, None, '___sec46'), + ('Cross-validation', 2, None, '___sec47'), + ('Computationally expensive', 2, None, '___sec48'), + ('Various steps in cross-validation', 2, None, '___sec49'), + ('How to set up the cross-validation for Ridge and/or Lasso', + 2, + None, + '___sec50'), + ('Predicted Residual Error Sum of Squares', 2, None, '___sec51'), + ('Bootstrap', 2, None, '___sec52')]} end of tocinfo --> @@ -207,16 +227,24 @@ MathJax.Hub.Config({
  • Linking the regression analysis with a statistical interpretation
  • Expectation value and variance
  • The singular value decompostion
  • -
  • Code examples for Ridge and Lasso Regression
  • -
  • From standard regression to Ridge regressions
  • -
  • Fixing the singularity
  • -
  • A second-order polynomial with Ridge and Lasso
  • -
  • Fitting vs. predicting when data is in the model class
  • -
  • Fitting versus predicting when data is not in the model class
  • -
  • The code
  • -
  • Generating test data
  • -
  • Lasso regression
  • -
  • Logistic regression
  • +
  • From standard regression to Ridge regressions
  • +
  • Fixing the singularity
  • +
  • Fitting vs. predicting when data is in the model class
  • +
  • Fitting versus predicting when data is not in the model class
  • +
  • An example code without the model assessment part
  • +
  • Generating test data
  • +
  • How can we effectively evaluate the various models?
  • +
  • Code examples for Ridge and Lasso Regression
  • +
  • A second-order polynomial with Ridge and Lasso
  • +
  • Resampling methods
  • +
  • Resampling approaches can be computationally expensive
  • +
  • Log-likelihood
  • +
  • Cross-validation
  • +
  • Computationally expensive
  • +
  • Various steps in cross-validation
  • +
  • How to set up the cross-validation for Ridge and/or Lasso
  • +
  • Predicted Residual Error Sum of Squares
  • +
  • Bootstrap
  • @@ -289,7 +317,7 @@ Hence, \( Y_i \sim \mathcal{N}( \mathbf{X}_{i, \ast} \, \beta, \sigma^2) \).
  • 43
  • 44
  • ...
  • -
  • 46
  • +
  • 54
  • »
  • diff --git a/doc/pub/Regression/html/._Regression-bs035.html b/doc/pub/Regression/html/._Regression-bs035.html index 3902c8b08..7da384969 100644 --- a/doc/pub/Regression/html/._Regression-bs035.html +++ b/doc/pub/Regression/html/._Regression-bs035.html @@ -110,31 +110,51 @@ Automatically generated HTML file from DocOnce source '___sec32'), ('Expectation value and variance', 2, None, '___sec33'), ('The singular value decompostion', 2, None, '___sec34'), - ('Code examples for Ridge and Lasso Regression', - 2, - None, - '___sec35'), ('From standard regression to Ridge regressions', 2, None, - '___sec36'), - ('Fixing the singularity', 2, None, '___sec37'), - ('A second-order polynomial with Ridge and Lasso', - 2, - None, - '___sec38'), + '___sec35'), + ('Fixing the singularity', 2, None, '___sec36'), ('Fitting vs. predicting when data is in the model class', 2, None, - '___sec39'), + '___sec37'), ('Fitting versus predicting when data is not in the model class', 2, None, - '___sec40'), - ('The code', 2, None, '___sec41'), - ('Generating test data', 2, None, '___sec42'), - ('Lasso regression', 2, None, '___sec43'), - ('Logistic regression', 2, None, '___sec44')]} + '___sec38'), + ('An example code without the model assessment part', + 2, + None, + '___sec39'), + ('Generating test data', 2, None, '___sec40'), + ('How can we effectively evaluate the various models?', + 2, + None, + '___sec41'), + ('Code examples for Ridge and Lasso Regression', + 2, + None, + '___sec42'), + ('A second-order polynomial with Ridge and Lasso', + 2, + None, + '___sec43'), + ('Resampling methods', 2, None, '___sec44'), + ('Resampling approaches can be computationally expensive', + 2, + None, + '___sec45'), + ('Log-likelihood', 2, None, '___sec46'), + ('Cross-validation', 2, None, '___sec47'), + ('Computationally expensive', 2, None, '___sec48'), + ('Various steps in cross-validation', 2, None, '___sec49'), + ('How to set up the cross-validation for Ridge and/or Lasso', + 2, + None, + '___sec50'), + ('Predicted Residual Error Sum of Squares', 2, None, '___sec51'), + ('Bootstrap', 2, None, '___sec52')]} end of tocinfo --> @@ -207,16 +227,24 @@ MathJax.Hub.Config({
  • Linking the regression analysis with a statistical interpretation
  • Expectation value and variance
  • The singular value decompostion
  • -
  • Code examples for Ridge and Lasso Regression
  • -
  • From standard regression to Ridge regressions
  • -
  • Fixing the singularity
  • -
  • A second-order polynomial with Ridge and Lasso
  • -
  • Fitting vs. predicting when data is in the model class
  • -
  • Fitting versus predicting when data is not in the model class
  • -
  • The code
  • -
  • Generating test data
  • -
  • Lasso regression
  • -
  • Logistic regression
  • +
  • From standard regression to Ridge regressions
  • +
  • Fixing the singularity
  • +
  • Fitting vs. predicting when data is in the model class
  • +
  • Fitting versus predicting when data is not in the model class
  • +
  • An example code without the model assessment part
  • +
  • Generating test data
  • +
  • How can we effectively evaluate the various models?
  • +
  • Code examples for Ridge and Lasso Regression
  • +
  • A second-order polynomial with Ridge and Lasso
  • +
  • Resampling methods
  • +
  • Resampling approaches can be computationally expensive
  • +
  • Log-likelihood
  • +
  • Cross-validation
  • +
  • Computationally expensive
  • +
  • Various steps in cross-validation
  • +
  • How to set up the cross-validation for Ridge and/or Lasso
  • +
  • Predicted Residual Error Sum of Squares
  • +
  • Bootstrap
  • @@ -277,7 +305,7 @@ $$
  • 44
  • 45
  • ...
  • -
  • 46
  • +
  • 54
  • »
  • diff --git a/doc/pub/Regression/html/._Regression-bs036.html b/doc/pub/Regression/html/._Regression-bs036.html index a2a01b043..b1e3b9849 100644 --- a/doc/pub/Regression/html/._Regression-bs036.html +++ b/doc/pub/Regression/html/._Regression-bs036.html @@ -110,31 +110,51 @@ Automatically generated HTML file from DocOnce source '___sec32'), ('Expectation value and variance', 2, None, '___sec33'), ('The singular value decompostion', 2, None, '___sec34'), - ('Code examples for Ridge and Lasso Regression', - 2, - None, - '___sec35'), ('From standard regression to Ridge regressions', 2, None, - '___sec36'), - ('Fixing the singularity', 2, None, '___sec37'), - ('A second-order polynomial with Ridge and Lasso', - 2, - None, - '___sec38'), + '___sec35'), + ('Fixing the singularity', 2, None, '___sec36'), ('Fitting vs. predicting when data is in the model class', 2, None, - '___sec39'), + '___sec37'), ('Fitting versus predicting when data is not in the model class', 2, None, - '___sec40'), - ('The code', 2, None, '___sec41'), - ('Generating test data', 2, None, '___sec42'), - ('Lasso regression', 2, None, '___sec43'), - ('Logistic regression', 2, None, '___sec44')]} + '___sec38'), + ('An example code without the model assessment part', + 2, + None, + '___sec39'), + ('Generating test data', 2, None, '___sec40'), + ('How can we effectively evaluate the various models?', + 2, + None, + '___sec41'), + ('Code examples for Ridge and Lasso Regression', + 2, + None, + '___sec42'), + ('A second-order polynomial with Ridge and Lasso', + 2, + None, + '___sec43'), + ('Resampling methods', 2, None, '___sec44'), + ('Resampling approaches can be computationally expensive', + 2, + None, + '___sec45'), + ('Log-likelihood', 2, None, '___sec46'), + ('Cross-validation', 2, None, '___sec47'), + ('Computationally expensive', 2, None, '___sec48'), + ('Various steps in cross-validation', 2, None, '___sec49'), + ('How to set up the cross-validation for Ridge and/or Lasso', + 2, + None, + '___sec50'), + ('Predicted Residual Error Sum of Squares', 2, None, '___sec51'), + ('Bootstrap', 2, None, '___sec52')]} end of tocinfo --> @@ -207,16 +227,24 @@ MathJax.Hub.Config({
  • Linking the regression analysis with a statistical interpretation
  • Expectation value and variance
  • The singular value decompostion
  • -
  • Code examples for Ridge and Lasso Regression
  • -
  • From standard regression to Ridge regressions
  • -
  • Fixing the singularity
  • -
  • A second-order polynomial with Ridge and Lasso
  • -
  • Fitting vs. predicting when data is in the model class
  • -
  • Fitting versus predicting when data is not in the model class
  • -
  • The code
  • -
  • Generating test data
  • -
  • Lasso regression
  • -
  • Logistic regression
  • +
  • From standard regression to Ridge regressions
  • +
  • Fixing the singularity
  • +
  • Fitting vs. predicting when data is in the model class
  • +
  • Fitting versus predicting when data is not in the model class
  • +
  • An example code without the model assessment part
  • +
  • Generating test data
  • +
  • How can we effectively evaluate the various models?
  • +
  • Code examples for Ridge and Lasso Regression
  • +
  • A second-order polynomial with Ridge and Lasso
  • +
  • Resampling methods
  • +
  • Resampling approaches can be computationally expensive
  • +
  • Log-likelihood
  • +
  • Cross-validation
  • +
  • Computationally expensive
  • +
  • Various steps in cross-validation
  • +
  • How to set up the cross-validation for Ridge and/or Lasso
  • +
  • Predicted Residual Error Sum of Squares
  • +
  • Bootstrap
  • @@ -232,84 +260,54 @@ MathJax.Hub.Config({ -

    Code examples for Ridge and Lasso Regression

    +

    From standard regression to Ridge regressions

    +One of the typical problems we encounter with linear regression, in particular +when the matrix \( \hat{X} \) (our so-called design matrix) is high-dimensional, +are problems with near singular or singular matrices. The column vectors of \( \hat{X} \) +may be linearly dependent, normally referred to as super-collinearity. +This means that the matrix may be rank deficient and it is basically impossible to +to model the data using linear regression. As an example, consider the matrix +$$ +\begin{align*} +\mathbf{X} & = \left[ +\begin{array}{rrr} +1 & -1 & 2 +\\ +1 & 0 & 1 +\\ +1 & 2 & -1 +\\ +1 & 1 & 0 +\end{array} \right] +\end{align*} +$$ - -

    import matplotlib.pyplot as plt
    -import numpy as np
    -from sklearn import linear_model
    -from sklearn.linear_model import LinearRegression
    -from sklearn.metrics import mean_squared_error, r2_score
    +

    +The columns of \( \hat{X} \) are linearly dependent. We se this easily since the +the first column is the row-wise sum of the other two columns. The rank (more correct, +the column rank) of a matrix is the dimension of the space spanned by the +column vectors. Hence, the rank of \( \mathbf{X} \) is equal to the number +of linearly independent columns. In this particular case the matrix has rank 2. -#creating data with random noise -x=np.arange(50) +

    +Super-collinearity of an \( (n \times p) \)-dimensional design matrix \( \mathbf{X} \) implies +that the inverse of the matrix \( \hat{X}^T\hat{x} \) (the matrix we needto invert to solve the linear regression equations) is non-invertible. If we have a square matrix that does not have an inverse, we say this matrix singular. The example here demonstrates this +$$ +\begin{align*} +\hat{X} & = \left[ +\begin{array}{rr} +1 & -1 +\\ +1 & -1 +\end{array} \right]. +\end{align*} +$$ -delta=np.random.uniform(-2.5,2.5, size=(50)) -np.random.shuffle(delta) -y =0.5*x+5+delta +We see easily that \( \mbox{det}(\hat{X}) = x_{11} x_{22} - x_{12} x_{21} = 1 \times (-1) - 1 \times (-1) = 0 \). Hence, \( \mathbf{X} \) is singular and its inverse is undefined. +This is equivalent to saying that the matrix \( \hat{X} \) has at least an eigenvalue which is zero. -#arranging data into 2x50 matrix -a=np.array(x) #inputs -b=np.array(y) #outputs - -#Split into training and test -X_train=a[:37, np.newaxis] -X_test=a[37:, np.newaxis] -y_train=b[:37] -y_test=b[37:] - -print ("X_train: ", X_train.shape) -print ("y_train: ", y_train.shape) -print ("X_test: ", X_test.shape) -print ("y_test: ", y_test.shape) - -print ("------------------------------------") - -print ("Ordinary Least Squares") -#Add Ordinary Least Squares fit -reg=LinearRegression() -reg.fit(X_train, y_train) -pred=reg.predict(X_test) -print ("Prediction Shape: ", pred.shape) - -print('Coefficients: \n', reg.coef_) -# The mean squared error -print("Mean squared error: %.2f" - % mean_squared_error(y_test, pred)) -# Explained variance score: 1 is perfect prediction -print('Variance score: %.2f' % r2_score(y_test, pred)) - -#plot -plt.scatter(X_test,y_test,color='green', label="Training Data") -plt.plot(X_test, pred, color='black', label="Fit Line") -plt.legend() -plt.show() - -print ("------------------------------------") - -print ("Ridge Regression") - -ridge=linear_model.RidgeCV(alphas=[0.1,1.0,10.0]) -ridge.fit(X_train,y_train) -print ("Ridge Coefficient: ",ridge.coef_) -print ("Ridge Intercept: ", ridge.intercept_) -#Look into graphing with Ridge fit - -print ("------------------------------------") - -print ("Lasso") -lasso=linear_model.Lasso(alpha=0.1) -lasso.fit(X_train,y_train) -predl=lasso.predict(X_test) -print("Lasso Coefficient: ", lasso.coef_) -print("Lasso Intercept: ", lasso.intercept_) -plt.scatter(X_test,y_test,color='green', label="Training Data") -plt.plot(X_test, predl, color='blue', label="Lasso") -plt.legend() -plt.show() -

    @@ -335,6 +333,8 @@ plt.show()

  • 44
  • 45
  • 46
  • +
  • ...
  • +
  • 54
  • »
  • diff --git a/doc/pub/Regression/html/._Regression-bs037.html b/doc/pub/Regression/html/._Regression-bs037.html index d7790e7d6..a01473605 100644 --- a/doc/pub/Regression/html/._Regression-bs037.html +++ b/doc/pub/Regression/html/._Regression-bs037.html @@ -110,31 +110,51 @@ Automatically generated HTML file from DocOnce source '___sec32'), ('Expectation value and variance', 2, None, '___sec33'), ('The singular value decompostion', 2, None, '___sec34'), - ('Code examples for Ridge and Lasso Regression', - 2, - None, - '___sec35'), ('From standard regression to Ridge regressions', 2, None, - '___sec36'), - ('Fixing the singularity', 2, None, '___sec37'), - ('A second-order polynomial with Ridge and Lasso', - 2, - None, - '___sec38'), + '___sec35'), + ('Fixing the singularity', 2, None, '___sec36'), ('Fitting vs. predicting when data is in the model class', 2, None, - '___sec39'), + '___sec37'), ('Fitting versus predicting when data is not in the model class', 2, None, - '___sec40'), - ('The code', 2, None, '___sec41'), - ('Generating test data', 2, None, '___sec42'), - ('Lasso regression', 2, None, '___sec43'), - ('Logistic regression', 2, None, '___sec44')]} + '___sec38'), + ('An example code without the model assessment part', + 2, + None, + '___sec39'), + ('Generating test data', 2, None, '___sec40'), + ('How can we effectively evaluate the various models?', + 2, + None, + '___sec41'), + ('Code examples for Ridge and Lasso Regression', + 2, + None, + '___sec42'), + ('A second-order polynomial with Ridge and Lasso', + 2, + None, + '___sec43'), + ('Resampling methods', 2, None, '___sec44'), + ('Resampling approaches can be computationally expensive', + 2, + None, + '___sec45'), + ('Log-likelihood', 2, None, '___sec46'), + ('Cross-validation', 2, None, '___sec47'), + ('Computationally expensive', 2, None, '___sec48'), + ('Various steps in cross-validation', 2, None, '___sec49'), + ('How to set up the cross-validation for Ridge and/or Lasso', + 2, + None, + '___sec50'), + ('Predicted Residual Error Sum of Squares', 2, None, '___sec51'), + ('Bootstrap', 2, None, '___sec52')]} end of tocinfo --> @@ -207,16 +227,24 @@ MathJax.Hub.Config({
  • Linking the regression analysis with a statistical interpretation
  • Expectation value and variance
  • The singular value decompostion
  • -
  • Code examples for Ridge and Lasso Regression
  • -
  • From standard regression to Ridge regressions
  • -
  • Fixing the singularity
  • -
  • A second-order polynomial with Ridge and Lasso
  • -
  • Fitting vs. predicting when data is in the model class
  • -
  • Fitting versus predicting when data is not in the model class
  • -
  • The code
  • -
  • Generating test data
  • -
  • Lasso regression
  • -
  • Logistic regression
  • +
  • From standard regression to Ridge regressions
  • +
  • Fixing the singularity
  • +
  • Fitting vs. predicting when data is in the model class
  • +
  • Fitting versus predicting when data is not in the model class
  • +
  • An example code without the model assessment part
  • +
  • Generating test data
  • +
  • How can we effectively evaluate the various models?
  • +
  • Code examples for Ridge and Lasso Regression
  • +
  • A second-order polynomial with Ridge and Lasso
  • +
  • Resampling methods
  • +
  • Resampling approaches can be computationally expensive
  • +
  • Log-likelihood
  • +
  • Cross-validation
  • +
  • Computationally expensive
  • +
  • Various steps in cross-validation
  • +
  • How to set up the cross-validation for Ridge and/or Lasso
  • +
  • Predicted Residual Error Sum of Squares
  • +
  • Bootstrap
  • @@ -232,53 +260,30 @@ MathJax.Hub.Config({ -

    From standard regression to Ridge regressions

    +

    Fixing the singularity

    -One of the typical problems we encounter with linear regression, in particular -when the matrix \( \hat{X} \) (our so-called design matrix) is high-dimensional, -are problems with near singular or singular matrices. The column vectors of \( \hat{X} \) -may be linearly dependent, normally referred to as super-collinearity. -This means that the matrix may be rank deficient and it is basically impossible to -to model the data using linear regression. As an example, consider the matrix +If our design matrix \( \hat{X} \) which enters the linear regression problem $$ -\begin{align*} -\mathbf{X} & = \left[ -\begin{array}{rrr} -1 & -1 & 2 -\\ -1 & 0 & 1 -\\ -1 & 2 & -1 -\\ -1 & 1 & 0 -\end{array} \right] -\end{align*} +\begin{align} +\hat{\beta} & = (\hat{X}^{T} \hat{X})^{-1} \hat{X}^{T} \hat{y}, +\tag{1} +\end{align} $$ +has linearly dependent column vectors, we will not be able to compute the inverse +of \( \hat{X}^T\hat{X} \) and we cannot find the parameters (estimators) \( \beta_i \). +The estimators are only well-defined if \( (\hat{X}^{T}\hat{X})^{-1} \) exits. +This is more likely to happen when the matrix \( \hat{X} \) is high-dimensional. In this case it is likely to encounter a situation where +the regression parameters \( \beta_i \) cannot be estimated. +

    -The columns of \( \hat{X} \) are linearly dependent. We se this easily since the -the first column is the row-wise sum of the other two columns. The rank (more correct, -the column rank) of a matrix is the dimension of the space spanned by the -column vectors. Hence, the rank of \( \mathbf{X} \) is equal to the number -of linearly independent columns. In this particular case the matrix has rank 2. - -

    -Super-collinearity of an \( (n \times p) \)-dimensional design matrix \( \mathbf{X} \) implies -that the inverse of the matrix \( \hat{X}^T\hat{x} \) (the matrix we needto invert to solve the linear regression equations) is non-invertible. If we have a square matrix that does not have an inverse, we say this matrix singular. The example here demonstrates this +The ad hoc approach which was introduced in the 70s was simply to add a diagonal component to the matrix to invert, that is we change $$ -\begin{align*} -\hat{X} & = \left[ -\begin{array}{rr} -1 & -1 -\\ -1 & -1 -\end{array} \right]. -\end{align*} +\hat{X}^{T} \hat{X} \rightarrow \hat{X}^{T} \hat{X}+\lambda \hat{I}, $$ -We see easily that \( \mbox{det}(\hat{X}) = x_{11} x_{22} - x_{12} x_{21} = 1 \times (-1) - 1 \times (-1) = 0 \). Hence, \( \mathbf{X} \) is singular and its inverse is undefined. -This is equivalent to saying that the matrix \( \hat{X} \) has at least an eigenvalue which is zero. +where \( \hat{I} \) is the identity matrix.

    @@ -304,6 +309,9 @@ This is equivalent to saying that the matrix \( \hat{X} \) has at least an eigen

  • 44
  • 45
  • 46
  • +
  • 47
  • +
  • ...
  • +
  • 54
  • »
  • diff --git a/doc/pub/Regression/html/._Regression-bs038.html b/doc/pub/Regression/html/._Regression-bs038.html index cca079168..1d99dea3a 100644 --- a/doc/pub/Regression/html/._Regression-bs038.html +++ b/doc/pub/Regression/html/._Regression-bs038.html @@ -110,31 +110,51 @@ Automatically generated HTML file from DocOnce source '___sec32'), ('Expectation value and variance', 2, None, '___sec33'), ('The singular value decompostion', 2, None, '___sec34'), - ('Code examples for Ridge and Lasso Regression', - 2, - None, - '___sec35'), ('From standard regression to Ridge regressions', 2, None, - '___sec36'), - ('Fixing the singularity', 2, None, '___sec37'), - ('A second-order polynomial with Ridge and Lasso', - 2, - None, - '___sec38'), + '___sec35'), + ('Fixing the singularity', 2, None, '___sec36'), ('Fitting vs. predicting when data is in the model class', 2, None, - '___sec39'), + '___sec37'), ('Fitting versus predicting when data is not in the model class', 2, None, - '___sec40'), - ('The code', 2, None, '___sec41'), - ('Generating test data', 2, None, '___sec42'), - ('Lasso regression', 2, None, '___sec43'), - ('Logistic regression', 2, None, '___sec44')]} + '___sec38'), + ('An example code without the model assessment part', + 2, + None, + '___sec39'), + ('Generating test data', 2, None, '___sec40'), + ('How can we effectively evaluate the various models?', + 2, + None, + '___sec41'), + ('Code examples for Ridge and Lasso Regression', + 2, + None, + '___sec42'), + ('A second-order polynomial with Ridge and Lasso', + 2, + None, + '___sec43'), + ('Resampling methods', 2, None, '___sec44'), + ('Resampling approaches can be computationally expensive', + 2, + None, + '___sec45'), + ('Log-likelihood', 2, None, '___sec46'), + ('Cross-validation', 2, None, '___sec47'), + ('Computationally expensive', 2, None, '___sec48'), + ('Various steps in cross-validation', 2, None, '___sec49'), + ('How to set up the cross-validation for Ridge and/or Lasso', + 2, + None, + '___sec50'), + ('Predicted Residual Error Sum of Squares', 2, None, '___sec51'), + ('Bootstrap', 2, None, '___sec52')]} end of tocinfo --> @@ -207,16 +227,24 @@ MathJax.Hub.Config({
  • Linking the regression analysis with a statistical interpretation
  • Expectation value and variance
  • The singular value decompostion
  • -
  • Code examples for Ridge and Lasso Regression
  • -
  • From standard regression to Ridge regressions
  • -
  • Fixing the singularity
  • -
  • A second-order polynomial with Ridge and Lasso
  • -
  • Fitting vs. predicting when data is in the model class
  • -
  • Fitting versus predicting when data is not in the model class
  • -
  • The code
  • -
  • Generating test data
  • -
  • Lasso regression
  • -
  • Logistic regression
  • +
  • From standard regression to Ridge regressions
  • +
  • Fixing the singularity
  • +
  • Fitting vs. predicting when data is in the model class
  • +
  • Fitting versus predicting when data is not in the model class
  • +
  • An example code without the model assessment part
  • +
  • Generating test data
  • +
  • How can we effectively evaluate the various models?
  • +
  • Code examples for Ridge and Lasso Regression
  • +
  • A second-order polynomial with Ridge and Lasso
  • +
  • Resampling methods
  • +
  • Resampling approaches can be computationally expensive
  • +
  • Log-likelihood
  • +
  • Cross-validation
  • +
  • Computationally expensive
  • +
  • Various steps in cross-validation
  • +
  • How to set up the cross-validation for Ridge and/or Lasso
  • +
  • Predicted Residual Error Sum of Squares
  • +
  • Bootstrap
  • @@ -232,30 +260,29 @@ MathJax.Hub.Config({ -

    Fixing the singularity

    +

    Fitting vs. predicting when data is in the model class

    -If our design matrix \( \hat{X} \) which enters the linear regression problem -$$ -\begin{align} -\hat{\beta} & = (\hat{X}^{T} \hat{X})^{-1} \hat{X}^{T} \hat{y}, -\tag{1} -\end{align} -$$ - -has linearly dependent column vectors, we will not be able to compute the inverse -of \( \hat{X}^T\hat{X} \) and we cannot find the parameters (estimators) \( \beta_i \). -The estimators are only well-defined if \( (\hat{X}^{T}\hat{X})^{-1} \) exits. -This is more likely to happen when the matrix \( \hat{X} \) is high-dimensional. In this case it is likely to encounter a situation where -the regression parameters \( \beta_i \) cannot be estimated. +We start by considering the case +\( f(x)=2x \).

    -The ad hoc approach which was introduced in the 70s was simply to add a diagonal component to the matrix to invert, that is we change -$$ -\hat{X}^{T} \hat{X} \rightarrow \hat{X}^{T} \hat{X}+\lambda \hat{I}, -$$ +Then the data is clearly generated by a model that is contained within +all three model classes we are using to make predictions (linear +models, third order polynomials, and tenth order polynomials). -where \( \hat{I} \) is the identity matrix. +

    +Run the code for the following cases: + +

      +
    1. For \( f(x)=2x \) , \( Ntrain=10 \) and \( \sigma =0 \) (noiseless case), train the three classes of models (linear, third-order polynomial, and tenth order polynomial) for a training set when \( x \in [0,1] \) . Make graphs comparing fits for different order of polynomials. Which model fits the data the best?
    2. +
    3. Do you think that the data that has the least error on the training set will also make the best predictions? Why or why not? Can you try to discuss and formalize your intuition? What can go right and what can go wrong?
    4. +
    5. Check your answer by seeing how well your fits predict newly generated test data (including on data outside the range you fit on, for example \( x \in [0,1.2] \) ) using the code below. How well do you do on points in the range of x where you trained the model? How about points outside the original training data set?
    6. +
    7. Repeat the above for \( f(x)=2x \) , \( Ntrain=10 \) , and \( \sigma=1 \) . What changes?
    8. +
    + +Repeat the exercises above for \( f(x)=2x \) , \( Ntrain=100 \) , and \( \sigma=1 \) . What changes? +Summarize what you have learned about the relationship between model complexity (number of parameters), goodness of fit on training data, and the ability to predict well.

    @@ -280,6 +307,10 @@ where \( \hat{I} \) is the identity matrix.

  • 44
  • 45
  • 46
  • +
  • 47
  • +
  • 48
  • +
  • ...
  • +
  • 54
  • »
  • diff --git a/doc/pub/Regression/html/._Regression-bs039.html b/doc/pub/Regression/html/._Regression-bs039.html index aa8c96dc3..82cb86d33 100644 --- a/doc/pub/Regression/html/._Regression-bs039.html +++ b/doc/pub/Regression/html/._Regression-bs039.html @@ -110,31 +110,51 @@ Automatically generated HTML file from DocOnce source '___sec32'), ('Expectation value and variance', 2, None, '___sec33'), ('The singular value decompostion', 2, None, '___sec34'), - ('Code examples for Ridge and Lasso Regression', - 2, - None, - '___sec35'), ('From standard regression to Ridge regressions', 2, None, - '___sec36'), - ('Fixing the singularity', 2, None, '___sec37'), - ('A second-order polynomial with Ridge and Lasso', - 2, - None, - '___sec38'), + '___sec35'), + ('Fixing the singularity', 2, None, '___sec36'), ('Fitting vs. predicting when data is in the model class', 2, None, - '___sec39'), + '___sec37'), ('Fitting versus predicting when data is not in the model class', 2, None, - '___sec40'), - ('The code', 2, None, '___sec41'), - ('Generating test data', 2, None, '___sec42'), - ('Lasso regression', 2, None, '___sec43'), - ('Logistic regression', 2, None, '___sec44')]} + '___sec38'), + ('An example code without the model assessment part', + 2, + None, + '___sec39'), + ('Generating test data', 2, None, '___sec40'), + ('How can we effectively evaluate the various models?', + 2, + None, + '___sec41'), + ('Code examples for Ridge and Lasso Regression', + 2, + None, + '___sec42'), + ('A second-order polynomial with Ridge and Lasso', + 2, + None, + '___sec43'), + ('Resampling methods', 2, None, '___sec44'), + ('Resampling approaches can be computationally expensive', + 2, + None, + '___sec45'), + ('Log-likelihood', 2, None, '___sec46'), + ('Cross-validation', 2, None, '___sec47'), + ('Computationally expensive', 2, None, '___sec48'), + ('Various steps in cross-validation', 2, None, '___sec49'), + ('How to set up the cross-validation for Ridge and/or Lasso', + 2, + None, + '___sec50'), + ('Predicted Residual Error Sum of Squares', 2, None, '___sec51'), + ('Bootstrap', 2, None, '___sec52')]} end of tocinfo --> @@ -207,16 +227,24 @@ MathJax.Hub.Config({
  • Linking the regression analysis with a statistical interpretation
  • Expectation value and variance
  • The singular value decompostion
  • -
  • Code examples for Ridge and Lasso Regression
  • -
  • From standard regression to Ridge regressions
  • -
  • Fixing the singularity
  • -
  • A second-order polynomial with Ridge and Lasso
  • -
  • Fitting vs. predicting when data is in the model class
  • -
  • Fitting versus predicting when data is not in the model class
  • -
  • The code
  • -
  • Generating test data
  • -
  • Lasso regression
  • -
  • Logistic regression
  • +
  • From standard regression to Ridge regressions
  • +
  • Fixing the singularity
  • +
  • Fitting vs. predicting when data is in the model class
  • +
  • Fitting versus predicting when data is not in the model class
  • +
  • An example code without the model assessment part
  • +
  • Generating test data
  • +
  • How can we effectively evaluate the various models?
  • +
  • Code examples for Ridge and Lasso Regression
  • +
  • A second-order polynomial with Ridge and Lasso
  • +
  • Resampling methods
  • +
  • Resampling approaches can be computationally expensive
  • +
  • Log-likelihood
  • +
  • Cross-validation
  • +
  • Computationally expensive
  • +
  • Various steps in cross-validation
  • +
  • How to set up the cross-validation for Ridge and/or Lasso
  • +
  • Predicted Residual Error Sum of Squares
  • +
  • Bootstrap
  • @@ -232,117 +260,18 @@ MathJax.Hub.Config({ -

    A second-order polynomial with Ridge and Lasso

    +

    Fitting versus predicting when data is not in the model class

    +

    +Thus far, we have considered the case where the data is generated using a model contained in the model class. Now consider \( f(x)=2x-10x^5+15x^{10} \) . Notice that the for linear and third-order polynomial the true model \( f(x) \) is not contained in model class. - -

    import numpy as np
    -import matplotlib.pyplot as plt
    -from sklearn.linear_model import Ridge
    -from sklearn.metrics import r2_score
    +
      +
    1. Do better fits lead to better predictions?
    2. +
    3. What is the relationship between the true model for generating the data and the model class that has the most predictive power? How is this related to the model complexity? How does this depend on the number of data points \( Ntrain \) and \( \sigma \)?
    4. +
    -np.random.seed(4155) +Summarize what you think you learned about the relationship of knowing the true model class and predictive power. -n_samples = 100 - -x = np.random.rand(n_samples,1) -y = 5*x*x + 0.1*np.random.rand(n_samples,1) - -# Centering x and y. -x_ = x - np.mean(x) -y_ = y - np.mean(y) # beta_0 = mean(y) - -X = np.c_[np.ones((n_samples,1)), x, x**2] -X_ = np.c_[x_, x_**2] - - -### 1. -lmb_values = [1e-4, 1e-3, 1e-2, 10, 1e2, 1e4] -num_values = len(lmb_values) - -## Ridge-regression of centered and not centered data -beta_ridge = np.zeros((3,num_values)) -beta_ridge_centered = np.zeros((3,num_values)) - -I3 = np.eye(3) -I2 = np.eye(2) - -for i,lmb in enumerate(lmb_values): - beta_ridge[:,i] = (np.linalg.inv( X.T @ X + lmb*I3) @ X.T @ y).flatten() - beta_ridge_centered[1:,i] = (np.linalg.inv( X_.T @ X_ + lmb*I2) @ X_.T @ y_).flatten() - -# sett beta_0 = np.mean(y) -beta_ridge_centered[0,:] = np.mean(y) - -## OLS (ordinary least squares) solution -beta_ls = np.linalg.inv( X.T @ X ) @ X.T @ y - -## Evaluate the models -pred_ls = X @ beta_ls -pred_ridge = X @ beta_ridge -pred_ridge_centered = X_ @ beta_ridge_centered[1:] + beta_ridge_centered[0,:] - -## Plot the results - -# Sorting -sort_ind = np.argsort(x[:,0]) - -x_plot = x[sort_ind,0] -x_centered_plot = x_[sort_ind,0] - -pred_ls_plot = pred_ls[sort_ind,0] -pred_ridge_plot = pred_ridge[sort_ind,:] -pred_ridge_centered_plot = pred_ridge_centered[sort_ind,:] - -# Plott not centered -plt.plot(x_plot,pred_ls_plot,label='ls') - -for i in range(num_values): - plt.plot(x_plot,pred_ridge_plot[:,i],label='ridge, lmb=%g'%lmb_values[i]) - -plt.plot(x,y,'ro') - -plt.title('linear regression on un-centered data') -plt.legend() - -# Plott centered -plt.figure() - -for i in range(num_values): - plt.plot(x_centered_plot,pred_ridge_centered_plot[:,i],label='ridge, lmb=%g'%lmb_values[i]) - -plt.plot(x_,y,'ro') - -plt.title('linear regression on centered data') -plt.legend() - - -# 2. - -pred_ridge_scikit = np.zeros((n_samples,num_values)) -for i,lmb in enumerate(lmb_values): - pred_ridge_scikit[:,i] = (Ridge(alpha=lmb,fit_intercept=False).fit(X,y).predict(X)).flatten() # fit_intercept=False fordi bias er allerede i X - -plt.figure() - -plt.plot(x_plot,pred_ls_plot,label='ls') - -for i in range(num_values): - plt.plot(x_plot,pred_ridge_scikit[sort_ind,i],label='scikit-ridge, lmb=%g'%lmb_values[i]) - -plt.plot(x,y,'ro') -plt.legend() -plt.title('linear regression using scikit') - -plt.show() - -### R2-score of the results -for i in range(num_values): - print('lambda = %g'%lmb_values[i]) - print('r2 for scikit: %g'%r2_score(y,pred_ridge_scikit[:,i])) - print('r2 for own code, not centered: %g'%r2_score(y,pred_ridge[:,i])) - print('r2 for own, centered: %g\n'%r2_score(y,pred_ridge_centered[:,i])) -

    @@ -365,6 +294,11 @@ plt.show()

  • 44
  • 45
  • 46
  • +
  • 47
  • +
  • 48
  • +
  • 49
  • +
  • ...
  • +
  • 54
  • »
  • diff --git a/doc/pub/Regression/html/._Regression-bs040.html b/doc/pub/Regression/html/._Regression-bs040.html index e62c176d7..d42992185 100644 --- a/doc/pub/Regression/html/._Regression-bs040.html +++ b/doc/pub/Regression/html/._Regression-bs040.html @@ -110,31 +110,51 @@ Automatically generated HTML file from DocOnce source '___sec32'), ('Expectation value and variance', 2, None, '___sec33'), ('The singular value decompostion', 2, None, '___sec34'), - ('Code examples for Ridge and Lasso Regression', - 2, - None, - '___sec35'), ('From standard regression to Ridge regressions', 2, None, - '___sec36'), - ('Fixing the singularity', 2, None, '___sec37'), - ('A second-order polynomial with Ridge and Lasso', - 2, - None, - '___sec38'), + '___sec35'), + ('Fixing the singularity', 2, None, '___sec36'), ('Fitting vs. predicting when data is in the model class', 2, None, - '___sec39'), + '___sec37'), ('Fitting versus predicting when data is not in the model class', 2, None, - '___sec40'), - ('The code', 2, None, '___sec41'), - ('Generating test data', 2, None, '___sec42'), - ('Lasso regression', 2, None, '___sec43'), - ('Logistic regression', 2, None, '___sec44')]} + '___sec38'), + ('An example code without the model assessment part', + 2, + None, + '___sec39'), + ('Generating test data', 2, None, '___sec40'), + ('How can we effectively evaluate the various models?', + 2, + None, + '___sec41'), + ('Code examples for Ridge and Lasso Regression', + 2, + None, + '___sec42'), + ('A second-order polynomial with Ridge and Lasso', + 2, + None, + '___sec43'), + ('Resampling methods', 2, None, '___sec44'), + ('Resampling approaches can be computationally expensive', + 2, + None, + '___sec45'), + ('Log-likelihood', 2, None, '___sec46'), + ('Cross-validation', 2, None, '___sec47'), + ('Computationally expensive', 2, None, '___sec48'), + ('Various steps in cross-validation', 2, None, '___sec49'), + ('How to set up the cross-validation for Ridge and/or Lasso', + 2, + None, + '___sec50'), + ('Predicted Residual Error Sum of Squares', 2, None, '___sec51'), + ('Bootstrap', 2, None, '___sec52')]} end of tocinfo --> @@ -207,16 +227,24 @@ MathJax.Hub.Config({
  • Linking the regression analysis with a statistical interpretation
  • Expectation value and variance
  • The singular value decompostion
  • -
  • Code examples for Ridge and Lasso Regression
  • -
  • From standard regression to Ridge regressions
  • -
  • Fixing the singularity
  • -
  • A second-order polynomial with Ridge and Lasso
  • -
  • Fitting vs. predicting when data is in the model class
  • -
  • Fitting versus predicting when data is not in the model class
  • -
  • The code
  • -
  • Generating test data
  • -
  • Lasso regression
  • -
  • Logistic regression
  • +
  • From standard regression to Ridge regressions
  • +
  • Fixing the singularity
  • +
  • Fitting vs. predicting when data is in the model class
  • +
  • Fitting versus predicting when data is not in the model class
  • +
  • An example code without the model assessment part
  • +
  • Generating test data
  • +
  • How can we effectively evaluate the various models?
  • +
  • Code examples for Ridge and Lasso Regression
  • +
  • A second-order polynomial with Ridge and Lasso
  • +
  • Resampling methods
  • +
  • Resampling approaches can be computationally expensive
  • +
  • Log-likelihood
  • +
  • Cross-validation
  • +
  • Computationally expensive
  • +
  • Various steps in cross-validation
  • +
  • How to set up the cross-validation for Ridge and/or Lasso
  • +
  • Predicted Residual Error Sum of Squares
  • +
  • Bootstrap
  • @@ -232,30 +260,93 @@ MathJax.Hub.Config({ -

    Fitting vs. predicting when data is in the model class

    +

    An example code without the model assessment part

    -We start by considering the case -\( f(x)=2x \). -

    -Then the data is clearly generated by a model that is contained within -all three model classes we are using to make predictions (linear -models, third order polynomials, and tenth order polynomials). + +

    import numpy as np
    +import sklearn as sk
    +from sklearn import datasets, linear_model
    +from sklearn.preprocessing import PolynomialFeatures
     
    -

    -Run the code for the following cases: +import matplotlib as mpl +from matplotlib import pyplot as plt -

      -
    1. For \( f(x)=2x \) , \( Ntrain=10 \) and \( \sigma =0 \) (noiseless case), train the three classes of models (linear, third-order polynomial, and tenth order polynomial) for a training set when \( x \in [0,1] \) . Make graphs comparing fits for different order of polynomials. Which model fits the data the best?
    2. -
    3. Do you think that the data that has the least error on the training set will also make the best predictions? Why or why not? Can you try to discuss and formalize your intuition? What can go right and what can go wrong?
    4. -
    5. Check your answer by seeing how well your fits predict newly generated test data (including on data outside the range you fit on, for example \( x \in [0,1.2] \) ) using the code below. How well do you do on points in the range of x where you trained the model? How about points outside the original training data set?
    6. -
    7. Repeat the above for \( f(x)=2x \) , \( Ntrain=10 \) , and \( \sigma=1 \) . What changes?
    8. -
    +%matplotlib notebook -Repeat the exercises above for \( f(x)=2x \) , \( Ntrain=100 \) , and \( \sigma=1 \) . What changes? -Summarize what you have learned about the relationship between model complexity (number of parameters), goodness of fit on training data, and the ability to predict well. +# The Training Data +N_train=100 + +sigma_train=1; + +# Train on integers +x=np.linspace(0.05,0.95,N_train) +# Draw random noise +s = sigma_train*np.random.randn(N_train) + +#linear +y=2*x+s + +#Tenth Order +#y=2*x-10*x**5+15*x**10+s + +p1=plt.plot(x,y, "o",ms=15, label='Training') + +#Linear Regression +# Create linear regression object +clf = linear_model.LinearRegression() + +# Train the model using the training sets +clf.fit(x[:, np.newaxis], y) +# The coefficients + +xplot=np.linspace(0.02,0.98,200) +linear_plot=plt.plot(xplot, clf.predict(xplot[:, np.newaxis]),label='Linear') + +#Polynomial Regression + + +poly3 = PolynomialFeatures(degree=3) +X = poly3.fit_transform(x[:,np.newaxis]) +clf3 = linear_model.LinearRegression() +clf3.fit(X,y) + + +Xplot=poly3.fit_transform(xplot[:,np.newaxis]) +poly3_plot=plt.plot(xplot, clf3.predict(Xplot), label='Poly 3') + + + +#poly5 = PolynomialFeatures(degree=5) +#X = poly5.fit_transform(x[:,np.newaxis]) +#clf5 = linear_model.LinearRegression() +#clf5.fit(X,y) + +#Xplot=poly5.fit_transform(xplot[:,np.newaxis]) +#plt.plot(xplot, clf5.predict(Xplot), 'r--',linewidth=1) + +poly10 = PolynomialFeatures(degree=10) +X = poly10.fit_transform(x[:,np.newaxis]) +clf10 = linear_model.LinearRegression() +clf10.fit(X,y) + +Xplot=poly10.fit_transform(xplot[:,np.newaxis]) +poly10_plot=plt.plot(xplot, clf10.predict(Xplot), label='Poly 10') + +axes = plt.gca() +axes.set_ylim([-7,7]) + +handles, labels=axes.get_legend_handles_labels() +plt.legend(handles,labels, loc='lower center') +plt.xlabel("$x$") +plt.ylabel("$y$") +Title="$N=$"+str(N_train)+", $\sigma=$"+str(sigma_train) +plt.title(Title+" (train)") +plt.tight_layout() +plt.show() +

    @@ -277,6 +368,12 @@ Summarize what you have learned about the relationship between model complexity

  • 44
  • 45
  • 46
  • +
  • 47
  • +
  • 48
  • +
  • 49
  • +
  • 50
  • +
  • ...
  • +
  • 54
  • »
  • diff --git a/doc/pub/Regression/html/._Regression-bs041.html b/doc/pub/Regression/html/._Regression-bs041.html index 0449005ac..1c8a8d8a9 100644 --- a/doc/pub/Regression/html/._Regression-bs041.html +++ b/doc/pub/Regression/html/._Regression-bs041.html @@ -110,31 +110,51 @@ Automatically generated HTML file from DocOnce source '___sec32'), ('Expectation value and variance', 2, None, '___sec33'), ('The singular value decompostion', 2, None, '___sec34'), - ('Code examples for Ridge and Lasso Regression', - 2, - None, - '___sec35'), ('From standard regression to Ridge regressions', 2, None, - '___sec36'), - ('Fixing the singularity', 2, None, '___sec37'), - ('A second-order polynomial with Ridge and Lasso', - 2, - None, - '___sec38'), + '___sec35'), + ('Fixing the singularity', 2, None, '___sec36'), ('Fitting vs. predicting when data is in the model class', 2, None, - '___sec39'), + '___sec37'), ('Fitting versus predicting when data is not in the model class', 2, None, - '___sec40'), - ('The code', 2, None, '___sec41'), - ('Generating test data', 2, None, '___sec42'), - ('Lasso regression', 2, None, '___sec43'), - ('Logistic regression', 2, None, '___sec44')]} + '___sec38'), + ('An example code without the model assessment part', + 2, + None, + '___sec39'), + ('Generating test data', 2, None, '___sec40'), + ('How can we effectively evaluate the various models?', + 2, + None, + '___sec41'), + ('Code examples for Ridge and Lasso Regression', + 2, + None, + '___sec42'), + ('A second-order polynomial with Ridge and Lasso', + 2, + None, + '___sec43'), + ('Resampling methods', 2, None, '___sec44'), + ('Resampling approaches can be computationally expensive', + 2, + None, + '___sec45'), + ('Log-likelihood', 2, None, '___sec46'), + ('Cross-validation', 2, None, '___sec47'), + ('Computationally expensive', 2, None, '___sec48'), + ('Various steps in cross-validation', 2, None, '___sec49'), + ('How to set up the cross-validation for Ridge and/or Lasso', + 2, + None, + '___sec50'), + ('Predicted Residual Error Sum of Squares', 2, None, '___sec51'), + ('Bootstrap', 2, None, '___sec52')]} end of tocinfo --> @@ -207,16 +227,24 @@ MathJax.Hub.Config({
  • Linking the regression analysis with a statistical interpretation
  • Expectation value and variance
  • The singular value decompostion
  • -
  • Code examples for Ridge and Lasso Regression
  • -
  • From standard regression to Ridge regressions
  • -
  • Fixing the singularity
  • -
  • A second-order polynomial with Ridge and Lasso
  • -
  • Fitting vs. predicting when data is in the model class
  • -
  • Fitting versus predicting when data is not in the model class
  • -
  • The code
  • -
  • Generating test data
  • -
  • Lasso regression
  • -
  • Logistic regression
  • +
  • From standard regression to Ridge regressions
  • +
  • Fixing the singularity
  • +
  • Fitting vs. predicting when data is in the model class
  • +
  • Fitting versus predicting when data is not in the model class
  • +
  • An example code without the model assessment part
  • +
  • Generating test data
  • +
  • How can we effectively evaluate the various models?
  • +
  • Code examples for Ridge and Lasso Regression
  • +
  • A second-order polynomial with Ridge and Lasso
  • +
  • Resampling methods
  • +
  • Resampling approaches can be computationally expensive
  • +
  • Log-likelihood
  • +
  • Cross-validation
  • +
  • Computationally expensive
  • +
  • Various steps in cross-validation
  • +
  • How to set up the cross-validation for Ridge and/or Lasso
  • +
  • Predicted Residual Error Sum of Squares
  • +
  • Bootstrap
  • @@ -230,20 +258,51 @@ MathJax.Hub.Config({

     

     

     

    - - -

    Fitting versus predicting when data is not in the model class

    + +

    Generating test data

    -Thus far, we have considered the case where the data is generated using a model contained in the model class. Now consider \( f(x)=2x-10x^5+15x^{10} \) . Notice that the for linear and third-order polynomial the true model \( f(x) \) is not contained in model class. -

      -
    1. Do better fits lead to better predictions?
    2. -
    3. What is the relationship between the true model for generating the data and the model class that has the most predictive power? How is this related to the model complexity? How does this depend on the number of data points \( Ntrain \) and \( \sigma \)?
    4. -
    + +
    # Generate Test Data
     
    -Summarize what you think you learned about the relationship of knowing the true model class and predictive power.
    +#Number of test data
    +N_test=20
     
    +sigma_test=sigma_train
    +
    +max_x=1.2
    +x_test=max_x*np.random.random(N_test)
    +# Draw random noise
    +s_test = sigma_test*np.random.randn(N_test)
    +
    +#Linear
    +y_test=2*x_test+s_test
    +#Tenth order
    +#y_test=2*x_test-10*x_test**5+15*x_test**10+s_test
    +
    +#Make design matrices for prediction
    +x_plot=np.linspace(0,max_x, 200)
    +X3 = poly3.fit_transform(x_plot[:,np.newaxis])
    +X10 = poly10.fit_transform(x_plot[:,np.newaxis])
    +
    +%matplotlib notebook
    +
    +fig = plt.figure() 
    +p1=plt.plot(x_test,y_test.transpose(), 'o', ms=12, label='data')
    +p2=plt.plot(x_plot,clf.predict(x_plot[:,np.newaxis]), label='linear')
    +p3=plt.plot(x_plot,clf3.predict(X3), label='3rd order')
    +p10=plt.plot(x_plot,clf10.predict(X10), label='10th order')
    +
    +
    +plt.legend(loc=2)
    +plt.xlabel('$x$')
    +plt.ylabel('$y$')
    +plt.legend(loc='best')
    +plt.title(Title+" (pred.)")
    +plt.tight_layout()
    +plt.show()
    +

    @@ -264,6 +323,13 @@ Summarize what you think you learned about the relationship of knowing the true

  • 44
  • 45
  • 46
  • +
  • 47
  • +
  • 48
  • +
  • 49
  • +
  • 50
  • +
  • 51
  • +
  • ...
  • +
  • 54
  • »
  • diff --git a/doc/pub/Regression/html/._Regression-bs042.html b/doc/pub/Regression/html/._Regression-bs042.html index ff3f3130a..ae514c7af 100644 --- a/doc/pub/Regression/html/._Regression-bs042.html +++ b/doc/pub/Regression/html/._Regression-bs042.html @@ -110,31 +110,51 @@ Automatically generated HTML file from DocOnce source '___sec32'), ('Expectation value and variance', 2, None, '___sec33'), ('The singular value decompostion', 2, None, '___sec34'), - ('Code examples for Ridge and Lasso Regression', - 2, - None, - '___sec35'), ('From standard regression to Ridge regressions', 2, None, - '___sec36'), - ('Fixing the singularity', 2, None, '___sec37'), - ('A second-order polynomial with Ridge and Lasso', - 2, - None, - '___sec38'), + '___sec35'), + ('Fixing the singularity', 2, None, '___sec36'), ('Fitting vs. predicting when data is in the model class', 2, None, - '___sec39'), + '___sec37'), ('Fitting versus predicting when data is not in the model class', 2, None, - '___sec40'), - ('The code', 2, None, '___sec41'), - ('Generating test data', 2, None, '___sec42'), - ('Lasso regression', 2, None, '___sec43'), - ('Logistic regression', 2, None, '___sec44')]} + '___sec38'), + ('An example code without the model assessment part', + 2, + None, + '___sec39'), + ('Generating test data', 2, None, '___sec40'), + ('How can we effectively evaluate the various models?', + 2, + None, + '___sec41'), + ('Code examples for Ridge and Lasso Regression', + 2, + None, + '___sec42'), + ('A second-order polynomial with Ridge and Lasso', + 2, + None, + '___sec43'), + ('Resampling methods', 2, None, '___sec44'), + ('Resampling approaches can be computationally expensive', + 2, + None, + '___sec45'), + ('Log-likelihood', 2, None, '___sec46'), + ('Cross-validation', 2, None, '___sec47'), + ('Computationally expensive', 2, None, '___sec48'), + ('Various steps in cross-validation', 2, None, '___sec49'), + ('How to set up the cross-validation for Ridge and/or Lasso', + 2, + None, + '___sec50'), + ('Predicted Residual Error Sum of Squares', 2, None, '___sec51'), + ('Bootstrap', 2, None, '___sec52')]} end of tocinfo --> @@ -207,16 +227,24 @@ MathJax.Hub.Config({
  • Linking the regression analysis with a statistical interpretation
  • Expectation value and variance
  • The singular value decompostion
  • -
  • Code examples for Ridge and Lasso Regression
  • -
  • From standard regression to Ridge regressions
  • -
  • Fixing the singularity
  • -
  • A second-order polynomial with Ridge and Lasso
  • -
  • Fitting vs. predicting when data is in the model class
  • -
  • Fitting versus predicting when data is not in the model class
  • -
  • The code
  • -
  • Generating test data
  • -
  • Lasso regression
  • -
  • Logistic regression
  • +
  • From standard regression to Ridge regressions
  • +
  • Fixing the singularity
  • +
  • Fitting vs. predicting when data is in the model class
  • +
  • Fitting versus predicting when data is not in the model class
  • +
  • An example code without the model assessment part
  • +
  • Generating test data
  • +
  • How can we effectively evaluate the various models?
  • +
  • Code examples for Ridge and Lasso Regression
  • +
  • A second-order polynomial with Ridge and Lasso
  • +
  • Resampling methods
  • +
  • Resampling approaches can be computationally expensive
  • +
  • Log-likelihood
  • +
  • Cross-validation
  • +
  • Computationally expensive
  • +
  • Various steps in cross-validation
  • +
  • How to set up the cross-validation for Ridge and/or Lasso
  • +
  • Predicted Residual Error Sum of Squares
  • +
  • Bootstrap
  • @@ -232,93 +260,14 @@ MathJax.Hub.Config({ -

    The code

    +

    How can we effectively evaluate the various models?

    +In Ridge regression and the subsequent discussion of its properties +the bias or penalty parameter is considered known or `given'. In +practice, it is unknown and the user needs to make an informed +decision on its value. How do we do that? Much of the same considerations apply to the Lasso method. - -

    import numpy as np
    -import sklearn as sk
    -from sklearn import datasets, linear_model
    -from sklearn.preprocessing import PolynomialFeatures
    -
    -import matplotlib as mpl
    -from matplotlib import pyplot as plt
    -
    -%matplotlib notebook
    -
    -# The Training Data
    -
    -N_train=100
    -
    -sigma_train=1;
    -
    -# Train on integers
    -x=np.linspace(0.05,0.95,N_train)
    -# Draw random noise
    -s = sigma_train*np.random.randn(N_train)
    -
    -#linear
    -y=2*x+s
    -
    -#Tenth Order
    -#y=2*x-10*x**5+15*x**10+s
    -
    -p1=plt.plot(x,y, "o",ms=15, label='Training')
    -
    -#Linear Regression
    -# Create linear regression object
    -clf = linear_model.LinearRegression()
    -
    -# Train the model using the training sets
    -clf.fit(x[:, np.newaxis], y)
    -# The coefficients
    -
    -xplot=np.linspace(0.02,0.98,200)
    -linear_plot=plt.plot(xplot, clf.predict(xplot[:, np.newaxis]),label='Linear')
    -
    -#Polynomial Regression
    -
    -
    -poly3 = PolynomialFeatures(degree=3)
    -X = poly3.fit_transform(x[:,np.newaxis])
    -clf3 = linear_model.LinearRegression()
    -clf3.fit(X,y)
    -
    -
    -Xplot=poly3.fit_transform(xplot[:,np.newaxis])
    -poly3_plot=plt.plot(xplot, clf3.predict(Xplot), label='Poly 3')
    -
    -
    -
    -#poly5 = PolynomialFeatures(degree=5)
    -#X = poly5.fit_transform(x[:,np.newaxis])
    -#clf5 = linear_model.LinearRegression()
    -#clf5.fit(X,y)
    -
    -#Xplot=poly5.fit_transform(xplot[:,np.newaxis])
    -#plt.plot(xplot, clf5.predict(Xplot), 'r--',linewidth=1)
    -
    -poly10 = PolynomialFeatures(degree=10)
    -X = poly10.fit_transform(x[:,np.newaxis])
    -clf10 = linear_model.LinearRegression()
    -clf10.fit(X,y)
    -
    -Xplot=poly10.fit_transform(xplot[:,np.newaxis])
    -poly10_plot=plt.plot(xplot, clf10.predict(Xplot), label='Poly 10')
    -
    -axes = plt.gca()
    -axes.set_ylim([-7,7])
    -
    -handles, labels=axes.get_legend_handles_labels()
    -plt.legend(handles,labels, loc='lower center')
    -plt.xlabel("$x$")
    -plt.ylabel("$y$")
    -Title="$N=$"+str(N_train)+", $\sigma=$"+str(sigma_train)
    -plt.title(Title+" (train)")
    -plt.tight_layout()
    -plt.show()
    -

    @@ -338,6 +287,14 @@ plt.show()

  • 44
  • 45
  • 46
  • +
  • 47
  • +
  • 48
  • +
  • 49
  • +
  • 50
  • +
  • 51
  • +
  • 52
  • +
  • ...
  • +
  • 54
  • »
  • diff --git a/doc/pub/Regression/html/._Regression-bs043.html b/doc/pub/Regression/html/._Regression-bs043.html index b45774529..656700822 100644 --- a/doc/pub/Regression/html/._Regression-bs043.html +++ b/doc/pub/Regression/html/._Regression-bs043.html @@ -110,31 +110,51 @@ Automatically generated HTML file from DocOnce source '___sec32'), ('Expectation value and variance', 2, None, '___sec33'), ('The singular value decompostion', 2, None, '___sec34'), - ('Code examples for Ridge and Lasso Regression', - 2, - None, - '___sec35'), ('From standard regression to Ridge regressions', 2, None, - '___sec36'), - ('Fixing the singularity', 2, None, '___sec37'), - ('A second-order polynomial with Ridge and Lasso', - 2, - None, - '___sec38'), + '___sec35'), + ('Fixing the singularity', 2, None, '___sec36'), ('Fitting vs. predicting when data is in the model class', 2, None, - '___sec39'), + '___sec37'), ('Fitting versus predicting when data is not in the model class', 2, None, - '___sec40'), - ('The code', 2, None, '___sec41'), - ('Generating test data', 2, None, '___sec42'), - ('Lasso regression', 2, None, '___sec43'), - ('Logistic regression', 2, None, '___sec44')]} + '___sec38'), + ('An example code without the model assessment part', + 2, + None, + '___sec39'), + ('Generating test data', 2, None, '___sec40'), + ('How can we effectively evaluate the various models?', + 2, + None, + '___sec41'), + ('Code examples for Ridge and Lasso Regression', + 2, + None, + '___sec42'), + ('A second-order polynomial with Ridge and Lasso', + 2, + None, + '___sec43'), + ('Resampling methods', 2, None, '___sec44'), + ('Resampling approaches can be computationally expensive', + 2, + None, + '___sec45'), + ('Log-likelihood', 2, None, '___sec46'), + ('Cross-validation', 2, None, '___sec47'), + ('Computationally expensive', 2, None, '___sec48'), + ('Various steps in cross-validation', 2, None, '___sec49'), + ('How to set up the cross-validation for Ridge and/or Lasso', + 2, + None, + '___sec50'), + ('Predicted Residual Error Sum of Squares', 2, None, '___sec51'), + ('Bootstrap', 2, None, '___sec52')]} end of tocinfo --> @@ -207,16 +227,24 @@ MathJax.Hub.Config({
  • Linking the regression analysis with a statistical interpretation
  • Expectation value and variance
  • The singular value decompostion
  • -
  • Code examples for Ridge and Lasso Regression
  • -
  • From standard regression to Ridge regressions
  • -
  • Fixing the singularity
  • -
  • A second-order polynomial with Ridge and Lasso
  • -
  • Fitting vs. predicting when data is in the model class
  • -
  • Fitting versus predicting when data is not in the model class
  • -
  • The code
  • -
  • Generating test data
  • -
  • Lasso regression
  • -
  • Logistic regression
  • +
  • From standard regression to Ridge regressions
  • +
  • Fixing the singularity
  • +
  • Fitting vs. predicting when data is in the model class
  • +
  • Fitting versus predicting when data is not in the model class
  • +
  • An example code without the model assessment part
  • +
  • Generating test data
  • +
  • How can we effectively evaluate the various models?
  • +
  • Code examples for Ridge and Lasso Regression
  • +
  • A second-order polynomial with Ridge and Lasso
  • +
  • Resampling methods
  • +
  • Resampling approaches can be computationally expensive
  • +
  • Log-likelihood
  • +
  • Cross-validation
  • +
  • Computationally expensive
  • +
  • Various steps in cross-validation
  • +
  • How to set up the cross-validation for Ridge and/or Lasso
  • +
  • Predicted Residual Error Sum of Squares
  • +
  • Bootstrap
  • @@ -230,57 +258,85 @@ MathJax.Hub.Config({

     

     

     

    - + + +

    Code examples for Ridge and Lasso Regression

    -

    Generating test data

    -

    # Generate Test Data
    +
    import matplotlib.pyplot as plt
    +import numpy as np
    +from sklearn import linear_model
    +from sklearn.linear_model import LinearRegression
    +from sklearn.metrics import mean_squared_error, r2_score
     
    -#Number of test data
    -N_test=20
    +#creating data with random noise
    +x=np.arange(50)
     
    -sigma_test=sigma_train
    +delta=np.random.uniform(-2.5,2.5, size=(50))
    +np.random.shuffle(delta)
    +y =0.5*x+5+delta
     
    -max_x=1.2
    -x_test=max_x*np.random.random(N_test)
    -# Draw random noise
    -s_test = sigma_test*np.random.randn(N_test)
    +#arranging data into 2x50 matrix
    +a=np.array(x) #inputs
    +b=np.array(y) #outputs
     
    -#Linear
    -y_test=2*x_test+s_test
    -#Tenth order
    -#y_test=2*x_test-10*x_test**5+15*x_test**10+s_test
    +#Split into training and test
    +X_train=a[:37, np.newaxis]
    +X_test=a[37:, np.newaxis]
    +y_train=b[:37]
    +y_test=b[37:]
     
    -#Make design matrices for prediction
    -x_plot=np.linspace(0,max_x, 200)
    -X3 = poly3.fit_transform(x_plot[:,np.newaxis])
    -X10 = poly10.fit_transform(x_plot[:,np.newaxis])
    +print ("X_train: ", X_train.shape)
    +print ("y_train: ", y_train.shape)
    +print ("X_test: ", X_test.shape)
    +print ("y_test: ", y_test.shape)
     
    -%matplotlib notebook
    +print ("------------------------------------")
     
    -fig = plt.figure() 
    -p1=plt.plot(x_test,y_test.transpose(), 'o', ms=12, label='data')
    -p2=plt.plot(x_plot,clf.predict(x_plot[:,np.newaxis]), label='linear')
    -p3=plt.plot(x_plot,clf3.predict(X3), label='3rd order')
    -p10=plt.plot(x_plot,clf10.predict(X10), label='10th order')
    +print ("Ordinary Least Squares")
    +#Add Ordinary Least Squares fit
    +reg=LinearRegression()
    +reg.fit(X_train, y_train)
    +pred=reg.predict(X_test)
    +print ("Prediction Shape: ", pred.shape)
     
    +print('Coefficients: \n', reg.coef_)
    +# The mean squared error
    +print("Mean squared error: %.2f"
    +      % mean_squared_error(y_test, pred))
    +# Explained variance score: 1 is perfect prediction
    +print('Variance score: %.2f' % r2_score(y_test, pred))
     
    -plt.legend(loc=2)
    -plt.xlabel('$x$')
    -plt.ylabel('$y$')
    -plt.legend(loc='best')
    -plt.title(Title+" (pred.)")
    -plt.tight_layout()
    +#plot
    +plt.scatter(X_test,y_test,color='green', label="Training Data")
    +plt.plot(X_test, pred, color='black', label="Fit Line")
    +plt.legend()
     plt.show()
     
    -#Linear Filename
    -#filename_test=Title+"pred-linear.pdf"
    -#Tenth Order Filename
    -#filename_test=Title+"pred-o10.pdf"
    -#plt.savefig(filename_test)
    -#plt.ylim((-6,12))
    +print ("------------------------------------")
    +
    +print ("Ridge Regression")
    +
    +ridge=linear_model.RidgeCV(alphas=[0.1,1.0,10.0])
    +ridge.fit(X_train,y_train)
    +print ("Ridge Coefficient: ",ridge.coef_)
    +print ("Ridge Intercept: ", ridge.intercept_)
    +#Look into graphing with Ridge fit
    +
    +print ("------------------------------------")
    +
    +print ("Lasso")
    +lasso=linear_model.Lasso(alpha=0.1)
    +lasso.fit(X_train,y_train)
    +predl=lasso.predict(X_test)
    +print("Lasso Coefficient: ", lasso.coef_)
    +print("Lasso Intercept: ", lasso.intercept_)
    +plt.scatter(X_test,y_test,color='green', label="Training Data")
    +plt.plot(X_test, predl, color='blue', label="Lasso")
    +plt.legend()
    +plt.show()
     

    @@ -300,6 +356,15 @@ plt.show()

  • 44
  • 45
  • 46
  • +
  • 47
  • +
  • 48
  • +
  • 49
  • +
  • 50
  • +
  • 51
  • +
  • 52
  • +
  • 53
  • +
  • ...
  • +
  • 54
  • »
  • diff --git a/doc/pub/Regression/html/._Regression-bs044.html b/doc/pub/Regression/html/._Regression-bs044.html index 1ad5ddece..10e005345 100644 --- a/doc/pub/Regression/html/._Regression-bs044.html +++ b/doc/pub/Regression/html/._Regression-bs044.html @@ -110,31 +110,51 @@ Automatically generated HTML file from DocOnce source '___sec32'), ('Expectation value and variance', 2, None, '___sec33'), ('The singular value decompostion', 2, None, '___sec34'), - ('Code examples for Ridge and Lasso Regression', - 2, - None, - '___sec35'), ('From standard regression to Ridge regressions', 2, None, - '___sec36'), - ('Fixing the singularity', 2, None, '___sec37'), - ('A second-order polynomial with Ridge and Lasso', - 2, - None, - '___sec38'), + '___sec35'), + ('Fixing the singularity', 2, None, '___sec36'), ('Fitting vs. predicting when data is in the model class', 2, None, - '___sec39'), + '___sec37'), ('Fitting versus predicting when data is not in the model class', 2, None, - '___sec40'), - ('The code', 2, None, '___sec41'), - ('Generating test data', 2, None, '___sec42'), - ('Lasso regression', 2, None, '___sec43'), - ('Logistic regression', 2, None, '___sec44')]} + '___sec38'), + ('An example code without the model assessment part', + 2, + None, + '___sec39'), + ('Generating test data', 2, None, '___sec40'), + ('How can we effectively evaluate the various models?', + 2, + None, + '___sec41'), + ('Code examples for Ridge and Lasso Regression', + 2, + None, + '___sec42'), + ('A second-order polynomial with Ridge and Lasso', + 2, + None, + '___sec43'), + ('Resampling methods', 2, None, '___sec44'), + ('Resampling approaches can be computationally expensive', + 2, + None, + '___sec45'), + ('Log-likelihood', 2, None, '___sec46'), + ('Cross-validation', 2, None, '___sec47'), + ('Computationally expensive', 2, None, '___sec48'), + ('Various steps in cross-validation', 2, None, '___sec49'), + ('How to set up the cross-validation for Ridge and/or Lasso', + 2, + None, + '___sec50'), + ('Predicted Residual Error Sum of Squares', 2, None, '___sec51'), + ('Bootstrap', 2, None, '___sec52')]} end of tocinfo --> @@ -207,16 +227,24 @@ MathJax.Hub.Config({
  • Linking the regression analysis with a statistical interpretation
  • Expectation value and variance
  • The singular value decompostion
  • -
  • Code examples for Ridge and Lasso Regression
  • -
  • From standard regression to Ridge regressions
  • -
  • Fixing the singularity
  • -
  • A second-order polynomial with Ridge and Lasso
  • -
  • Fitting vs. predicting when data is in the model class
  • -
  • Fitting versus predicting when data is not in the model class
  • -
  • The code
  • -
  • Generating test data
  • -
  • Lasso regression
  • -
  • Logistic regression
  • +
  • From standard regression to Ridge regressions
  • +
  • Fixing the singularity
  • +
  • Fitting vs. predicting when data is in the model class
  • +
  • Fitting versus predicting when data is not in the model class
  • +
  • An example code without the model assessment part
  • +
  • Generating test data
  • +
  • How can we effectively evaluate the various models?
  • +
  • Code examples for Ridge and Lasso Regression
  • +
  • A second-order polynomial with Ridge and Lasso
  • +
  • Resampling methods
  • +
  • Resampling approaches can be computationally expensive
  • +
  • Log-likelihood
  • +
  • Cross-validation
  • +
  • Computationally expensive
  • +
  • Various steps in cross-validation
  • +
  • How to set up the cross-validation for Ridge and/or Lasso
  • +
  • Predicted Residual Error Sum of Squares
  • +
  • Bootstrap
  • @@ -232,8 +260,117 @@ MathJax.Hub.Config({ -

    Lasso regression

    +

    A second-order polynomial with Ridge and Lasso

    +

    + +

    import numpy as np
    +import matplotlib.pyplot as plt
    +from sklearn.linear_model import Ridge
    +from sklearn.metrics import r2_score
    +
    +np.random.seed(4155)
    +
    +n_samples = 100
    +
    +x = np.random.rand(n_samples,1)
    +y = 5*x*x + 0.1*np.random.rand(n_samples,1)
    +
    +# Centering  x and y.
    +x_ = x - np.mean(x)
    +y_ = y - np.mean(y) # beta_0 = mean(y)
    +
    +X = np.c_[np.ones((n_samples,1)), x, x**2]
    +X_ = np.c_[x_, x_**2]
    +
    +
    +### 1.
    +lmb_values = [1e-4, 1e-3, 1e-2, 10, 1e2, 1e4]
    +num_values = len(lmb_values)
    +
    +## Ridge-regression of centered and not centered data
    +beta_ridge = np.zeros((3,num_values))
    +beta_ridge_centered = np.zeros((3,num_values))
    +
    +I3 = np.eye(3)
    +I2 = np.eye(2)
    +
    +for i,lmb in enumerate(lmb_values):
    +    beta_ridge[:,i] = (np.linalg.inv( X.T @ X + lmb*I3) @ X.T @ y).flatten()
    +    beta_ridge_centered[1:,i] = (np.linalg.inv( X_.T @ X_ + lmb*I2) @ X_.T @ y_).flatten()
    +
    +# sett beta_0 = np.mean(y)
    +beta_ridge_centered[0,:] = np.mean(y)
    +
    +## OLS (ordinary least squares) solution 
    +beta_ls = np.linalg.inv( X.T @ X ) @ X.T @ y
    +
    +## Evaluate the models
    +pred_ls = X @ beta_ls
    +pred_ridge =  X @ beta_ridge
    +pred_ridge_centered =  X_ @ beta_ridge_centered[1:] + beta_ridge_centered[0,:]
    +
    +## Plot the results
    +
    +# Sorting
    +sort_ind = np.argsort(x[:,0])
    +
    +x_plot = x[sort_ind,0]
    +x_centered_plot = x_[sort_ind,0]
    +
    +pred_ls_plot = pred_ls[sort_ind,0]
    +pred_ridge_plot = pred_ridge[sort_ind,:]
    +pred_ridge_centered_plot = pred_ridge_centered[sort_ind,:]
    +
    +# Plott not centered
    +plt.plot(x_plot,pred_ls_plot,label='ls')
    +
    +for i in range(num_values):
    +    plt.plot(x_plot,pred_ridge_plot[:,i],label='ridge, lmb=%g'%lmb_values[i])
    +
    +plt.plot(x,y,'ro')
    +
    +plt.title('linear regression on un-centered data')
    +plt.legend()
    +
    +# Plott centered
    +plt.figure()
    +
    +for i in range(num_values):
    +    plt.plot(x_centered_plot,pred_ridge_centered_plot[:,i],label='ridge, lmb=%g'%lmb_values[i])
    +
    +plt.plot(x_,y,'ro')
    +
    +plt.title('linear regression on centered data')
    +plt.legend()
    +
    +
    +# 2.
    +
    +pred_ridge_scikit =  np.zeros((n_samples,num_values))
    +for i,lmb in enumerate(lmb_values):
    +    pred_ridge_scikit[:,i] = (Ridge(alpha=lmb,fit_intercept=False).fit(X,y).predict(X)).flatten() # fit_intercept=False fordi bias er allerede i X
    +
    +plt.figure()
    +
    +plt.plot(x_plot,pred_ls_plot,label='ls')
    +
    +for i in range(num_values):
    +    plt.plot(x_plot,pred_ridge_scikit[sort_ind,i],label='scikit-ridge, lmb=%g'%lmb_values[i])
    +
    +plt.plot(x,y,'ro')
    +plt.legend()
    +plt.title('linear regression using scikit')
    +
    +plt.show()
    +
    +### R2-score of the results
    +for i in range(num_values):
    +    print('lambda = %g'%lmb_values[i])
    +    print('r2 for scikit: %g'%r2_score(y,pred_ridge_scikit[:,i]))
    +    print('r2 for own code, not centered: %g'%r2_score(y,pred_ridge[:,i]))
    +    print('r2 for own, centered: %g\n'%r2_score(y,pred_ridge_centered[:,i]))
    +

    @@ -251,6 +388,14 @@ MathJax.Hub.Config({

  • 44
  • 45
  • 46
  • +
  • 47
  • +
  • 48
  • +
  • 49
  • +
  • 50
  • +
  • 51
  • +
  • 52
  • +
  • 53
  • +
  • 54
  • »
  • diff --git a/doc/pub/Regression/html/._Regression-bs045.html b/doc/pub/Regression/html/._Regression-bs045.html index 59fd87d05..d8001720b 100644 --- a/doc/pub/Regression/html/._Regression-bs045.html +++ b/doc/pub/Regression/html/._Regression-bs045.html @@ -110,31 +110,51 @@ Automatically generated HTML file from DocOnce source '___sec32'), ('Expectation value and variance', 2, None, '___sec33'), ('The singular value decompostion', 2, None, '___sec34'), - ('Code examples for Ridge and Lasso Regression', - 2, - None, - '___sec35'), ('From standard regression to Ridge regressions', 2, None, - '___sec36'), - ('Fixing the singularity', 2, None, '___sec37'), - ('A second-order polynomial with Ridge and Lasso', - 2, - None, - '___sec38'), + '___sec35'), + ('Fixing the singularity', 2, None, '___sec36'), ('Fitting vs. predicting when data is in the model class', 2, None, - '___sec39'), + '___sec37'), ('Fitting versus predicting when data is not in the model class', 2, None, - '___sec40'), - ('The code', 2, None, '___sec41'), - ('Generating test data', 2, None, '___sec42'), - ('Lasso regression', 2, None, '___sec43'), - ('Logistic regression', 2, None, '___sec44')]} + '___sec38'), + ('An example code without the model assessment part', + 2, + None, + '___sec39'), + ('Generating test data', 2, None, '___sec40'), + ('How can we effectively evaluate the various models?', + 2, + None, + '___sec41'), + ('Code examples for Ridge and Lasso Regression', + 2, + None, + '___sec42'), + ('A second-order polynomial with Ridge and Lasso', + 2, + None, + '___sec43'), + ('Resampling methods', 2, None, '___sec44'), + ('Resampling approaches can be computationally expensive', + 2, + None, + '___sec45'), + ('Log-likelihood', 2, None, '___sec46'), + ('Cross-validation', 2, None, '___sec47'), + ('Computationally expensive', 2, None, '___sec48'), + ('Various steps in cross-validation', 2, None, '___sec49'), + ('How to set up the cross-validation for Ridge and/or Lasso', + 2, + None, + '___sec50'), + ('Predicted Residual Error Sum of Squares', 2, None, '___sec51'), + ('Bootstrap', 2, None, '___sec52')]} end of tocinfo --> @@ -207,16 +227,24 @@ MathJax.Hub.Config({
  • Linking the regression analysis with a statistical interpretation
  • Expectation value and variance
  • The singular value decompostion
  • -
  • Code examples for Ridge and Lasso Regression
  • -
  • From standard regression to Ridge regressions
  • -
  • Fixing the singularity
  • -
  • A second-order polynomial with Ridge and Lasso
  • -
  • Fitting vs. predicting when data is in the model class
  • -
  • Fitting versus predicting when data is not in the model class
  • -
  • The code
  • -
  • Generating test data
  • -
  • Lasso regression
  • -
  • Logistic regression
  • +
  • From standard regression to Ridge regressions
  • +
  • Fixing the singularity
  • +
  • Fitting vs. predicting when data is in the model class
  • +
  • Fitting versus predicting when data is not in the model class
  • +
  • An example code without the model assessment part
  • +
  • Generating test data
  • +
  • How can we effectively evaluate the various models?
  • +
  • Code examples for Ridge and Lasso Regression
  • +
  • A second-order polynomial with Ridge and Lasso
  • +
  • Resampling methods
  • +
  • Resampling approaches can be computationally expensive
  • +
  • Log-likelihood
  • +
  • Cross-validation
  • +
  • Computationally expensive
  • +
  • Various steps in cross-validation
  • +
  • How to set up the cross-validation for Ridge and/or Lasso
  • +
  • Predicted Residual Error Sum of Squares
  • +
  • Bootstrap
  • @@ -232,8 +260,25 @@ MathJax.Hub.Config({ -

    Logistic regression

    +

    Resampling methods

    +
    +
    +

    +Resampling methods are an indispensable tool in modern +statistics. They involve repeatedly drawing samples from a training +set and refitting a model of interest on each sample in order to +obtain additional information about the fitted model. For example, in +order to estimate the variability of a linear regression fit, we can +repeatedly draw different samples from the training data, fit a linear +regression to each new sample, and then examine the extent to which +the resulting fits differ. Such an approach may allow us to obtain +information that would not be available from fitting the model only +once using the original training sample. +

    +
    + +

    diff --git a/doc/pub/Regression/html/Regression-bs.html b/doc/pub/Regression/html/Regression-bs.html index c92c12f8a..bd71ca567 100644 --- a/doc/pub/Regression/html/Regression-bs.html +++ b/doc/pub/Regression/html/Regression-bs.html @@ -110,31 +110,51 @@ Automatically generated HTML file from DocOnce source '___sec32'), ('Expectation value and variance', 2, None, '___sec33'), ('The singular value decompostion', 2, None, '___sec34'), - ('Code examples for Ridge and Lasso Regression', - 2, - None, - '___sec35'), ('From standard regression to Ridge regressions', 2, None, - '___sec36'), - ('Fixing the singularity', 2, None, '___sec37'), - ('A second-order polynomial with Ridge and Lasso', - 2, - None, - '___sec38'), + '___sec35'), + ('Fixing the singularity', 2, None, '___sec36'), ('Fitting vs. predicting when data is in the model class', 2, None, - '___sec39'), + '___sec37'), ('Fitting versus predicting when data is not in the model class', 2, None, - '___sec40'), - ('The code', 2, None, '___sec41'), - ('Generating test data', 2, None, '___sec42'), - ('Lasso regression', 2, None, '___sec43'), - ('Logistic regression', 2, None, '___sec44')]} + '___sec38'), + ('An example code without the model assessment part', + 2, + None, + '___sec39'), + ('Generating test data', 2, None, '___sec40'), + ('How can we effectively evaluate the various models?', + 2, + None, + '___sec41'), + ('Code examples for Ridge and Lasso Regression', + 2, + None, + '___sec42'), + ('A second-order polynomial with Ridge and Lasso', + 2, + None, + '___sec43'), + ('Resampling methods', 2, None, '___sec44'), + ('Resampling approaches can be computationally expensive', + 2, + None, + '___sec45'), + ('Log-likelihood', 2, None, '___sec46'), + ('Cross-validation', 2, None, '___sec47'), + ('Computationally expensive', 2, None, '___sec48'), + ('Various steps in cross-validation', 2, None, '___sec49'), + ('How to set up the cross-validation for Ridge and/or Lasso', + 2, + None, + '___sec50'), + ('Predicted Residual Error Sum of Squares', 2, None, '___sec51'), + ('Bootstrap', 2, None, '___sec52')]} end of tocinfo --> @@ -207,16 +227,24 @@ MathJax.Hub.Config({
  • Linking the regression analysis with a statistical interpretation
  • Expectation value and variance
  • The singular value decompostion
  • -
  • Code examples for Ridge and Lasso Regression
  • -
  • From standard regression to Ridge regressions
  • -
  • Fixing the singularity
  • -
  • A second-order polynomial with Ridge and Lasso
  • -
  • Fitting vs. predicting when data is in the model class
  • -
  • Fitting versus predicting when data is not in the model class
  • -
  • The code
  • -
  • Generating test data
  • -
  • Lasso regression
  • -
  • Logistic regression
  • +
  • From standard regression to Ridge regressions
  • +
  • Fixing the singularity
  • +
  • Fitting vs. predicting when data is in the model class
  • +
  • Fitting versus predicting when data is not in the model class
  • +
  • An example code without the model assessment part
  • +
  • Generating test data
  • +
  • How can we effectively evaluate the various models?
  • +
  • Code examples for Ridge and Lasso Regression
  • +
  • A second-order polynomial with Ridge and Lasso
  • +
  • Resampling methods
  • +
  • Resampling approaches can be computationally expensive
  • +
  • Log-likelihood
  • +
  • Cross-validation
  • +
  • Computationally expensive
  • +
  • Various steps in cross-validation
  • +
  • How to set up the cross-validation for Ridge and/or Lasso
  • +
  • Predicted Residual Error Sum of Squares
  • +
  • Bootstrap
  • @@ -251,7 +279,7 @@ MathJax.Hub.Config({
    [2] Department of Physics and Astronomy and National Superconducting Cyclotron Laboratory, Michigan State University

    -

    Sep 6, 2018

    +

    Sep 7, 2018


    @@ -275,7 +303,7 @@ MathJax.Hub.Config({

  • 9
  • 10
  • ...
  • -
  • 46
  • +
  • 54
  • »
  • diff --git a/doc/pub/Regression/html/Regression-reveal.html b/doc/pub/Regression/html/Regression-reveal.html index 13e0c45e3..ee2d9bcc5 100644 --- a/doc/pub/Regression/html/Regression-reveal.html +++ b/doc/pub/Regression/html/Regression-reveal.html @@ -148,7 +148,7 @@ MathJax.Hub.Config({
    [2] Department of Physics and Astronomy and National Superconducting Cyclotron Laboratory, Michigan State University

     
    -

    Sep 6, 2018

    +

    Sep 7, 2018


    @@ -1282,7 +1282,287 @@ $$

    -

    Code examples for Ridge and Lasso Regression

    +

    From standard regression to Ridge regressions

    + +

    +One of the typical problems we encounter with linear regression, in particular +when the matrix \( \hat{X} \) (our so-called design matrix) is high-dimensional, +are problems with near singular or singular matrices. The column vectors of \( \hat{X} \) +may be linearly dependent, normally referred to as super-collinearity. +This means that the matrix may be rank deficient and it is basically impossible to +to model the data using linear regression. As an example, consider the matrix +

     
    +$$ +\begin{align*} +\mathbf{X} & = \left[ +\begin{array}{rrr} +1 & -1 & 2 +\\ +1 & 0 & 1 +\\ +1 & 2 & -1 +\\ +1 & 1 & 0 +\end{array} \right] +\end{align*} +$$ +

     
    + +

    +The columns of \( \hat{X} \) are linearly dependent. We se this easily since the +the first column is the row-wise sum of the other two columns. The rank (more correct, +the column rank) of a matrix is the dimension of the space spanned by the +column vectors. Hence, the rank of \( \mathbf{X} \) is equal to the number +of linearly independent columns. In this particular case the matrix has rank 2. + +

    +Super-collinearity of an \( (n \times p) \)-dimensional design matrix \( \mathbf{X} \) implies +that the inverse of the matrix \( \hat{X}^T\hat{x} \) (the matrix we needto invert to solve the linear regression equations) is non-invertible. If we have a square matrix that does not have an inverse, we say this matrix singular. The example here demonstrates this +

     
    +$$ +\begin{align*} +\hat{X} & = \left[ +\begin{array}{rr} +1 & -1 +\\ +1 & -1 +\end{array} \right]. +\end{align*} +$$ +

     
    + +We see easily that \( \mbox{det}(\hat{X}) = x_{11} x_{22} - x_{12} x_{21} = 1 \times (-1) - 1 \times (-1) = 0 \). Hence, \( \mathbf{X} \) is singular and its inverse is undefined. +This is equivalent to saying that the matrix \( \hat{X} \) has at least an eigenvalue which is zero. +

    + + +
    +

    Fixing the singularity

    + +

    +If our design matrix \( \hat{X} \) which enters the linear regression problem +

     
    +$$ +\begin{align} +\hat{\beta} & = (\hat{X}^{T} \hat{X})^{-1} \hat{X}^{T} \hat{y}, +\tag{1} +\end{align} +$$ +

     
    + +has linearly dependent column vectors, we will not be able to compute the inverse +of \( \hat{X}^T\hat{X} \) and we cannot find the parameters (estimators) \( \beta_i \). +The estimators are only well-defined if \( (\hat{X}^{T}\hat{X})^{-1} \) exits. +This is more likely to happen when the matrix \( \hat{X} \) is high-dimensional. In this case it is likely to encounter a situation where +the regression parameters \( \beta_i \) cannot be estimated. + +

    +The ad hoc approach which was introduced in the 70s was simply to add a diagonal component to the matrix to invert, that is we change +

     
    +$$ +\hat{X}^{T} \hat{X} \rightarrow \hat{X}^{T} \hat{X}+\lambda \hat{I}, +$$ +

     
    + +where \( \hat{I} \) is the identity matrix. +

    + + +
    +

    Fitting vs. predicting when data is in the model class

    + +

    +We start by considering the case +\( f(x)=2x \). + +

    +Then the data is clearly generated by a model that is contained within +all three model classes we are using to make predictions (linear +models, third order polynomials, and tenth order polynomials). + +

    +Run the code for the following cases: + +

      +

    1. For \( f(x)=2x \) , \( Ntrain=10 \) and \( \sigma =0 \) (noiseless case), train the three classes of models (linear, third-order polynomial, and tenth order polynomial) for a training set when \( x \in [0,1] \) . Make graphs comparing fits for different order of polynomials. Which model fits the data the best?
    2. +

    3. Do you think that the data that has the least error on the training set will also make the best predictions? Why or why not? Can you try to discuss and formalize your intuition? What can go right and what can go wrong?
    4. +

    5. Check your answer by seeing how well your fits predict newly generated test data (including on data outside the range you fit on, for example \( x \in [0,1.2] \) ) using the code below. How well do you do on points in the range of x where you trained the model? How about points outside the original training data set?
    6. +

    7. Repeat the above for \( f(x)=2x \) , \( Ntrain=10 \) , and \( \sigma=1 \) . What changes?
    8. +
    +

    + +Repeat the exercises above for \( f(x)=2x \) , \( Ntrain=100 \) , and \( \sigma=1 \) . What changes? +Summarize what you have learned about the relationship between model complexity (number of parameters), goodness of fit on training data, and the ability to predict well. +

    + + +
    +

    Fitting versus predicting when data is not in the model class

    + +

    +Thus far, we have considered the case where the data is generated using a model contained in the model class. Now consider \( f(x)=2x-10x^5+15x^{10} \) . Notice that the for linear and third-order polynomial the true model \( f(x) \) is not contained in model class. + +

      +

    1. Do better fits lead to better predictions?
    2. +

    3. What is the relationship between the true model for generating the data and the model class that has the most predictive power? How is this related to the model complexity? How does this depend on the number of data points \( Ntrain \) and \( \sigma \)?
    4. +
    +

    + +Summarize what you think you learned about the relationship of knowing the true model class and predictive power. +

    + + +
    +

    An example code without the model assessment part

    + +

    + + +

    import numpy as np
    +import sklearn as sk
    +from sklearn import datasets, linear_model
    +from sklearn.preprocessing import PolynomialFeatures
    +
    +import matplotlib as mpl
    +from matplotlib import pyplot as plt
    +
    +%matplotlib notebook
    +
    +# The Training Data
    +
    +N_train=100
    +
    +sigma_train=1;
    +
    +# Train on integers
    +x=np.linspace(0.05,0.95,N_train)
    +# Draw random noise
    +s = sigma_train*np.random.randn(N_train)
    +
    +#linear
    +y=2*x+s
    +
    +#Tenth Order
    +#y=2*x-10*x**5+15*x**10+s
    +
    +p1=plt.plot(x,y, "o",ms=15, label='Training')
    +
    +#Linear Regression
    +# Create linear regression object
    +clf = linear_model.LinearRegression()
    +
    +# Train the model using the training sets
    +clf.fit(x[:, np.newaxis], y)
    +# The coefficients
    +
    +xplot=np.linspace(0.02,0.98,200)
    +linear_plot=plt.plot(xplot, clf.predict(xplot[:, np.newaxis]),label='Linear')
    +
    +#Polynomial Regression
    +
    +
    +poly3 = PolynomialFeatures(degree=3)
    +X = poly3.fit_transform(x[:,np.newaxis])
    +clf3 = linear_model.LinearRegression()
    +clf3.fit(X,y)
    +
    +
    +Xplot=poly3.fit_transform(xplot[:,np.newaxis])
    +poly3_plot=plt.plot(xplot, clf3.predict(Xplot), label='Poly 3')
    +
    +
    +
    +#poly5 = PolynomialFeatures(degree=5)
    +#X = poly5.fit_transform(x[:,np.newaxis])
    +#clf5 = linear_model.LinearRegression()
    +#clf5.fit(X,y)
    +
    +#Xplot=poly5.fit_transform(xplot[:,np.newaxis])
    +#plt.plot(xplot, clf5.predict(Xplot), 'r--',linewidth=1)
    +
    +poly10 = PolynomialFeatures(degree=10)
    +X = poly10.fit_transform(x[:,np.newaxis])
    +clf10 = linear_model.LinearRegression()
    +clf10.fit(X,y)
    +
    +Xplot=poly10.fit_transform(xplot[:,np.newaxis])
    +poly10_plot=plt.plot(xplot, clf10.predict(Xplot), label='Poly 10')
    +
    +axes = plt.gca()
    +axes.set_ylim([-7,7])
    +
    +handles, labels=axes.get_legend_handles_labels()
    +plt.legend(handles,labels, loc='lower center')
    +plt.xlabel("$x$")
    +plt.ylabel("$y$")
    +Title="$N=$"+str(N_train)+", $\sigma=$"+str(sigma_train)
    +plt.title(Title+" (train)")
    +plt.tight_layout()
    +plt.show()
    +
    +
    + + +
    +

    Generating test data

    +

    + + +

    # Generate Test Data
    +
    +#Number of test data
    +N_test=20
    +
    +sigma_test=sigma_train
    +
    +max_x=1.2
    +x_test=max_x*np.random.random(N_test)
    +# Draw random noise
    +s_test = sigma_test*np.random.randn(N_test)
    +
    +#Linear
    +y_test=2*x_test+s_test
    +#Tenth order
    +#y_test=2*x_test-10*x_test**5+15*x_test**10+s_test
    +
    +#Make design matrices for prediction
    +x_plot=np.linspace(0,max_x, 200)
    +X3 = poly3.fit_transform(x_plot[:,np.newaxis])
    +X10 = poly10.fit_transform(x_plot[:,np.newaxis])
    +
    +%matplotlib notebook
    +
    +fig = plt.figure() 
    +p1=plt.plot(x_test,y_test.transpose(), 'o', ms=12, label='data')
    +p2=plt.plot(x_plot,clf.predict(x_plot[:,np.newaxis]), label='linear')
    +p3=plt.plot(x_plot,clf3.predict(X3), label='3rd order')
    +p10=plt.plot(x_plot,clf10.predict(X10), label='10th order')
    +
    +
    +plt.legend(loc=2)
    +plt.xlabel('$x$')
    +plt.ylabel('$y$')
    +plt.legend(loc='best')
    +plt.title(Title+" (pred.)")
    +plt.tight_layout()
    +plt.show()
    +
    +
    + + +
    +

    How can we effectively evaluate the various models?

    + +

    +In Ridge regression and the subsequent discussion of its properties +the bias or penalty parameter is considered known or `given'. In +practice, it is unknown and the user needs to make an informed +decision on its value. How do we do that? Much of the same considerations apply to the Lasso method. +

    + + +
    +

    Code examples for Ridge and Lasso Regression

    @@ -1364,94 +1644,7 @@ plt.show()

    -

    From standard regression to Ridge regressions

    - -

    -One of the typical problems we encounter with linear regression, in particular -when the matrix \( \hat{X} \) (our so-called design matrix) is high-dimensional, -are problems with near singular or singular matrices. The column vectors of \( \hat{X} \) -may be linearly dependent, normally referred to as super-collinearity. -This means that the matrix may be rank deficient and it is basically impossible to -to model the data using linear regression. As an example, consider the matrix -

     
    -$$ -\begin{align*} -\mathbf{X} & = \left[ -\begin{array}{rrr} -1 & -1 & 2 -\\ -1 & 0 & 1 -\\ -1 & 2 & -1 -\\ -1 & 1 & 0 -\end{array} \right] -\end{align*} -$$ -

     
    - -

    -The columns of \( \hat{X} \) are linearly dependent. We se this easily since the -the first column is the row-wise sum of the other two columns. The rank (more correct, -the column rank) of a matrix is the dimension of the space spanned by the -column vectors. Hence, the rank of \( \mathbf{X} \) is equal to the number -of linearly independent columns. In this particular case the matrix has rank 2. - -

    -Super-collinearity of an \( (n \times p) \)-dimensional design matrix \( \mathbf{X} \) implies -that the inverse of the matrix \( \hat{X}^T\hat{x} \) (the matrix we needto invert to solve the linear regression equations) is non-invertible. If we have a square matrix that does not have an inverse, we say this matrix singular. The example here demonstrates this -

     
    -$$ -\begin{align*} -\hat{X} & = \left[ -\begin{array}{rr} -1 & -1 -\\ -1 & -1 -\end{array} \right]. -\end{align*} -$$ -

     
    - -We see easily that \( \mbox{det}(\hat{X}) = x_{11} x_{22} - x_{12} x_{21} = 1 \times (-1) - 1 \times (-1) = 0 \). Hence, \( \mathbf{X} \) is singular and its inverse is undefined. -This is equivalent to saying that the matrix \( \hat{X} \) has at least an eigenvalue which is zero. -

    - - -
    -

    Fixing the singularity

    - -

    -If our design matrix \( \hat{X} \) which enters the linear regression problem -

     
    -$$ -\begin{align} -\hat{\beta} & = (\hat{X}^{T} \hat{X})^{-1} \hat{X}^{T} \hat{y}, -\tag{1} -\end{align} -$$ -

     
    - -has linearly dependent column vectors, we will not be able to compute the inverse -of \( \hat{X}^T\hat{X} \) and we cannot find the parameters (estimators) \( \beta_i \). -The estimators are only well-defined if \( (\hat{X}^{T}\hat{X})^{-1} \) exits. -This is more likely to happen when the matrix \( \hat{X} \) is high-dimensional. In this case it is likely to encounter a situation where -the regression parameters \( \beta_i \) cannot be estimated. - -

    -The ad hoc approach which was introduced in the 70s was simply to add a diagonal component to the matrix to invert, that is we change -

     
    -$$ -\hat{X}^{T} \hat{X} \rightarrow \hat{X}^{T} \hat{X}+\lambda \hat{I}, -$$ -

     
    - -where \( \hat{I} \) is the identity matrix. -

    - - -
    -

    A second-order polynomial with Ridge and Lasso

    +

    A second-order polynomial with Ridge and Lasso

    @@ -1566,201 +1759,233 @@ plt.show()

    -

    Fitting vs. predicting when data is in the model class

    +

    Resampling methods

    +
    + +

    +Resampling methods are an indispensable tool in modern +statistics. They involve repeatedly drawing samples from a training +set and refitting a model of interest on each sample in order to +obtain additional information about the fitted model. For example, in +order to estimate the variability of a linear regression fit, we can +repeatedly draw different samples from the training data, fit a linear +regression to each new sample, and then examine the extent to which +the resulting fits differ. Such an approach may allow us to obtain +information that would not be available from fitting the model only +once using the original training sample. +

    +
    + + +
    +

    Resampling approaches can be computationally expensive

    +
    + +

    +Resampling approaches can be computationally expensive, because they +involve fitting the same statistical method multiple times using +different subsets of the training data. However, due to recent +advances in computing power, the computational requirements of +resampling methods generally are not prohibitive. In this chapter, we +discuss two of the most commonly used resampling methods, +cross-validation and the bootstrap. Both methods are important tools +in the practical application of many statistical learning +procedures. For example, cross-validation can be used to estimate the +test error associated with a given statistical learning method in +order to evaluate its performance, or to select the appropriate level +of flexibility. The process of evaluating a model’s performance is +known as model assessment, whereas the process of selecting the proper +level of flexibility for a model is known as model selection. The +bootstrap is widely used. +

    +
    + + +
    +

    Log-likelihood

    -We start by considering the case -\( f(x)=2x \). +A popular strategy is to choose a penalty parameter that yields a good +but parsimonious model. Information criteria measure the balance +between model fit and model complexity. One possibility is Aikaike's +information criterion (AIC). +The AIC measures model fit by the log-likelihood +and model complexity is measured by the number of parameters used by +the model. The number of model parameters in regular regression simply +corresponds to the number of covariates in the model. Or, by the +degrees of freedom consumed by the model, which is equivalent to the +trace of the hat matrix. For ridge regression it thus seems natural to +define model complexity analogously by the trace of the ridge hat +matrix. This yields the AIC for the linear regression model with ridge +estimates: + +

     
    +$$ +\begin{align*} +\mbox{AIC}(\lambda) & = 2 \, p - 2 \log(\hat{L}) +\\ +& = 2 \, \mbox{tr} [\mathbf{H}(\lambda)] - 2 \log\{L[\hat{\beta}(\lambda), \hat{\sigma}^2(\lambda)]\} +\\ +& = 2 \, \sum_{j=1}^p \frac{d_{jj}^2}{d_{jj}^2 + \lambda} ++ 2 n \, \log[\sqrt{2 \, \pi} \, \hat{\sigma}(\lambda)] + \frac{1}{\hat{\sigma}^2(\lambda)} \sum_{i=1}^n [y_i - \mathbf{X}_{i, \ast} \, \hat{\beta}(\lambda)]^2. +\end{align*} +$$ +

     
    + +The value of \( \lambda \) which minimizes \( \mbox{AIC}(\lambda) \) corresponds to the `optimal' balance of model complexity and overfitting. +

    + + +
    +

    Cross-validation

    -Then the data is clearly generated by a model that is contained within -all three model classes we are using to make predictions (linear -models, third order polynomials, and tenth order polynomials). +Instead of choosing the penalty parameter to balance model fit with +model complexity, cross-validation requires it (i.e. the penalty +parameter) to yield a model with good prediction +performance. Commonly, this performance is evaluated on novel +data. Novel data need not be easy to come by and one has to make do +with the data at hand. The setting of `original' and novel data is +then mimicked by sample splitting: the data set is divided into two +(groups of samples). One of these two data sets, called the training +set, plays the role of `original' data on which the model is +built. The second of these data sets, called the test set, plays the +role of the `novel' data and is used to evaluate the prediction +performance (often operationalized as the log-likelihood or the +prediction error or its square or the R2 score) of the model built on the training data set. This +procedure (model building and prediction evaluation on training and +test set, respectively) is done for a collection of possible penalty +parameter choices. The penalty parameter that yields the model with +the best prediction performance is to be preferred. The thus obtained +performance evaluation depends on the actual split of the data set. To +remove this dependence the data set is split many times into a +training and test set. For each split the model parameters are +estimated for all choices of \( \lambda \) using the training data and +estimated parameters are evaluated on the corresponding test set. The +penalty parameter that on average over the test sets performs best (in +some sense) is then selected. +

    + + +
    +

    Computationally expensive

    -Run the code for the following cases: +The validation set approach is conceptually simple and is easy to implement. But it has two potential drawbacks: + +

      +

    • The validation estimate of the test error rate can be highly variable, depending on precisely which observations are included in the training set and which observations are included in the validation set.
    • +

    • In the validation approach, only a subset of the observations, those that are included in the training set rather than in the validation set are used to fit the model. Since statistical methods tend to perform worse when trained on fewer observations, this suggests that the validation set error rate may tend to overestimate the test error rate for the model fit on the entire data set.
    • +
    +
    + + +
    +

    Various steps in cross-validation

    + +

    +When the repetitive splitting of the data set is done randomly, +samples may accidently end up in a fast majority of the splits in +either training or test set. Such samples may have an unbalanced +influence on either model building or prediction evaluation. To avoid +this \( k \)-fold cross-validation structures the data splitting. The +samples are divided into \( k \) more or less equally sized exhaustive and +mutually exclusive subsets. In turn (at each split) one of these +subsets plays the role of the test set while the union of the +remaining subsets constitutes the training set. Such a splitting +warrants a balanced representation of each sample in both training and +test set over the splits. Still the division into the \( k \) subsets +involves a degree of randomness. This may be fully excluded when +choosing \( k=n \). This particular case is referred to as leave-one-out +cross-validation (LOOCV). +

    + + +
    +

    How to set up the cross-validation for Ridge and/or Lasso

      -

    1. For \( f(x)=2x \) , \( Ntrain=10 \) and \( \sigma =0 \) (noiseless case), train the three classes of models (linear, third-order polynomial, and tenth order polynomial) for a training set when \( x \in [0,1] \) . Make graphs comparing fits for different order of polynomials. Which model fits the data the best?
    2. -

    3. Do you think that the data that has the least error on the training set will also make the best predictions? Why or why not? Can you try to discuss and formalize your intuition? What can go right and what can go wrong?
    4. -

    5. Check your answer by seeing how well your fits predict newly generated test data (including on data outside the range you fit on, for example \( x \in [0,1.2] \) ) using the code below. How well do you do on points in the range of x where you trained the model? How about points outside the original training data set?
    6. -

    7. Repeat the above for \( f(x)=2x \) , \( Ntrain=10 \) , and \( \sigma=1 \) . What changes?
    8. +

    9. Define a range of interest for the penalty parameter.
    10. +

    11. Divide the data set into training and test set comprising samples \( \{1, \ldots, n\} \setminus i \) and \( \{ i \} \), respectively.
    12. +

    13. Fit the linear regression model by means of ridge estimation for each \( \lambda \) in the grid using the training set as
    -

    +

     
    +$$ +\begin{align*} +\hat{\beta}_{-i}(\lambda) & = ( \hat{X}_{-i, \ast}^{\top} +\hat{X}_{-i, \ast} + \lambda \hat{I}_{pp})^{-1} +\hat{X}_{-i, \ast}^{\top} \hat{y}_{-i} +\end{align*} +$$ +

     
    -Repeat the exercises above for \( f(x)=2x \) , \( Ntrain=100 \) , and \( \sigma=1 \) . What changes? -Summarize what you have learned about the relationship between model complexity (number of parameters), goodness of fit on training data, and the ability to predict well. -

    - - -
    -

    Fitting versus predicting when data is not in the model class

    - -

    -Thus far, we have considered the case where the data is generated using a model contained in the model class. Now consider \( f(x)=2x-10x^5+15x^{10} \) . Notice that the for linear and third-order polynomial the true model \( f(x) \) is not contained in model class. +and the corresponding estimate of the error variance \( \hat{\sigma}_{-i}^2(\lambda) \).

      -

    1. Do better fits lead to better predictions?
    2. -

    3. What is the relationship between the true model for generating the data and the model class that has the most predictive power? How is this related to the model complexity? How does this depend on the number of data points \( Ntrain \) and \( \sigma \)?
    4. +

    5. Evaluate the prediction performance of these models on the test set by \( \log\{L[y_i, \hat{X}_{i, \ast}; \hat{\beta}_{-i}(\lambda), \hat{\sigma}_{-i}^2(\lambda)]\} \). Or, by the prediction error \( |y_i - \hat{X}_{i, \ast} \hat{\beta}_{-i}(\lambda)| \), the relative error, the error squared or the R2 score function.
    6. +

    7. Repeat steps 1) to 3) such that each sample plays the role of the test set once.
    8. +

    9. Average the prediction performances of the test sets at each grid point of the penalty bias/parameter
    -

    +

     
    +$$ +\begin{align*} +\frac{1}{n} \sum_{i = 1}^n \log\{L[Y_i, \mathbf{X}_{i, \ast}; \hat{\beta}_{-i}(\lambda), \hat{\sigma}_{-i}^2(\lambda)]\}. +\end{align*} +$$ +

     
    -Summarize what you think you learned about the relationship of knowing the true model class and predictive power. +The quantity above is called the cross-validated log-likelihood. It is an estimate of the prediction performance of the model corresponding to this value of the penalty parameter on novel data. + +

      +

    1. The value of the penalty parameter that maximizes the cross-validated log-likelihood is the value of choice. Or we can use the MSE or the R2 score functions.
    2. +
    -

    The code

    +

    Predicted Residual Error Sum of Squares

    +
    + +

    +Another approach in the LOOCV scheme is to the use the so-called Predicted Residual Error Sum of Squares (PRESS).

    +We can define the optimal penalty parameter to minimize +

     
    +$$ +\begin{align*} +\lambda_{\mbox{{\tiny opt}}} = \arg \min_{\lambda} \frac{1}{n} \sum_{i=1}^n [y_i - \hat{X}_{i, \ast} \hat{\beta}_{-i}(\lambda)]^2. +\end{align*} +$$ +

     
    - -

    import numpy as np
    -import sklearn as sk
    -from sklearn import datasets, linear_model
    -from sklearn.preprocessing import PolynomialFeatures
    -
    -import matplotlib as mpl
    -from matplotlib import pyplot as plt
    -
    -%matplotlib notebook
    -
    -# The Training Data
    -
    -N_train=100
    -
    -sigma_train=1;
    -
    -# Train on integers
    -x=np.linspace(0.05,0.95,N_train)
    -# Draw random noise
    -s = sigma_train*np.random.randn(N_train)
    -
    -#linear
    -y=2*x+s
    -
    -#Tenth Order
    -#y=2*x-10*x**5+15*x**10+s
    -
    -p1=plt.plot(x,y, "o",ms=15, label='Training')
    -
    -#Linear Regression
    -# Create linear regression object
    -clf = linear_model.LinearRegression()
    -
    -# Train the model using the training sets
    -clf.fit(x[:, np.newaxis], y)
    -# The coefficients
    -
    -xplot=np.linspace(0.02,0.98,200)
    -linear_plot=plt.plot(xplot, clf.predict(xplot[:, np.newaxis]),label='Linear')
    -
    -#Polynomial Regression
    -
    -
    -poly3 = PolynomialFeatures(degree=3)
    -X = poly3.fit_transform(x[:,np.newaxis])
    -clf3 = linear_model.LinearRegression()
    -clf3.fit(X,y)
    -
    -
    -Xplot=poly3.fit_transform(xplot[:,np.newaxis])
    -poly3_plot=plt.plot(xplot, clf3.predict(Xplot), label='Poly 3')
    -
    -
    -
    -#poly5 = PolynomialFeatures(degree=5)
    -#X = poly5.fit_transform(x[:,np.newaxis])
    -#clf5 = linear_model.LinearRegression()
    -#clf5.fit(X,y)
    -
    -#Xplot=poly5.fit_transform(xplot[:,np.newaxis])
    -#plt.plot(xplot, clf5.predict(Xplot), 'r--',linewidth=1)
    -
    -poly10 = PolynomialFeatures(degree=10)
    -X = poly10.fit_transform(x[:,np.newaxis])
    -clf10 = linear_model.LinearRegression()
    -clf10.fit(X,y)
    -
    -Xplot=poly10.fit_transform(xplot[:,np.newaxis])
    -poly10_plot=plt.plot(xplot, clf10.predict(Xplot), label='Poly 10')
    -
    -axes = plt.gca()
    -axes.set_ylim([-7,7])
    -
    -handles, labels=axes.get_legend_handles_labels()
    -plt.legend(handles,labels, loc='lower center')
    -plt.xlabel("$x$")
    -plt.ylabel("$y$")
    -Title="$N=$"+str(N_train)+", $\sigma=$"+str(sigma_train)
    -plt.title(Title+" (train)")
    -plt.tight_layout()
    -plt.show()
    -
    -
    - - -
    -

    Generating test data

    - - -

    # Generate Test Data
    -
    -#Number of test data
    -N_test=20
    -
    -sigma_test=sigma_train
    -
    -max_x=1.2
    -x_test=max_x*np.random.random(N_test)
    -# Draw random noise
    -s_test = sigma_test*np.random.randn(N_test)
    -
    -#Linear
    -y_test=2*x_test+s_test
    -#Tenth order
    -#y_test=2*x_test-10*x_test**5+15*x_test**10+s_test
    -
    -#Make design matrices for prediction
    -x_plot=np.linspace(0,max_x, 200)
    -X3 = poly3.fit_transform(x_plot[:,np.newaxis])
    -X10 = poly10.fit_transform(x_plot[:,np.newaxis])
    -
    -%matplotlib notebook
    -
    -fig = plt.figure() 
    -p1=plt.plot(x_test,y_test.transpose(), 'o', ms=12, label='data')
    -p2=plt.plot(x_plot,clf.predict(x_plot[:,np.newaxis]), label='linear')
    -p3=plt.plot(x_plot,clf3.predict(X3), label='3rd order')
    -p10=plt.plot(x_plot,clf10.predict(X10), label='10th order')
    -
    -
    -plt.legend(loc=2)
    -plt.xlabel('$x$')
    -plt.ylabel('$y$')
    -plt.legend(loc='best')
    -plt.title(Title+" (pred.)")
    -plt.tight_layout()
    -plt.show()
    -
    -#Linear Filename
    -#filename_test=Title+"pred-linear.pdf"
    -#Tenth Order Filename
    -#filename_test=Title+"pred-o10.pdf"
    -#plt.savefig(filename_test)
    -#plt.ylim((-6,12))
    -
    +The LOOCV prediction performance can be +expressed analytically in terms of the known quantities derived from +the design matrix and the parameters \( \beta \). +
    -

    Lasso regression

    -
    +

    Bootstrap

    +
    + +

    +Bootstrapping is a nonparametric approach to statistical inference +that substitutes computation for more traditional distributional +assumptions and asymptotic results. Bootstrapping offers a number of +advantages: +

      +

    1. The bootstrap is quite general, although there are some cases in which it fails.
    2. -
      -

      Logistic regression

      +

    3. Because it does not require distributional assumptions (such as normally distributed errors), the bootstrap can provide more accurate inferences when the data are not well behaved or when the sample size is small.
    4. + +

    5. It is possible to apply the bootstrap to statistics with sampling distributions that are difficult to derive, even asymptotically.
    6. +

    7. It is relatively simple to apply the bootstrap to complex data-collection plans (such as stratified and clustered samples).
    8. +
    +
    diff --git a/doc/pub/Regression/html/Regression-solarized.html b/doc/pub/Regression/html/Regression-solarized.html index 9b2031654..afaf59f99 100644 --- a/doc/pub/Regression/html/Regression-solarized.html +++ b/doc/pub/Regression/html/Regression-solarized.html @@ -130,31 +130,51 @@ div { text-align: justify; text-justify: inter-word; } '___sec32'), ('Expectation value and variance', 2, None, '___sec33'), ('The singular value decompostion', 2, None, '___sec34'), - ('Code examples for Ridge and Lasso Regression', - 2, - None, - '___sec35'), ('From standard regression to Ridge regressions', 2, None, - '___sec36'), - ('Fixing the singularity', 2, None, '___sec37'), - ('A second-order polynomial with Ridge and Lasso', - 2, - None, - '___sec38'), + '___sec35'), + ('Fixing the singularity', 2, None, '___sec36'), ('Fitting vs. predicting when data is in the model class', 2, None, - '___sec39'), + '___sec37'), ('Fitting versus predicting when data is not in the model class', 2, None, - '___sec40'), - ('The code', 2, None, '___sec41'), - ('Generating test data', 2, None, '___sec42'), - ('Lasso regression', 2, None, '___sec43'), - ('Logistic regression', 2, None, '___sec44')]} + '___sec38'), + ('An example code without the model assessment part', + 2, + None, + '___sec39'), + ('Generating test data', 2, None, '___sec40'), + ('How can we effectively evaluate the various models?', + 2, + None, + '___sec41'), + ('Code examples for Ridge and Lasso Regression', + 2, + None, + '___sec42'), + ('A second-order polynomial with Ridge and Lasso', + 2, + None, + '___sec43'), + ('Resampling methods', 2, None, '___sec44'), + ('Resampling approaches can be computationally expensive', + 2, + None, + '___sec45'), + ('Log-likelihood', 2, None, '___sec46'), + ('Cross-validation', 2, None, '___sec47'), + ('Computationally expensive', 2, None, '___sec48'), + ('Various steps in cross-validation', 2, None, '___sec49'), + ('How to set up the cross-validation for Ridge and/or Lasso', + 2, + None, + '___sec50'), + ('Predicted Residual Error Sum of Squares', 2, None, '___sec51'), + ('Bootstrap', 2, None, '___sec52')]} end of tocinfo --> @@ -196,7 +216,7 @@ MathJax.Hub.Config({
    [2] Department of Physics and Astronomy and National Superconducting Cyclotron Laboratory, Michigan State University

    -

    Sep 6, 2018

    +

    Sep 7, 2018












    @@ -1236,7 +1256,275 @@ $$











    -

    Code examples for Ridge and Lasso Regression

    +

    From standard regression to Ridge regressions

    + +

    +One of the typical problems we encounter with linear regression, in particular +when the matrix \( \hat{X} \) (our so-called design matrix) is high-dimensional, +are problems with near singular or singular matrices. The column vectors of \( \hat{X} \) +may be linearly dependent, normally referred to as super-collinearity. +This means that the matrix may be rank deficient and it is basically impossible to +to model the data using linear regression. As an example, consider the matrix +$$ +\begin{align*} +\mathbf{X} & = \left[ +\begin{array}{rrr} +1 & -1 & 2 +\\ +1 & 0 & 1 +\\ +1 & 2 & -1 +\\ +1 & 1 & 0 +\end{array} \right] +\end{align*} +$$ + +

    +The columns of \( \hat{X} \) are linearly dependent. We se this easily since the +the first column is the row-wise sum of the other two columns. The rank (more correct, +the column rank) of a matrix is the dimension of the space spanned by the +column vectors. Hence, the rank of \( \mathbf{X} \) is equal to the number +of linearly independent columns. In this particular case the matrix has rank 2. + +

    +Super-collinearity of an \( (n \times p) \)-dimensional design matrix \( \mathbf{X} \) implies +that the inverse of the matrix \( \hat{X}^T\hat{x} \) (the matrix we needto invert to solve the linear regression equations) is non-invertible. If we have a square matrix that does not have an inverse, we say this matrix singular. The example here demonstrates this +$$ +\begin{align*} +\hat{X} & = \left[ +\begin{array}{rr} +1 & -1 +\\ +1 & -1 +\end{array} \right]. +\end{align*} +$$ + +We see easily that \( \mbox{det}(\hat{X}) = x_{11} x_{22} - x_{12} x_{21} = 1 \times (-1) - 1 \times (-1) = 0 \). Hence, \( \mathbf{X} \) is singular and its inverse is undefined. +This is equivalent to saying that the matrix \( \hat{X} \) has at least an eigenvalue which is zero. + +

    +









    + +

    Fixing the singularity

    + +

    +If our design matrix \( \hat{X} \) which enters the linear regression problem +$$ +\begin{align} +\hat{\beta} & = (\hat{X}^{T} \hat{X})^{-1} \hat{X}^{T} \hat{y}, +\label{_auto1} +\end{align} +$$ + +has linearly dependent column vectors, we will not be able to compute the inverse +of \( \hat{X}^T\hat{X} \) and we cannot find the parameters (estimators) \( \beta_i \). +The estimators are only well-defined if \( (\hat{X}^{T}\hat{X})^{-1} \) exits. +This is more likely to happen when the matrix \( \hat{X} \) is high-dimensional. In this case it is likely to encounter a situation where +the regression parameters \( \beta_i \) cannot be estimated. + +

    +The ad hoc approach which was introduced in the 70s was simply to add a diagonal component to the matrix to invert, that is we change +$$ +\hat{X}^{T} \hat{X} \rightarrow \hat{X}^{T} \hat{X}+\lambda \hat{I}, +$$ + +where \( \hat{I} \) is the identity matrix. + +

    +









    + +

    Fitting vs. predicting when data is in the model class

    + +

    +We start by considering the case +\( f(x)=2x \). + +

    +Then the data is clearly generated by a model that is contained within +all three model classes we are using to make predictions (linear +models, third order polynomials, and tenth order polynomials). + +

    +Run the code for the following cases: + +

      +
    1. For \( f(x)=2x \) , \( Ntrain=10 \) and \( \sigma =0 \) (noiseless case), train the three classes of models (linear, third-order polynomial, and tenth order polynomial) for a training set when \( x \in [0,1] \) . Make graphs comparing fits for different order of polynomials. Which model fits the data the best?
    2. +
    3. Do you think that the data that has the least error on the training set will also make the best predictions? Why or why not? Can you try to discuss and formalize your intuition? What can go right and what can go wrong?
    4. +
    5. Check your answer by seeing how well your fits predict newly generated test data (including on data outside the range you fit on, for example \( x \in [0,1.2] \) ) using the code below. How well do you do on points in the range of x where you trained the model? How about points outside the original training data set?
    6. +
    7. Repeat the above for \( f(x)=2x \) , \( Ntrain=10 \) , and \( \sigma=1 \) . What changes?
    8. +
    + +Repeat the exercises above for \( f(x)=2x \) , \( Ntrain=100 \) , and \( \sigma=1 \) . What changes? +Summarize what you have learned about the relationship between model complexity (number of parameters), goodness of fit on training data, and the ability to predict well. + +

    +









    + +

    Fitting versus predicting when data is not in the model class

    + +

    +Thus far, we have considered the case where the data is generated using a model contained in the model class. Now consider \( f(x)=2x-10x^5+15x^{10} \) . Notice that the for linear and third-order polynomial the true model \( f(x) \) is not contained in model class. + +

      +
    1. Do better fits lead to better predictions?
    2. +
    3. What is the relationship between the true model for generating the data and the model class that has the most predictive power? How is this related to the model complexity? How does this depend on the number of data points \( Ntrain \) and \( \sigma \)?
    4. +
    + +Summarize what you think you learned about the relationship of knowing the true model class and predictive power. + +

    +









    + +

    An example code without the model assessment part

    + +

    + + +

    import numpy as np
    +import sklearn as sk
    +from sklearn import datasets, linear_model
    +from sklearn.preprocessing import PolynomialFeatures
    +
    +import matplotlib as mpl
    +from matplotlib import pyplot as plt
    +
    +%matplotlib notebook
    +
    +# The Training Data
    +
    +N_train=100
    +
    +sigma_train=1;
    +
    +# Train on integers
    +x=np.linspace(0.05,0.95,N_train)
    +# Draw random noise
    +s = sigma_train*np.random.randn(N_train)
    +
    +#linear
    +y=2*x+s
    +
    +#Tenth Order
    +#y=2*x-10*x**5+15*x**10+s
    +
    +p1=plt.plot(x,y, "o",ms=15, label='Training')
    +
    +#Linear Regression
    +# Create linear regression object
    +clf = linear_model.LinearRegression()
    +
    +# Train the model using the training sets
    +clf.fit(x[:, np.newaxis], y)
    +# The coefficients
    +
    +xplot=np.linspace(0.02,0.98,200)
    +linear_plot=plt.plot(xplot, clf.predict(xplot[:, np.newaxis]),label='Linear')
    +
    +#Polynomial Regression
    +
    +
    +poly3 = PolynomialFeatures(degree=3)
    +X = poly3.fit_transform(x[:,np.newaxis])
    +clf3 = linear_model.LinearRegression()
    +clf3.fit(X,y)
    +
    +
    +Xplot=poly3.fit_transform(xplot[:,np.newaxis])
    +poly3_plot=plt.plot(xplot, clf3.predict(Xplot), label='Poly 3')
    +
    +
    +
    +#poly5 = PolynomialFeatures(degree=5)
    +#X = poly5.fit_transform(x[:,np.newaxis])
    +#clf5 = linear_model.LinearRegression()
    +#clf5.fit(X,y)
    +
    +#Xplot=poly5.fit_transform(xplot[:,np.newaxis])
    +#plt.plot(xplot, clf5.predict(Xplot), 'r--',linewidth=1)
    +
    +poly10 = PolynomialFeatures(degree=10)
    +X = poly10.fit_transform(x[:,np.newaxis])
    +clf10 = linear_model.LinearRegression()
    +clf10.fit(X,y)
    +
    +Xplot=poly10.fit_transform(xplot[:,np.newaxis])
    +poly10_plot=plt.plot(xplot, clf10.predict(Xplot), label='Poly 10')
    +
    +axes = plt.gca()
    +axes.set_ylim([-7,7])
    +
    +handles, labels=axes.get_legend_handles_labels()
    +plt.legend(handles,labels, loc='lower center')
    +plt.xlabel("$x$")
    +plt.ylabel("$y$")
    +Title="$N=$"+str(N_train)+", $\sigma=$"+str(sigma_train)
    +plt.title(Title+" (train)")
    +plt.tight_layout()
    +plt.show()
    +
    +

    + + +

    Generating test data

    +

    + + +

    # Generate Test Data
    +
    +#Number of test data
    +N_test=20
    +
    +sigma_test=sigma_train
    +
    +max_x=1.2
    +x_test=max_x*np.random.random(N_test)
    +# Draw random noise
    +s_test = sigma_test*np.random.randn(N_test)
    +
    +#Linear
    +y_test=2*x_test+s_test
    +#Tenth order
    +#y_test=2*x_test-10*x_test**5+15*x_test**10+s_test
    +
    +#Make design matrices for prediction
    +x_plot=np.linspace(0,max_x, 200)
    +X3 = poly3.fit_transform(x_plot[:,np.newaxis])
    +X10 = poly10.fit_transform(x_plot[:,np.newaxis])
    +
    +%matplotlib notebook
    +
    +fig = plt.figure() 
    +p1=plt.plot(x_test,y_test.transpose(), 'o', ms=12, label='data')
    +p2=plt.plot(x_plot,clf.predict(x_plot[:,np.newaxis]), label='linear')
    +p3=plt.plot(x_plot,clf3.predict(X3), label='3rd order')
    +p10=plt.plot(x_plot,clf10.predict(X10), label='10th order')
    +
    +
    +plt.legend(loc=2)
    +plt.xlabel('$x$')
    +plt.ylabel('$y$')
    +plt.legend(loc='best')
    +plt.title(Title+" (pred.)")
    +plt.tight_layout()
    +plt.show()
    +
    +

    +









    + +

    How can we effectively evaluate the various models?

    + +

    +In Ridge regression and the subsequent discussion of its properties +the bias or penalty parameter is considered known or `given'. In +practice, it is unknown and the user needs to make an informed +decision on its value. How do we do that? Much of the same considerations apply to the Lasso method. + +

    +









    + +

    Code examples for Ridge and Lasso Regression

    @@ -1317,86 +1605,7 @@ plt.show()











    -

    From standard regression to Ridge regressions

    - -

    -One of the typical problems we encounter with linear regression, in particular -when the matrix \( \hat{X} \) (our so-called design matrix) is high-dimensional, -are problems with near singular or singular matrices. The column vectors of \( \hat{X} \) -may be linearly dependent, normally referred to as super-collinearity. -This means that the matrix may be rank deficient and it is basically impossible to -to model the data using linear regression. As an example, consider the matrix -$$ -\begin{align*} -\mathbf{X} & = \left[ -\begin{array}{rrr} -1 & -1 & 2 -\\ -1 & 0 & 1 -\\ -1 & 2 & -1 -\\ -1 & 1 & 0 -\end{array} \right] -\end{align*} -$$ - -

    -The columns of \( \hat{X} \) are linearly dependent. We se this easily since the -the first column is the row-wise sum of the other two columns. The rank (more correct, -the column rank) of a matrix is the dimension of the space spanned by the -column vectors. Hence, the rank of \( \mathbf{X} \) is equal to the number -of linearly independent columns. In this particular case the matrix has rank 2. - -

    -Super-collinearity of an \( (n \times p) \)-dimensional design matrix \( \mathbf{X} \) implies -that the inverse of the matrix \( \hat{X}^T\hat{x} \) (the matrix we needto invert to solve the linear regression equations) is non-invertible. If we have a square matrix that does not have an inverse, we say this matrix singular. The example here demonstrates this -$$ -\begin{align*} -\hat{X} & = \left[ -\begin{array}{rr} -1 & -1 -\\ -1 & -1 -\end{array} \right]. -\end{align*} -$$ - -We see easily that \( \mbox{det}(\hat{X}) = x_{11} x_{22} - x_{12} x_{21} = 1 \times (-1) - 1 \times (-1) = 0 \). Hence, \( \mathbf{X} \) is singular and its inverse is undefined. -This is equivalent to saying that the matrix \( \hat{X} \) has at least an eigenvalue which is zero. - -

    -









    - -

    Fixing the singularity

    - -

    -If our design matrix \( \hat{X} \) which enters the linear regression problem -$$ -\begin{align} -\hat{\beta} & = (\hat{X}^{T} \hat{X})^{-1} \hat{X}^{T} \hat{y}, -\label{_auto1} -\end{align} -$$ - -has linearly dependent column vectors, we will not be able to compute the inverse -of \( \hat{X}^T\hat{X} \) and we cannot find the parameters (estimators) \( \beta_i \). -The estimators are only well-defined if \( (\hat{X}^{T}\hat{X})^{-1} \) exits. -This is more likely to happen when the matrix \( \hat{X} \) is high-dimensional. In this case it is likely to encounter a situation where -the regression parameters \( \beta_i \) cannot be estimated. - -

    -The ad hoc approach which was introduced in the 70s was simply to add a diagonal component to the matrix to invert, that is we change -$$ -\hat{X}^{T} \hat{X} \rightarrow \hat{X}^{T} \hat{X}+\lambda \hat{I}, -$$ - -where \( \hat{I} \) is the identity matrix. - -

    -









    - -

    A second-order polynomial with Ridge and Lasso

    +

    A second-order polynomial with Ridge and Lasso

    @@ -1510,197 +1719,227 @@ plt.show()











    -

    Fitting vs. predicting when data is in the model class

    - +

    Resampling methods

    +
    +

    -We start by considering the case -\( f(x)=2x \). +Resampling methods are an indispensable tool in modern +statistics. They involve repeatedly drawing samples from a training +set and refitting a model of interest on each sample in order to +obtain additional information about the fitted model. For example, in +order to estimate the variability of a linear regression fit, we can +repeatedly draw different samples from the training data, fit a linear +regression to each new sample, and then examine the extent to which +the resulting fits differ. Such an approach may allow us to obtain +information that would not be available from fitting the model only +once using the original training sample. +

    -

    -Then the data is clearly generated by a model that is contained within -all three model classes we are using to make predictions (linear -models, third order polynomials, and tenth order polynomials). - -

    -Run the code for the following cases: - -

      -
    1. For \( f(x)=2x \) , \( Ntrain=10 \) and \( \sigma =0 \) (noiseless case), train the three classes of models (linear, third-order polynomial, and tenth order polynomial) for a training set when \( x \in [0,1] \) . Make graphs comparing fits for different order of polynomials. Which model fits the data the best?
    2. -
    3. Do you think that the data that has the least error on the training set will also make the best predictions? Why or why not? Can you try to discuss and formalize your intuition? What can go right and what can go wrong?
    4. -
    5. Check your answer by seeing how well your fits predict newly generated test data (including on data outside the range you fit on, for example \( x \in [0,1.2] \) ) using the code below. How well do you do on points in the range of x where you trained the model? How about points outside the original training data set?
    6. -
    7. Repeat the above for \( f(x)=2x \) , \( Ntrain=10 \) , and \( \sigma=1 \) . What changes?
    8. -
    - -Repeat the exercises above for \( f(x)=2x \) , \( Ntrain=100 \) , and \( \sigma=1 \) . What changes? -Summarize what you have learned about the relationship between model complexity (number of parameters), goodness of fit on training data, and the ability to predict well.











    -

    Fitting versus predicting when data is not in the model class

    - +

    Resampling approaches can be computationally expensive

    +
    +

    -Thus far, we have considered the case where the data is generated using a model contained in the model class. Now consider \( f(x)=2x-10x^5+15x^{10} \) . Notice that the for linear and third-order polynomial the true model \( f(x) \) is not contained in model class. +Resampling approaches can be computationally expensive, because they +involve fitting the same statistical method multiple times using +different subsets of the training data. However, due to recent +advances in computing power, the computational requirements of +resampling methods generally are not prohibitive. In this chapter, we +discuss two of the most commonly used resampling methods, +cross-validation and the bootstrap. Both methods are important tools +in the practical application of many statistical learning +procedures. For example, cross-validation can be used to estimate the +test error associated with a given statistical learning method in +order to evaluate its performance, or to select the appropriate level +of flexibility. The process of evaluating a model’s performance is +known as model assessment, whereas the process of selecting the proper +level of flexibility for a model is known as model selection. The +bootstrap is widely used. +

    -
      -
    1. Do better fits lead to better predictions?
    2. -
    3. What is the relationship between the true model for generating the data and the model class that has the most predictive power? How is this related to the model complexity? How does this depend on the number of data points \( Ntrain \) and \( \sigma \)?
    4. -
    - -Summarize what you think you learned about the relationship of knowing the true model class and predictive power.











    -

    The code

    +

    Log-likelihood

    +A popular strategy is to choose a penalty parameter that yields a good +but parsimonious model. Information criteria measure the balance +between model fit and model complexity. One possibility is Aikaike's +information criterion (AIC). +The AIC measures model fit by the log-likelihood +and model complexity is measured by the number of parameters used by +the model. The number of model parameters in regular regression simply +corresponds to the number of covariates in the model. Or, by the +degrees of freedom consumed by the model, which is equivalent to the +trace of the hat matrix. For ridge regression it thus seems natural to +define model complexity analogously by the trace of the ridge hat +matrix. This yields the AIC for the linear regression model with ridge +estimates: - -

    import numpy as np
    -import sklearn as sk
    -from sklearn import datasets, linear_model
    -from sklearn.preprocessing import PolynomialFeatures
    +$$
    +\begin{align*}
    +\mbox{AIC}(\lambda) & =  2 \, p - 2 \log(\hat{L})
    +\\
    +& =  2 \, \mbox{tr} [\mathbf{H}(\lambda)] - 2 \log\{L[\hat{\beta}(\lambda), \hat{\sigma}^2(\lambda)]\}
    +\\
    +& =  2 \, \sum_{j=1}^p \frac{d_{jj}^2}{d_{jj}^2 + \lambda}
    ++ 2 n \, \log[\sqrt{2 \, \pi} \, \hat{\sigma}(\lambda)] +  \frac{1}{\hat{\sigma}^2(\lambda)} \sum_{i=1}^n [y_i - \mathbf{X}_{i, \ast} \, \hat{\beta}(\lambda)]^2.
    +\end{align*}
    +$$
     
    -import matplotlib as mpl
    -from matplotlib import pyplot as plt
    +The value of \( \lambda \) which minimizes \( \mbox{AIC}(\lambda) \) corresponds to the `optimal' balance of model complexity and overfitting.
     
    -%matplotlib notebook
    -
    -# The Training Data
    -
    -N_train=100
    -
    -sigma_train=1;
    -
    -# Train on integers
    -x=np.linspace(0.05,0.95,N_train)
    -# Draw random noise
    -s = sigma_train*np.random.randn(N_train)
    -
    -#linear
    -y=2*x+s
    -
    -#Tenth Order
    -#y=2*x-10*x**5+15*x**10+s
    -
    -p1=plt.plot(x,y, "o",ms=15, label='Training')
    -
    -#Linear Regression
    -# Create linear regression object
    -clf = linear_model.LinearRegression()
    -
    -# Train the model using the training sets
    -clf.fit(x[:, np.newaxis], y)
    -# The coefficients
    -
    -xplot=np.linspace(0.02,0.98,200)
    -linear_plot=plt.plot(xplot, clf.predict(xplot[:, np.newaxis]),label='Linear')
    -
    -#Polynomial Regression
    -
    -
    -poly3 = PolynomialFeatures(degree=3)
    -X = poly3.fit_transform(x[:,np.newaxis])
    -clf3 = linear_model.LinearRegression()
    -clf3.fit(X,y)
    -
    -
    -Xplot=poly3.fit_transform(xplot[:,np.newaxis])
    -poly3_plot=plt.plot(xplot, clf3.predict(Xplot), label='Poly 3')
    -
    -
    -
    -#poly5 = PolynomialFeatures(degree=5)
    -#X = poly5.fit_transform(x[:,np.newaxis])
    -#clf5 = linear_model.LinearRegression()
    -#clf5.fit(X,y)
    -
    -#Xplot=poly5.fit_transform(xplot[:,np.newaxis])
    -#plt.plot(xplot, clf5.predict(Xplot), 'r--',linewidth=1)
    -
    -poly10 = PolynomialFeatures(degree=10)
    -X = poly10.fit_transform(x[:,np.newaxis])
    -clf10 = linear_model.LinearRegression()
    -clf10.fit(X,y)
    -
    -Xplot=poly10.fit_transform(xplot[:,np.newaxis])
    -poly10_plot=plt.plot(xplot, clf10.predict(Xplot), label='Poly 10')
    -
    -axes = plt.gca()
    -axes.set_ylim([-7,7])
    -
    -handles, labels=axes.get_legend_handles_labels()
    -plt.legend(handles,labels, loc='lower center')
    -plt.xlabel("$x$")
    -plt.ylabel("$y$")
    -Title="$N=$"+str(N_train)+", $\sigma=$"+str(sigma_train)
    -plt.title(Title+" (train)")
    -plt.tight_layout()
    -plt.show()
    -

    -

    Generating test data

    +

    Cross-validation

    +

    - - -

    # Generate Test Data
    -
    -#Number of test data
    -N_test=20
    -
    -sigma_test=sigma_train
    -
    -max_x=1.2
    -x_test=max_x*np.random.random(N_test)
    -# Draw random noise
    -s_test = sigma_test*np.random.randn(N_test)
    -
    -#Linear
    -y_test=2*x_test+s_test
    -#Tenth order
    -#y_test=2*x_test-10*x_test**5+15*x_test**10+s_test
    -
    -#Make design matrices for prediction
    -x_plot=np.linspace(0,max_x, 200)
    -X3 = poly3.fit_transform(x_plot[:,np.newaxis])
    -X10 = poly10.fit_transform(x_plot[:,np.newaxis])
    -
    -%matplotlib notebook
    -
    -fig = plt.figure() 
    -p1=plt.plot(x_test,y_test.transpose(), 'o', ms=12, label='data')
    -p2=plt.plot(x_plot,clf.predict(x_plot[:,np.newaxis]), label='linear')
    -p3=plt.plot(x_plot,clf3.predict(X3), label='3rd order')
    -p10=plt.plot(x_plot,clf10.predict(X10), label='10th order')
    -
    -
    -plt.legend(loc=2)
    -plt.xlabel('$x$')
    -plt.ylabel('$y$')
    -plt.legend(loc='best')
    -plt.title(Title+" (pred.)")
    -plt.tight_layout()
    -plt.show()
    -
    -#Linear Filename
    -#filename_test=Title+"pred-linear.pdf"
    -#Tenth Order Filename
    -#filename_test=Title+"pred-o10.pdf"
    -#plt.savefig(filename_test)
    -#plt.ylim((-6,12))
    -
    -

    -









    - -

    Lasso regression

    +Instead of choosing the penalty parameter to balance model fit with +model complexity, cross-validation requires it (i.e. the penalty +parameter) to yield a model with good prediction +performance. Commonly, this performance is evaluated on novel +data. Novel data need not be easy to come by and one has to make do +with the data at hand. The setting of `original' and novel data is +then mimicked by sample splitting: the data set is divided into two +(groups of samples). One of these two data sets, called the training +set, plays the role of `original' data on which the model is +built. The second of these data sets, called the test set, plays the +role of the `novel' data and is used to evaluate the prediction +performance (often operationalized as the log-likelihood or the +prediction error or its square or the R2 score) of the model built on the training data set. This +procedure (model building and prediction evaluation on training and +test set, respectively) is done for a collection of possible penalty +parameter choices. The penalty parameter that yields the model with +the best prediction performance is to be preferred. The thus obtained +performance evaluation depends on the actual split of the data set. To +remove this dependence the data set is split many times into a +training and test set. For each split the model parameters are +estimated for all choices of \( \lambda \) using the training data and +estimated parameters are evaluated on the corresponding test set. The +penalty parameter that on average over the test sets performs best (in +some sense) is then selected.











    -

    Logistic regression

    +

    Computationally expensive

    + +

    +The validation set approach is conceptually simple and is easy to implement. But it has two potential drawbacks: + +

    + + + +

    Various steps in cross-validation

    + +

    +When the repetitive splitting of the data set is done randomly, +samples may accidently end up in a fast majority of the splits in +either training or test set. Such samples may have an unbalanced +influence on either model building or prediction evaluation. To avoid +this \( k \)-fold cross-validation structures the data splitting. The +samples are divided into \( k \) more or less equally sized exhaustive and +mutually exclusive subsets. In turn (at each split) one of these +subsets plays the role of the test set while the union of the +remaining subsets constitutes the training set. Such a splitting +warrants a balanced representation of each sample in both training and +test set over the splits. Still the division into the \( k \) subsets +involves a degree of randomness. This may be fully excluded when +choosing \( k=n \). This particular case is referred to as leave-one-out +cross-validation (LOOCV). + +

    + + +

    How to set up the cross-validation for Ridge and/or Lasso

    + +
      +
    1. Define a range of interest for the penalty parameter.
    2. +
    3. Divide the data set into training and test set comprising samples \( \{1, \ldots, n\} \setminus i \) and \( \{ i \} \), respectively.
    4. +
    5. Fit the linear regression model by means of ridge estimation for each \( \lambda \) in the grid using the training set as
    6. +
    + +$$ +\begin{align*} +\hat{\beta}_{-i}(\lambda) & = ( \hat{X}_{-i, \ast}^{\top} +\hat{X}_{-i, \ast} + \lambda \hat{I}_{pp})^{-1} +\hat{X}_{-i, \ast}^{\top} \hat{y}_{-i} +\end{align*} +$$ + +and the corresponding estimate of the error variance \( \hat{\sigma}_{-i}^2(\lambda) \). + +
      +
    1. Evaluate the prediction performance of these models on the test set by \( \log\{L[y_i, \hat{X}_{i, \ast}; \hat{\beta}_{-i}(\lambda), \hat{\sigma}_{-i}^2(\lambda)]\} \). Or, by the prediction error \( |y_i - \hat{X}_{i, \ast} \hat{\beta}_{-i}(\lambda)| \), the relative error, the error squared or the R2 score function.
    2. +
    3. Repeat steps 1) to 3) such that each sample plays the role of the test set once.
    4. +
    5. Average the prediction performances of the test sets at each grid point of the penalty bias/parameter
    6. +
    + +$$ +\begin{align*} +\frac{1}{n} \sum_{i = 1}^n \log\{L[Y_i, \mathbf{X}_{i, \ast}; \hat{\beta}_{-i}(\lambda), \hat{\sigma}_{-i}^2(\lambda)]\}. +\end{align*} +$$ + +The quantity above is called the cross-validated log-likelihood. It is an estimate of the prediction performance of the model corresponding to this value of the penalty parameter on novel data. + +
      +
    1. The value of the penalty parameter that maximizes the cross-validated log-likelihood is the value of choice. Or we can use the MSE or the R2 score functions.
    2. +
    + +









    + +

    Predicted Residual Error Sum of Squares

    +
    + +

    +Another approach in the LOOCV scheme is to the use the so-called Predicted Residual Error Sum of Squares (PRESS). + +

    +We can define the optimal penalty parameter to minimize +$$ +\begin{align*} +\lambda_{\mbox{{\tiny opt}}} = \arg \min_{\lambda} \frac{1}{n} \sum_{i=1}^n [y_i - \hat{X}_{i, \ast} \hat{\beta}_{-i}(\lambda)]^2. +\end{align*} +$$ + +

    +The LOOCV prediction performance can be +expressed analytically in terms of the known quantities derived from +the design matrix and the parameters \( \beta \). +

    + + +

    +









    + +

    Bootstrap

    +
    + +

    +Bootstrapping is a nonparametric approach to statistical inference +that substitutes computation for more traditional distributional +assumptions and asymptotic results. Bootstrapping offers a number of +advantages: + +

      +
    1. The bootstrap is quite general, although there are some cases in which it fails.
    2. +
    3. Because it does not require distributional assumptions (such as normally distributed errors), the bootstrap can provide more accurate inferences when the data are not well behaved or when the sample size is small.
    4. +
    5. It is possible to apply the bootstrap to statistics with sampling distributions that are difficult to derive, even asymptotically.
    6. +
    7. It is relatively simple to apply the bootstrap to complex data-collection plans (such as stratified and clustered samples).
    8. +
    +
    + diff --git a/doc/pub/Regression/html/Regression.html b/doc/pub/Regression/html/Regression.html index fd86d2474..366f94425 100644 --- a/doc/pub/Regression/html/Regression.html +++ b/doc/pub/Regression/html/Regression.html @@ -135,31 +135,51 @@ div { text-align: justify; text-justify: inter-word; } '___sec32'), ('Expectation value and variance', 2, None, '___sec33'), ('The singular value decompostion', 2, None, '___sec34'), - ('Code examples for Ridge and Lasso Regression', - 2, - None, - '___sec35'), ('From standard regression to Ridge regressions', 2, None, - '___sec36'), - ('Fixing the singularity', 2, None, '___sec37'), - ('A second-order polynomial with Ridge and Lasso', - 2, - None, - '___sec38'), + '___sec35'), + ('Fixing the singularity', 2, None, '___sec36'), ('Fitting vs. predicting when data is in the model class', 2, None, - '___sec39'), + '___sec37'), ('Fitting versus predicting when data is not in the model class', 2, None, - '___sec40'), - ('The code', 2, None, '___sec41'), - ('Generating test data', 2, None, '___sec42'), - ('Lasso regression', 2, None, '___sec43'), - ('Logistic regression', 2, None, '___sec44')]} + '___sec38'), + ('An example code without the model assessment part', + 2, + None, + '___sec39'), + ('Generating test data', 2, None, '___sec40'), + ('How can we effectively evaluate the various models?', + 2, + None, + '___sec41'), + ('Code examples for Ridge and Lasso Regression', + 2, + None, + '___sec42'), + ('A second-order polynomial with Ridge and Lasso', + 2, + None, + '___sec43'), + ('Resampling methods', 2, None, '___sec44'), + ('Resampling approaches can be computationally expensive', + 2, + None, + '___sec45'), + ('Log-likelihood', 2, None, '___sec46'), + ('Cross-validation', 2, None, '___sec47'), + ('Computationally expensive', 2, None, '___sec48'), + ('Various steps in cross-validation', 2, None, '___sec49'), + ('How to set up the cross-validation for Ridge and/or Lasso', + 2, + None, + '___sec50'), + ('Predicted Residual Error Sum of Squares', 2, None, '___sec51'), + ('Bootstrap', 2, None, '___sec52')]} end of tocinfo --> @@ -201,7 +221,7 @@ MathJax.Hub.Config({
    [2] Department of Physics and Astronomy and National Superconducting Cyclotron Laboratory, Michigan State University

    -

    Sep 6, 2018

    +

    Sep 7, 2018












    @@ -1241,7 +1261,275 @@ $$











    -

    Code examples for Ridge and Lasso Regression

    +

    From standard regression to Ridge regressions

    + +

    +One of the typical problems we encounter with linear regression, in particular +when the matrix \( \hat{X} \) (our so-called design matrix) is high-dimensional, +are problems with near singular or singular matrices. The column vectors of \( \hat{X} \) +may be linearly dependent, normally referred to as super-collinearity. +This means that the matrix may be rank deficient and it is basically impossible to +to model the data using linear regression. As an example, consider the matrix +$$ +\begin{align*} +\mathbf{X} & = \left[ +\begin{array}{rrr} +1 & -1 & 2 +\\ +1 & 0 & 1 +\\ +1 & 2 & -1 +\\ +1 & 1 & 0 +\end{array} \right] +\end{align*} +$$ + +

    +The columns of \( \hat{X} \) are linearly dependent. We se this easily since the +the first column is the row-wise sum of the other two columns. The rank (more correct, +the column rank) of a matrix is the dimension of the space spanned by the +column vectors. Hence, the rank of \( \mathbf{X} \) is equal to the number +of linearly independent columns. In this particular case the matrix has rank 2. + +

    +Super-collinearity of an \( (n \times p) \)-dimensional design matrix \( \mathbf{X} \) implies +that the inverse of the matrix \( \hat{X}^T\hat{x} \) (the matrix we needto invert to solve the linear regression equations) is non-invertible. If we have a square matrix that does not have an inverse, we say this matrix singular. The example here demonstrates this +$$ +\begin{align*} +\hat{X} & = \left[ +\begin{array}{rr} +1 & -1 +\\ +1 & -1 +\end{array} \right]. +\end{align*} +$$ + +We see easily that \( \mbox{det}(\hat{X}) = x_{11} x_{22} - x_{12} x_{21} = 1 \times (-1) - 1 \times (-1) = 0 \). Hence, \( \mathbf{X} \) is singular and its inverse is undefined. +This is equivalent to saying that the matrix \( \hat{X} \) has at least an eigenvalue which is zero. + +

    +









    + +

    Fixing the singularity

    + +

    +If our design matrix \( \hat{X} \) which enters the linear regression problem +$$ +\begin{align} +\hat{\beta} & = (\hat{X}^{T} \hat{X})^{-1} \hat{X}^{T} \hat{y}, +\label{_auto1} +\end{align} +$$ + +has linearly dependent column vectors, we will not be able to compute the inverse +of \( \hat{X}^T\hat{X} \) and we cannot find the parameters (estimators) \( \beta_i \). +The estimators are only well-defined if \( (\hat{X}^{T}\hat{X})^{-1} \) exits. +This is more likely to happen when the matrix \( \hat{X} \) is high-dimensional. In this case it is likely to encounter a situation where +the regression parameters \( \beta_i \) cannot be estimated. + +

    +The ad hoc approach which was introduced in the 70s was simply to add a diagonal component to the matrix to invert, that is we change +$$ +\hat{X}^{T} \hat{X} \rightarrow \hat{X}^{T} \hat{X}+\lambda \hat{I}, +$$ + +where \( \hat{I} \) is the identity matrix. + +

    +









    + +

    Fitting vs. predicting when data is in the model class

    + +

    +We start by considering the case +\( f(x)=2x \). + +

    +Then the data is clearly generated by a model that is contained within +all three model classes we are using to make predictions (linear +models, third order polynomials, and tenth order polynomials). + +

    +Run the code for the following cases: + +

      +
    1. For \( f(x)=2x \) , \( Ntrain=10 \) and \( \sigma =0 \) (noiseless case), train the three classes of models (linear, third-order polynomial, and tenth order polynomial) for a training set when \( x \in [0,1] \) . Make graphs comparing fits for different order of polynomials. Which model fits the data the best?
    2. +
    3. Do you think that the data that has the least error on the training set will also make the best predictions? Why or why not? Can you try to discuss and formalize your intuition? What can go right and what can go wrong?
    4. +
    5. Check your answer by seeing how well your fits predict newly generated test data (including on data outside the range you fit on, for example \( x \in [0,1.2] \) ) using the code below. How well do you do on points in the range of x where you trained the model? How about points outside the original training data set?
    6. +
    7. Repeat the above for \( f(x)=2x \) , \( Ntrain=10 \) , and \( \sigma=1 \) . What changes?
    8. +
    + +Repeat the exercises above for \( f(x)=2x \) , \( Ntrain=100 \) , and \( \sigma=1 \) . What changes? +Summarize what you have learned about the relationship between model complexity (number of parameters), goodness of fit on training data, and the ability to predict well. + +

    +









    + +

    Fitting versus predicting when data is not in the model class

    + +

    +Thus far, we have considered the case where the data is generated using a model contained in the model class. Now consider \( f(x)=2x-10x^5+15x^{10} \) . Notice that the for linear and third-order polynomial the true model \( f(x) \) is not contained in model class. + +

      +
    1. Do better fits lead to better predictions?
    2. +
    3. What is the relationship between the true model for generating the data and the model class that has the most predictive power? How is this related to the model complexity? How does this depend on the number of data points \( Ntrain \) and \( \sigma \)?
    4. +
    + +Summarize what you think you learned about the relationship of knowing the true model class and predictive power. + +

    +









    + +

    An example code without the model assessment part

    + +

    + + +

    import numpy as np
    +import sklearn as sk
    +from sklearn import datasets, linear_model
    +from sklearn.preprocessing import PolynomialFeatures
    +
    +import matplotlib as mpl
    +from matplotlib import pyplot as plt
    +
    +%matplotlib notebook
    +
    +# The Training Data
    +
    +N_train=100
    +
    +sigma_train=1;
    +
    +# Train on integers
    +x=np.linspace(0.05,0.95,N_train)
    +# Draw random noise
    +s = sigma_train*np.random.randn(N_train)
    +
    +#linear
    +y=2*x+s
    +
    +#Tenth Order
    +#y=2*x-10*x**5+15*x**10+s
    +
    +p1=plt.plot(x,y, "o",ms=15, label='Training')
    +
    +#Linear Regression
    +# Create linear regression object
    +clf = linear_model.LinearRegression()
    +
    +# Train the model using the training sets
    +clf.fit(x[:, np.newaxis], y)
    +# The coefficients
    +
    +xplot=np.linspace(0.02,0.98,200)
    +linear_plot=plt.plot(xplot, clf.predict(xplot[:, np.newaxis]),label='Linear')
    +
    +#Polynomial Regression
    +
    +
    +poly3 = PolynomialFeatures(degree=3)
    +X = poly3.fit_transform(x[:,np.newaxis])
    +clf3 = linear_model.LinearRegression()
    +clf3.fit(X,y)
    +
    +
    +Xplot=poly3.fit_transform(xplot[:,np.newaxis])
    +poly3_plot=plt.plot(xplot, clf3.predict(Xplot), label='Poly 3')
    +
    +
    +
    +#poly5 = PolynomialFeatures(degree=5)
    +#X = poly5.fit_transform(x[:,np.newaxis])
    +#clf5 = linear_model.LinearRegression()
    +#clf5.fit(X,y)
    +
    +#Xplot=poly5.fit_transform(xplot[:,np.newaxis])
    +#plt.plot(xplot, clf5.predict(Xplot), 'r--',linewidth=1)
    +
    +poly10 = PolynomialFeatures(degree=10)
    +X = poly10.fit_transform(x[:,np.newaxis])
    +clf10 = linear_model.LinearRegression()
    +clf10.fit(X,y)
    +
    +Xplot=poly10.fit_transform(xplot[:,np.newaxis])
    +poly10_plot=plt.plot(xplot, clf10.predict(Xplot), label='Poly 10')
    +
    +axes = plt.gca()
    +axes.set_ylim([-7,7])
    +
    +handles, labels=axes.get_legend_handles_labels()
    +plt.legend(handles,labels, loc='lower center')
    +plt.xlabel("$x$")
    +plt.ylabel("$y$")
    +Title="$N=$"+str(N_train)+", $\sigma=$"+str(sigma_train)
    +plt.title(Title+" (train)")
    +plt.tight_layout()
    +plt.show()
    +
    +

    + + +

    Generating test data

    +

    + + +

    # Generate Test Data
    +
    +#Number of test data
    +N_test=20
    +
    +sigma_test=sigma_train
    +
    +max_x=1.2
    +x_test=max_x*np.random.random(N_test)
    +# Draw random noise
    +s_test = sigma_test*np.random.randn(N_test)
    +
    +#Linear
    +y_test=2*x_test+s_test
    +#Tenth order
    +#y_test=2*x_test-10*x_test**5+15*x_test**10+s_test
    +
    +#Make design matrices for prediction
    +x_plot=np.linspace(0,max_x, 200)
    +X3 = poly3.fit_transform(x_plot[:,np.newaxis])
    +X10 = poly10.fit_transform(x_plot[:,np.newaxis])
    +
    +%matplotlib notebook
    +
    +fig = plt.figure() 
    +p1=plt.plot(x_test,y_test.transpose(), 'o', ms=12, label='data')
    +p2=plt.plot(x_plot,clf.predict(x_plot[:,np.newaxis]), label='linear')
    +p3=plt.plot(x_plot,clf3.predict(X3), label='3rd order')
    +p10=plt.plot(x_plot,clf10.predict(X10), label='10th order')
    +
    +
    +plt.legend(loc=2)
    +plt.xlabel('$x$')
    +plt.ylabel('$y$')
    +plt.legend(loc='best')
    +plt.title(Title+" (pred.)")
    +plt.tight_layout()
    +plt.show()
    +
    +

    +









    + +

    How can we effectively evaluate the various models?

    + +

    +In Ridge regression and the subsequent discussion of its properties +the bias or penalty parameter is considered known or `given'. In +practice, it is unknown and the user needs to make an informed +decision on its value. How do we do that? Much of the same considerations apply to the Lasso method. + +

    +









    + +

    Code examples for Ridge and Lasso Regression

    @@ -1322,86 +1610,7 @@ plt.show()











    -

    From standard regression to Ridge regressions

    - -

    -One of the typical problems we encounter with linear regression, in particular -when the matrix \( \hat{X} \) (our so-called design matrix) is high-dimensional, -are problems with near singular or singular matrices. The column vectors of \( \hat{X} \) -may be linearly dependent, normally referred to as super-collinearity. -This means that the matrix may be rank deficient and it is basically impossible to -to model the data using linear regression. As an example, consider the matrix -$$ -\begin{align*} -\mathbf{X} & = \left[ -\begin{array}{rrr} -1 & -1 & 2 -\\ -1 & 0 & 1 -\\ -1 & 2 & -1 -\\ -1 & 1 & 0 -\end{array} \right] -\end{align*} -$$ - -

    -The columns of \( \hat{X} \) are linearly dependent. We se this easily since the -the first column is the row-wise sum of the other two columns. The rank (more correct, -the column rank) of a matrix is the dimension of the space spanned by the -column vectors. Hence, the rank of \( \mathbf{X} \) is equal to the number -of linearly independent columns. In this particular case the matrix has rank 2. - -

    -Super-collinearity of an \( (n \times p) \)-dimensional design matrix \( \mathbf{X} \) implies -that the inverse of the matrix \( \hat{X}^T\hat{x} \) (the matrix we needto invert to solve the linear regression equations) is non-invertible. If we have a square matrix that does not have an inverse, we say this matrix singular. The example here demonstrates this -$$ -\begin{align*} -\hat{X} & = \left[ -\begin{array}{rr} -1 & -1 -\\ -1 & -1 -\end{array} \right]. -\end{align*} -$$ - -We see easily that \( \mbox{det}(\hat{X}) = x_{11} x_{22} - x_{12} x_{21} = 1 \times (-1) - 1 \times (-1) = 0 \). Hence, \( \mathbf{X} \) is singular and its inverse is undefined. -This is equivalent to saying that the matrix \( \hat{X} \) has at least an eigenvalue which is zero. - -

    -









    - -

    Fixing the singularity

    - -

    -If our design matrix \( \hat{X} \) which enters the linear regression problem -$$ -\begin{align} -\hat{\beta} & = (\hat{X}^{T} \hat{X})^{-1} \hat{X}^{T} \hat{y}, -\label{_auto1} -\end{align} -$$ - -has linearly dependent column vectors, we will not be able to compute the inverse -of \( \hat{X}^T\hat{X} \) and we cannot find the parameters (estimators) \( \beta_i \). -The estimators are only well-defined if \( (\hat{X}^{T}\hat{X})^{-1} \) exits. -This is more likely to happen when the matrix \( \hat{X} \) is high-dimensional. In this case it is likely to encounter a situation where -the regression parameters \( \beta_i \) cannot be estimated. - -

    -The ad hoc approach which was introduced in the 70s was simply to add a diagonal component to the matrix to invert, that is we change -$$ -\hat{X}^{T} \hat{X} \rightarrow \hat{X}^{T} \hat{X}+\lambda \hat{I}, -$$ - -where \( \hat{I} \) is the identity matrix. - -

    -









    - -

    A second-order polynomial with Ridge and Lasso

    +

    A second-order polynomial with Ridge and Lasso

    @@ -1515,197 +1724,227 @@ plt.show()











    -

    Fitting vs. predicting when data is in the model class

    - +

    Resampling methods

    +
    +

    -We start by considering the case -\( f(x)=2x \). +Resampling methods are an indispensable tool in modern +statistics. They involve repeatedly drawing samples from a training +set and refitting a model of interest on each sample in order to +obtain additional information about the fitted model. For example, in +order to estimate the variability of a linear regression fit, we can +repeatedly draw different samples from the training data, fit a linear +regression to each new sample, and then examine the extent to which +the resulting fits differ. Such an approach may allow us to obtain +information that would not be available from fitting the model only +once using the original training sample. +

    -

    -Then the data is clearly generated by a model that is contained within -all three model classes we are using to make predictions (linear -models, third order polynomials, and tenth order polynomials). - -

    -Run the code for the following cases: - -

      -
    1. For \( f(x)=2x \) , \( Ntrain=10 \) and \( \sigma =0 \) (noiseless case), train the three classes of models (linear, third-order polynomial, and tenth order polynomial) for a training set when \( x \in [0,1] \) . Make graphs comparing fits for different order of polynomials. Which model fits the data the best?
    2. -
    3. Do you think that the data that has the least error on the training set will also make the best predictions? Why or why not? Can you try to discuss and formalize your intuition? What can go right and what can go wrong?
    4. -
    5. Check your answer by seeing how well your fits predict newly generated test data (including on data outside the range you fit on, for example \( x \in [0,1.2] \) ) using the code below. How well do you do on points in the range of x where you trained the model? How about points outside the original training data set?
    6. -
    7. Repeat the above for \( f(x)=2x \) , \( Ntrain=10 \) , and \( \sigma=1 \) . What changes?
    8. -
    - -Repeat the exercises above for \( f(x)=2x \) , \( Ntrain=100 \) , and \( \sigma=1 \) . What changes? -Summarize what you have learned about the relationship between model complexity (number of parameters), goodness of fit on training data, and the ability to predict well.











    -

    Fitting versus predicting when data is not in the model class

    - +

    Resampling approaches can be computationally expensive

    +
    +

    -Thus far, we have considered the case where the data is generated using a model contained in the model class. Now consider \( f(x)=2x-10x^5+15x^{10} \) . Notice that the for linear and third-order polynomial the true model \( f(x) \) is not contained in model class. +Resampling approaches can be computationally expensive, because they +involve fitting the same statistical method multiple times using +different subsets of the training data. However, due to recent +advances in computing power, the computational requirements of +resampling methods generally are not prohibitive. In this chapter, we +discuss two of the most commonly used resampling methods, +cross-validation and the bootstrap. Both methods are important tools +in the practical application of many statistical learning +procedures. For example, cross-validation can be used to estimate the +test error associated with a given statistical learning method in +order to evaluate its performance, or to select the appropriate level +of flexibility. The process of evaluating a model’s performance is +known as model assessment, whereas the process of selecting the proper +level of flexibility for a model is known as model selection. The +bootstrap is widely used. +

    -
      -
    1. Do better fits lead to better predictions?
    2. -
    3. What is the relationship between the true model for generating the data and the model class that has the most predictive power? How is this related to the model complexity? How does this depend on the number of data points \( Ntrain \) and \( \sigma \)?
    4. -
    - -Summarize what you think you learned about the relationship of knowing the true model class and predictive power.











    -

    The code

    +

    Log-likelihood

    +A popular strategy is to choose a penalty parameter that yields a good +but parsimonious model. Information criteria measure the balance +between model fit and model complexity. One possibility is Aikaike's +information criterion (AIC). +The AIC measures model fit by the log-likelihood +and model complexity is measured by the number of parameters used by +the model. The number of model parameters in regular regression simply +corresponds to the number of covariates in the model. Or, by the +degrees of freedom consumed by the model, which is equivalent to the +trace of the hat matrix. For ridge regression it thus seems natural to +define model complexity analogously by the trace of the ridge hat +matrix. This yields the AIC for the linear regression model with ridge +estimates: - -

    import numpy as np
    -import sklearn as sk
    -from sklearn import datasets, linear_model
    -from sklearn.preprocessing import PolynomialFeatures
    +$$
    +\begin{align*}
    +\mbox{AIC}(\lambda) & =  2 \, p - 2 \log(\hat{L})
    +\\
    +& =  2 \, \mbox{tr} [\mathbf{H}(\lambda)] - 2 \log\{L[\hat{\beta}(\lambda), \hat{\sigma}^2(\lambda)]\}
    +\\
    +& =  2 \, \sum_{j=1}^p \frac{d_{jj}^2}{d_{jj}^2 + \lambda}
    ++ 2 n \, \log[\sqrt{2 \, \pi} \, \hat{\sigma}(\lambda)] +  \frac{1}{\hat{\sigma}^2(\lambda)} \sum_{i=1}^n [y_i - \mathbf{X}_{i, \ast} \, \hat{\beta}(\lambda)]^2.
    +\end{align*}
    +$$
     
    -import matplotlib as mpl
    -from matplotlib import pyplot as plt
    +The value of \( \lambda \) which minimizes \( \mbox{AIC}(\lambda) \) corresponds to the `optimal' balance of model complexity and overfitting.
     
    -%matplotlib notebook
    -
    -# The Training Data
    -
    -N_train=100
    -
    -sigma_train=1;
    -
    -# Train on integers
    -x=np.linspace(0.05,0.95,N_train)
    -# Draw random noise
    -s = sigma_train*np.random.randn(N_train)
    -
    -#linear
    -y=2*x+s
    -
    -#Tenth Order
    -#y=2*x-10*x**5+15*x**10+s
    -
    -p1=plt.plot(x,y, "o",ms=15, label='Training')
    -
    -#Linear Regression
    -# Create linear regression object
    -clf = linear_model.LinearRegression()
    -
    -# Train the model using the training sets
    -clf.fit(x[:, np.newaxis], y)
    -# The coefficients
    -
    -xplot=np.linspace(0.02,0.98,200)
    -linear_plot=plt.plot(xplot, clf.predict(xplot[:, np.newaxis]),label='Linear')
    -
    -#Polynomial Regression
    -
    -
    -poly3 = PolynomialFeatures(degree=3)
    -X = poly3.fit_transform(x[:,np.newaxis])
    -clf3 = linear_model.LinearRegression()
    -clf3.fit(X,y)
    -
    -
    -Xplot=poly3.fit_transform(xplot[:,np.newaxis])
    -poly3_plot=plt.plot(xplot, clf3.predict(Xplot), label='Poly 3')
    -
    -
    -
    -#poly5 = PolynomialFeatures(degree=5)
    -#X = poly5.fit_transform(x[:,np.newaxis])
    -#clf5 = linear_model.LinearRegression()
    -#clf5.fit(X,y)
    -
    -#Xplot=poly5.fit_transform(xplot[:,np.newaxis])
    -#plt.plot(xplot, clf5.predict(Xplot), 'r--',linewidth=1)
    -
    -poly10 = PolynomialFeatures(degree=10)
    -X = poly10.fit_transform(x[:,np.newaxis])
    -clf10 = linear_model.LinearRegression()
    -clf10.fit(X,y)
    -
    -Xplot=poly10.fit_transform(xplot[:,np.newaxis])
    -poly10_plot=plt.plot(xplot, clf10.predict(Xplot), label='Poly 10')
    -
    -axes = plt.gca()
    -axes.set_ylim([-7,7])
    -
    -handles, labels=axes.get_legend_handles_labels()
    -plt.legend(handles,labels, loc='lower center')
    -plt.xlabel("$x$")
    -plt.ylabel("$y$")
    -Title="$N=$"+str(N_train)+", $\sigma=$"+str(sigma_train)
    -plt.title(Title+" (train)")
    -plt.tight_layout()
    -plt.show()
    -

    -

    Generating test data

    +

    Cross-validation

    +

    - - -

    # Generate Test Data
    -
    -#Number of test data
    -N_test=20
    -
    -sigma_test=sigma_train
    -
    -max_x=1.2
    -x_test=max_x*np.random.random(N_test)
    -# Draw random noise
    -s_test = sigma_test*np.random.randn(N_test)
    -
    -#Linear
    -y_test=2*x_test+s_test
    -#Tenth order
    -#y_test=2*x_test-10*x_test**5+15*x_test**10+s_test
    -
    -#Make design matrices for prediction
    -x_plot=np.linspace(0,max_x, 200)
    -X3 = poly3.fit_transform(x_plot[:,np.newaxis])
    -X10 = poly10.fit_transform(x_plot[:,np.newaxis])
    -
    -%matplotlib notebook
    -
    -fig = plt.figure() 
    -p1=plt.plot(x_test,y_test.transpose(), 'o', ms=12, label='data')
    -p2=plt.plot(x_plot,clf.predict(x_plot[:,np.newaxis]), label='linear')
    -p3=plt.plot(x_plot,clf3.predict(X3), label='3rd order')
    -p10=plt.plot(x_plot,clf10.predict(X10), label='10th order')
    -
    -
    -plt.legend(loc=2)
    -plt.xlabel('$x$')
    -plt.ylabel('$y$')
    -plt.legend(loc='best')
    -plt.title(Title+" (pred.)")
    -plt.tight_layout()
    -plt.show()
    -
    -#Linear Filename
    -#filename_test=Title+"pred-linear.pdf"
    -#Tenth Order Filename
    -#filename_test=Title+"pred-o10.pdf"
    -#plt.savefig(filename_test)
    -#plt.ylim((-6,12))
    -
    -

    -









    - -

    Lasso regression

    +Instead of choosing the penalty parameter to balance model fit with +model complexity, cross-validation requires it (i.e. the penalty +parameter) to yield a model with good prediction +performance. Commonly, this performance is evaluated on novel +data. Novel data need not be easy to come by and one has to make do +with the data at hand. The setting of `original' and novel data is +then mimicked by sample splitting: the data set is divided into two +(groups of samples). One of these two data sets, called the training +set, plays the role of `original' data on which the model is +built. The second of these data sets, called the test set, plays the +role of the `novel' data and is used to evaluate the prediction +performance (often operationalized as the log-likelihood or the +prediction error or its square or the R2 score) of the model built on the training data set. This +procedure (model building and prediction evaluation on training and +test set, respectively) is done for a collection of possible penalty +parameter choices. The penalty parameter that yields the model with +the best prediction performance is to be preferred. The thus obtained +performance evaluation depends on the actual split of the data set. To +remove this dependence the data set is split many times into a +training and test set. For each split the model parameters are +estimated for all choices of \( \lambda \) using the training data and +estimated parameters are evaluated on the corresponding test set. The +penalty parameter that on average over the test sets performs best (in +some sense) is then selected.











    -

    Logistic regression

    +

    Computationally expensive

    + +

    +The validation set approach is conceptually simple and is easy to implement. But it has two potential drawbacks: + +

    + + + +

    Various steps in cross-validation

    + +

    +When the repetitive splitting of the data set is done randomly, +samples may accidently end up in a fast majority of the splits in +either training or test set. Such samples may have an unbalanced +influence on either model building or prediction evaluation. To avoid +this \( k \)-fold cross-validation structures the data splitting. The +samples are divided into \( k \) more or less equally sized exhaustive and +mutually exclusive subsets. In turn (at each split) one of these +subsets plays the role of the test set while the union of the +remaining subsets constitutes the training set. Such a splitting +warrants a balanced representation of each sample in both training and +test set over the splits. Still the division into the \( k \) subsets +involves a degree of randomness. This may be fully excluded when +choosing \( k=n \). This particular case is referred to as leave-one-out +cross-validation (LOOCV). + +

    + + +

    How to set up the cross-validation for Ridge and/or Lasso

    + +
      +
    1. Define a range of interest for the penalty parameter.
    2. +
    3. Divide the data set into training and test set comprising samples \( \{1, \ldots, n\} \setminus i \) and \( \{ i \} \), respectively.
    4. +
    5. Fit the linear regression model by means of ridge estimation for each \( \lambda \) in the grid using the training set as
    6. +
    + +$$ +\begin{align*} +\hat{\beta}_{-i}(\lambda) & = ( \hat{X}_{-i, \ast}^{\top} +\hat{X}_{-i, \ast} + \lambda \hat{I}_{pp})^{-1} +\hat{X}_{-i, \ast}^{\top} \hat{y}_{-i} +\end{align*} +$$ + +and the corresponding estimate of the error variance \( \hat{\sigma}_{-i}^2(\lambda) \). + +
      +
    1. Evaluate the prediction performance of these models on the test set by \( \log\{L[y_i, \hat{X}_{i, \ast}; \hat{\beta}_{-i}(\lambda), \hat{\sigma}_{-i}^2(\lambda)]\} \). Or, by the prediction error \( |y_i - \hat{X}_{i, \ast} \hat{\beta}_{-i}(\lambda)| \), the relative error, the error squared or the R2 score function.
    2. +
    3. Repeat steps 1) to 3) such that each sample plays the role of the test set once.
    4. +
    5. Average the prediction performances of the test sets at each grid point of the penalty bias/parameter
    6. +
    + +$$ +\begin{align*} +\frac{1}{n} \sum_{i = 1}^n \log\{L[Y_i, \mathbf{X}_{i, \ast}; \hat{\beta}_{-i}(\lambda), \hat{\sigma}_{-i}^2(\lambda)]\}. +\end{align*} +$$ + +The quantity above is called the cross-validated log-likelihood. It is an estimate of the prediction performance of the model corresponding to this value of the penalty parameter on novel data. + +
      +
    1. The value of the penalty parameter that maximizes the cross-validated log-likelihood is the value of choice. Or we can use the MSE or the R2 score functions.
    2. +
    + +









    + +

    Predicted Residual Error Sum of Squares

    +
    + +

    +Another approach in the LOOCV scheme is to the use the so-called Predicted Residual Error Sum of Squares (PRESS). + +

    +We can define the optimal penalty parameter to minimize +$$ +\begin{align*} +\lambda_{\mbox{{\tiny opt}}} = \arg \min_{\lambda} \frac{1}{n} \sum_{i=1}^n [y_i - \hat{X}_{i, \ast} \hat{\beta}_{-i}(\lambda)]^2. +\end{align*} +$$ + +

    +The LOOCV prediction performance can be +expressed analytically in terms of the known quantities derived from +the design matrix and the parameters \( \beta \). +

    + + +

    +









    + +

    Bootstrap

    +
    + +

    +Bootstrapping is a nonparametric approach to statistical inference +that substitutes computation for more traditional distributional +assumptions and asymptotic results. Bootstrapping offers a number of +advantages: + +

      +
    1. The bootstrap is quite general, although there are some cases in which it fails.
    2. +
    3. Because it does not require distributional assumptions (such as normally distributed errors), the bootstrap can provide more accurate inferences when the data are not well behaved or when the sample size is small.
    4. +
    5. It is possible to apply the bootstrap to statistics with sampling distributions that are difficult to derive, even asymptotically.
    6. +
    7. It is relatively simple to apply the bootstrap to complex data-collection plans (such as stratified and clustered samples).
    8. +
    +
    + diff --git a/doc/pub/Regression/ipynb/Regression.ipynb b/doc/pub/Regression/ipynb/Regression.ipynb index af7e36ea4..e36087719 100644 --- a/doc/pub/Regression/ipynb/Regression.ipynb +++ b/doc/pub/Regression/ipynb/Regression.ipynb @@ -10,7 +10,7 @@ " \n", "**Morten Hjorth-Jensen**, Department of Physics, University of Oslo and Department of Physics and Astronomy and National Superconducting Cyclotron Laboratory, Michigan State University\n", "\n", - "Date: **Sep 6, 2018**\n", + "Date: **Sep 7, 2018**\n", "\n", "Copyright 1999-2018, Morten Hjorth-Jensen. Released under CC Attribution-NonCommercial 4.0 license\n", "\n", @@ -1606,95 +1606,6 @@ "$$" ] }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Code examples for Ridge and Lasso Regression" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": { - "collapsed": false - }, - "outputs": [], - "source": [ - "import matplotlib.pyplot as plt\n", - "import numpy as np\n", - "from sklearn import linear_model\n", - "from sklearn.linear_model import LinearRegression\n", - "from sklearn.metrics import mean_squared_error, r2_score\n", - "\n", - "#creating data with random noise\n", - "x=np.arange(50)\n", - "\n", - "delta=np.random.uniform(-2.5,2.5, size=(50))\n", - "np.random.shuffle(delta)\n", - "y =0.5*x+5+delta\n", - "\n", - "#arranging data into 2x50 matrix\n", - "a=np.array(x) #inputs\n", - "b=np.array(y) #outputs\n", - "\n", - "#Split into training and test\n", - "X_train=a[:37, np.newaxis]\n", - "X_test=a[37:, np.newaxis]\n", - "y_train=b[:37]\n", - "y_test=b[37:]\n", - "\n", - "print (\"X_train: \", X_train.shape)\n", - "print (\"y_train: \", y_train.shape)\n", - "print (\"X_test: \", X_test.shape)\n", - "print (\"y_test: \", y_test.shape)\n", - "\n", - "print (\"------------------------------------\")\n", - "\n", - "print (\"Ordinary Least Squares\")\n", - "#Add Ordinary Least Squares fit\n", - "reg=LinearRegression()\n", - "reg.fit(X_train, y_train)\n", - "pred=reg.predict(X_test)\n", - "print (\"Prediction Shape: \", pred.shape)\n", - "\n", - "print('Coefficients: \\n', reg.coef_)\n", - "# The mean squared error\n", - "print(\"Mean squared error: %.2f\"\n", - " % mean_squared_error(y_test, pred))\n", - "# Explained variance score: 1 is perfect prediction\n", - "print('Variance score: %.2f' % r2_score(y_test, pred))\n", - "\n", - "#plot\n", - "plt.scatter(X_test,y_test,color='green', label=\"Training Data\")\n", - "plt.plot(X_test, pred, color='black', label=\"Fit Line\")\n", - "plt.legend()\n", - "plt.show()\n", - "\n", - "print (\"------------------------------------\")\n", - "\n", - "print (\"Ridge Regression\")\n", - "\n", - "ridge=linear_model.RidgeCV(alphas=[0.1,1.0,10.0])\n", - "ridge.fit(X_train,y_train)\n", - "print (\"Ridge Coefficient: \",ridge.coef_)\n", - "print (\"Ridge Intercept: \", ridge.intercept_)\n", - "#Look into graphing with Ridge fit\n", - "\n", - "print (\"------------------------------------\")\n", - "\n", - "print (\"Lasso\")\n", - "lasso=linear_model.Lasso(alpha=0.1)\n", - "lasso.fit(X_train,y_train)\n", - "predl=lasso.predict(X_test)\n", - "print(\"Lasso Coefficient: \", lasso.coef_)\n", - "print(\"Lasso Intercept: \", lasso.intercept_)\n", - "plt.scatter(X_test,y_test,color='green', label=\"Training Data\")\n", - "plt.plot(X_test, predl, color='blue', label=\"Lasso\")\n", - "plt.legend()\n", - "plt.show()" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -1816,7 +1727,141 @@ "\n", "\n", "\n", - "## A second-order polynomial with Ridge and Lasso" + "\n", + "\n", + "## Fitting vs. predicting when data is in the model class\n", + "\n", + "We start by considering the case\n", + "$f(x)=2x$.\n", + "\n", + "Then the data is clearly generated by a model that is contained within\n", + "all three model classes we are using to make predictions (linear\n", + "models, third order polynomials, and tenth order polynomials).\n", + "\n", + "Run the code for the following cases:\n", + "\n", + "1. For $f(x)=2x$ , $Ntrain=10$ and $\\sigma =0$ (noiseless case), train the three classes of models (linear, third-order polynomial, and tenth order polynomial) for a training set when $x \\in [0,1]$ . Make graphs comparing fits for different order of polynomials. Which model fits the data the best?\n", + "\n", + "2. Do you think that the data that has the least error on the training set will also make the best predictions? Why or why not? Can you try to discuss and formalize your intuition? What can go right and what can go wrong?\n", + "\n", + "3. Check your answer by seeing how well your fits predict newly generated test data (including on data outside the range you fit on, for example $x \\in [0,1.2]$ ) using the code below. How well do you do on points in the range of x where you trained the model? How about points outside the original training data set?\n", + "\n", + "4. Repeat the above for $f(x)=2x$ , $Ntrain=10$ , and $\\sigma=1$ . What changes?\n", + "\n", + "Repeat the exercises above for $f(x)=2x$ , $Ntrain=100$ , and $\\sigma=1$ . What changes?\n", + "Summarize what you have learned about the relationship between model complexity (number of parameters), goodness of fit on training data, and the ability to predict well.\n", + "\n", + "\n", + "## Fitting versus predicting when data is not in the model class\n", + "\n", + "Thus far, we have considered the case where the data is generated using a model contained in the model class. Now consider $f(x)=2x-10x^5+15x^{10}$ . Notice that the for linear and third-order polynomial the true model $f(x)$ is not contained in model class.\n", + "\n", + "1. Do better fits lead to better predictions?\n", + "\n", + "2. What is the relationship between the true model for generating the data and the model class that has the most predictive power? How is this related to the model complexity? How does this depend on the number of data points $Ntrain$ and $\\sigma$?\n", + "\n", + "Summarize what you think you learned about the relationship of knowing the true model class and predictive power.\n", + "\n", + "## An example code without the model assessment part" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "import numpy as np\n", + "import sklearn as sk\n", + "from sklearn import datasets, linear_model\n", + "from sklearn.preprocessing import PolynomialFeatures\n", + "\n", + "import matplotlib as mpl\n", + "from matplotlib import pyplot as plt\n", + "\n", + "%matplotlib notebook\n", + "\n", + "# The Training Data\n", + "\n", + "N_train=100\n", + "\n", + "sigma_train=1;\n", + "\n", + "# Train on integers\n", + "x=np.linspace(0.05,0.95,N_train)\n", + "# Draw random noise\n", + "s = sigma_train*np.random.randn(N_train)\n", + "\n", + "#linear\n", + "y=2*x+s\n", + "\n", + "#Tenth Order\n", + "#y=2*x-10*x**5+15*x**10+s\n", + "\n", + "p1=plt.plot(x,y, \"o\",ms=15, label='Training')\n", + "\n", + "#Linear Regression\n", + "# Create linear regression object\n", + "clf = linear_model.LinearRegression()\n", + "\n", + "# Train the model using the training sets\n", + "clf.fit(x[:, np.newaxis], y)\n", + "# The coefficients\n", + "\n", + "xplot=np.linspace(0.02,0.98,200)\n", + "linear_plot=plt.plot(xplot, clf.predict(xplot[:, np.newaxis]),label='Linear')\n", + "\n", + "#Polynomial Regression\n", + "\n", + "\n", + "poly3 = PolynomialFeatures(degree=3)\n", + "X = poly3.fit_transform(x[:,np.newaxis])\n", + "clf3 = linear_model.LinearRegression()\n", + "clf3.fit(X,y)\n", + "\n", + "\n", + "Xplot=poly3.fit_transform(xplot[:,np.newaxis])\n", + "poly3_plot=plt.plot(xplot, clf3.predict(Xplot), label='Poly 3')\n", + "\n", + "\n", + "\n", + "#poly5 = PolynomialFeatures(degree=5)\n", + "#X = poly5.fit_transform(x[:,np.newaxis])\n", + "#clf5 = linear_model.LinearRegression()\n", + "#clf5.fit(X,y)\n", + "\n", + "#Xplot=poly5.fit_transform(xplot[:,np.newaxis])\n", + "#plt.plot(xplot, clf5.predict(Xplot), 'r--',linewidth=1)\n", + "\n", + "poly10 = PolynomialFeatures(degree=10)\n", + "X = poly10.fit_transform(x[:,np.newaxis])\n", + "clf10 = linear_model.LinearRegression()\n", + "clf10.fit(X,y)\n", + "\n", + "Xplot=poly10.fit_transform(xplot[:,np.newaxis])\n", + "poly10_plot=plt.plot(xplot, clf10.predict(Xplot), label='Poly 10')\n", + "\n", + "axes = plt.gca()\n", + "axes.set_ylim([-7,7])\n", + "\n", + "handles, labels=axes.get_legend_handles_labels()\n", + "plt.legend(handles,labels, loc='lower center')\n", + "plt.xlabel(\"$x$\")\n", + "plt.ylabel(\"$y$\")\n", + "Title=\"$N=$\"+str(N_train)+\", $\\sigma=$\"+str(sigma_train)\n", + "plt.title(Title+\" (train)\")\n", + "plt.tight_layout()\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## Generating test data" ] }, { @@ -1826,6 +1871,157 @@ "collapsed": false }, "outputs": [], + "source": [ + "# Generate Test Data\n", + "\n", + "#Number of test data\n", + "N_test=20\n", + "\n", + "sigma_test=sigma_train\n", + "\n", + "max_x=1.2\n", + "x_test=max_x*np.random.random(N_test)\n", + "# Draw random noise\n", + "s_test = sigma_test*np.random.randn(N_test)\n", + "\n", + "#Linear\n", + "y_test=2*x_test+s_test\n", + "#Tenth order\n", + "#y_test=2*x_test-10*x_test**5+15*x_test**10+s_test\n", + "\n", + "#Make design matrices for prediction\n", + "x_plot=np.linspace(0,max_x, 200)\n", + "X3 = poly3.fit_transform(x_plot[:,np.newaxis])\n", + "X10 = poly10.fit_transform(x_plot[:,np.newaxis])\n", + "\n", + "%matplotlib notebook\n", + "\n", + "fig = plt.figure() \n", + "p1=plt.plot(x_test,y_test.transpose(), 'o', ms=12, label='data')\n", + "p2=plt.plot(x_plot,clf.predict(x_plot[:,np.newaxis]), label='linear')\n", + "p3=plt.plot(x_plot,clf3.predict(X3), label='3rd order')\n", + "p10=plt.plot(x_plot,clf10.predict(X10), label='10th order')\n", + "\n", + "\n", + "plt.legend(loc=2)\n", + "plt.xlabel('$x$')\n", + "plt.ylabel('$y$')\n", + "plt.legend(loc='best')\n", + "plt.title(Title+\" (pred.)\")\n", + "plt.tight_layout()\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## How can we effectively evaluate the various models?\n", + "\n", + "In Ridge regression and the subsequent discussion of its properties\n", + "the bias or penalty parameter is considered known or `given'. In\n", + "practice, it is unknown and the user needs to make an informed\n", + "decision on its value. How do we do that? Much of the same considerations apply to the Lasso method. \n", + "\n", + "## Code examples for Ridge and Lasso Regression" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "from sklearn import linear_model\n", + "from sklearn.linear_model import LinearRegression\n", + "from sklearn.metrics import mean_squared_error, r2_score\n", + "\n", + "#creating data with random noise\n", + "x=np.arange(50)\n", + "\n", + "delta=np.random.uniform(-2.5,2.5, size=(50))\n", + "np.random.shuffle(delta)\n", + "y =0.5*x+5+delta\n", + "\n", + "#arranging data into 2x50 matrix\n", + "a=np.array(x) #inputs\n", + "b=np.array(y) #outputs\n", + "\n", + "#Split into training and test\n", + "X_train=a[:37, np.newaxis]\n", + "X_test=a[37:, np.newaxis]\n", + "y_train=b[:37]\n", + "y_test=b[37:]\n", + "\n", + "print (\"X_train: \", X_train.shape)\n", + "print (\"y_train: \", y_train.shape)\n", + "print (\"X_test: \", X_test.shape)\n", + "print (\"y_test: \", y_test.shape)\n", + "\n", + "print (\"------------------------------------\")\n", + "\n", + "print (\"Ordinary Least Squares\")\n", + "#Add Ordinary Least Squares fit\n", + "reg=LinearRegression()\n", + "reg.fit(X_train, y_train)\n", + "pred=reg.predict(X_test)\n", + "print (\"Prediction Shape: \", pred.shape)\n", + "\n", + "print('Coefficients: \\n', reg.coef_)\n", + "# The mean squared error\n", + "print(\"Mean squared error: %.2f\"\n", + " % mean_squared_error(y_test, pred))\n", + "# Explained variance score: 1 is perfect prediction\n", + "print('Variance score: %.2f' % r2_score(y_test, pred))\n", + "\n", + "#plot\n", + "plt.scatter(X_test,y_test,color='green', label=\"Training Data\")\n", + "plt.plot(X_test, pred, color='black', label=\"Fit Line\")\n", + "plt.legend()\n", + "plt.show()\n", + "\n", + "print (\"------------------------------------\")\n", + "\n", + "print (\"Ridge Regression\")\n", + "\n", + "ridge=linear_model.RidgeCV(alphas=[0.1,1.0,10.0])\n", + "ridge.fit(X_train,y_train)\n", + "print (\"Ridge Coefficient: \",ridge.coef_)\n", + "print (\"Ridge Intercept: \", ridge.intercept_)\n", + "#Look into graphing with Ridge fit\n", + "\n", + "print (\"------------------------------------\")\n", + "\n", + "print (\"Lasso\")\n", + "lasso=linear_model.Lasso(alpha=0.1)\n", + "lasso.fit(X_train,y_train)\n", + "predl=lasso.predict(X_test)\n", + "print(\"Lasso Coefficient: \", lasso.coef_)\n", + "print(\"Lasso Intercept: \", lasso.intercept_)\n", + "plt.scatter(X_test,y_test,color='green', label=\"Training Data\")\n", + "plt.plot(X_test, predl, color='blue', label=\"Lasso\")\n", + "plt.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## A second-order polynomial with Ridge and Lasso" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "collapsed": false + }, + "outputs": [], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", @@ -1939,204 +2135,229 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## Fitting vs. predicting when data is in the model class\n", - "\n", - "We start by considering the case\n", - "$f(x)=2x$.\n", - "\n", - "Then the data is clearly generated by a model that is contained within\n", - "all three model classes we are using to make predictions (linear\n", - "models, third order polynomials, and tenth order polynomials).\n", - "\n", - "Run the code for the following cases:\n", - "\n", - "1. For $f(x)=2x$ , $Ntrain=10$ and $\\sigma =0$ (noiseless case), train the three classes of models (linear, third-order polynomial, and tenth order polynomial) for a training set when $x \\in [0,1]$ . Make graphs comparing fits for different order of polynomials. Which model fits the data the best?\n", - "\n", - "2. Do you think that the data that has the least error on the training set will also make the best predictions? Why or why not? Can you try to discuss and formalize your intuition? What can go right and what can go wrong?\n", - "\n", - "3. Check your answer by seeing how well your fits predict newly generated test data (including on data outside the range you fit on, for example $x \\in [0,1.2]$ ) using the code below. How well do you do on points in the range of x where you trained the model? How about points outside the original training data set?\n", - "\n", - "4. Repeat the above for $f(x)=2x$ , $Ntrain=10$ , and $\\sigma=1$ . What changes?\n", - "\n", - "Repeat the exercises above for $f(x)=2x$ , $Ntrain=100$ , and $\\sigma=1$ . What changes?\n", - "Summarize what you have learned about the relationship between model complexity (number of parameters), goodness of fit on training data, and the ability to predict well.\n", - "\n", - "\n", - "## Fitting versus predicting when data is not in the model class\n", - "\n", - "Thus far, we have considered the case where the data is generated using a model contained in the model class. Now consider $f(x)=2x-10x^5+15x^{10}$ . Notice that the for linear and third-order polynomial the true model $f(x)$ is not contained in model class.\n", - "\n", - "1. Do better fits lead to better predictions?\n", - "\n", - "2. What is the relationship between the true model for generating the data and the model class that has the most predictive power? How is this related to the model complexity? How does this depend on the number of data points $Ntrain$ and $\\sigma$?\n", - "\n", - "Summarize what you think you learned about the relationship of knowing the true model class and predictive power.\n", - "\n", - "## The code" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": { - "collapsed": false - }, - "outputs": [], - "source": [ - "import numpy as np\n", - "import sklearn as sk\n", - "from sklearn import datasets, linear_model\n", - "from sklearn.preprocessing import PolynomialFeatures\n", - "\n", - "import matplotlib as mpl\n", - "from matplotlib import pyplot as plt\n", - "\n", - "%matplotlib notebook\n", - "\n", - "# The Training Data\n", - "\n", - "N_train=100\n", - "\n", - "sigma_train=1;\n", - "\n", - "# Train on integers\n", - "x=np.linspace(0.05,0.95,N_train)\n", - "# Draw random noise\n", - "s = sigma_train*np.random.randn(N_train)\n", - "\n", - "#linear\n", - "y=2*x+s\n", - "\n", - "#Tenth Order\n", - "#y=2*x-10*x**5+15*x**10+s\n", - "\n", - "p1=plt.plot(x,y, \"o\",ms=15, label='Training')\n", - "\n", - "#Linear Regression\n", - "# Create linear regression object\n", - "clf = linear_model.LinearRegression()\n", - "\n", - "# Train the model using the training sets\n", - "clf.fit(x[:, np.newaxis], y)\n", - "# The coefficients\n", - "\n", - "xplot=np.linspace(0.02,0.98,200)\n", - "linear_plot=plt.plot(xplot, clf.predict(xplot[:, np.newaxis]),label='Linear')\n", - "\n", - "#Polynomial Regression\n", - "\n", - "\n", - "poly3 = PolynomialFeatures(degree=3)\n", - "X = poly3.fit_transform(x[:,np.newaxis])\n", - "clf3 = linear_model.LinearRegression()\n", - "clf3.fit(X,y)\n", - "\n", - "\n", - "Xplot=poly3.fit_transform(xplot[:,np.newaxis])\n", - "poly3_plot=plt.plot(xplot, clf3.predict(Xplot), label='Poly 3')\n", + "## Resampling methods\n", + "Resampling methods are an indispensable tool in modern\n", + "statistics. They involve repeatedly drawing samples from a training\n", + "set and refitting a model of interest on each sample in order to\n", + "obtain additional information about the fitted model. For example, in\n", + "order to estimate the variability of a linear regression fit, we can\n", + "repeatedly draw different samples from the training data, fit a linear\n", + "regression to each new sample, and then examine the extent to which\n", + "the resulting fits differ. Such an approach may allow us to obtain\n", + "information that would not be available from fitting the model only\n", + "once using the original training sample.\n", "\n", "\n", "\n", - "#poly5 = PolynomialFeatures(degree=5)\n", - "#X = poly5.fit_transform(x[:,np.newaxis])\n", - "#clf5 = linear_model.LinearRegression()\n", - "#clf5.fit(X,y)\n", + "## Resampling approaches can be computationally expensive\n", + "Resampling approaches can be computationally expensive, because they\n", + "involve fitting the same statistical method multiple times using\n", + "different subsets of the training data. However, due to recent\n", + "advances in computing power, the computational requirements of\n", + "resampling methods generally are not prohibitive. In this chapter, we\n", + "discuss two of the most commonly used resampling methods,\n", + "cross-validation and the bootstrap. Both methods are important tools\n", + "in the practical application of many statistical learning\n", + "procedures. For example, cross-validation can be used to estimate the\n", + "test error associated with a given statistical learning method in\n", + "order to evaluate its performance, or to select the appropriate level\n", + "of flexibility. The process of evaluating a model’s performance is\n", + "known as model assessment, whereas the process of selecting the proper\n", + "level of flexibility for a model is known as model selection. The\n", + "bootstrap is widely used.\n", "\n", - "#Xplot=poly5.fit_transform(xplot[:,np.newaxis])\n", - "#plt.plot(xplot, clf5.predict(Xplot), 'r--',linewidth=1)\n", "\n", - "poly10 = PolynomialFeatures(degree=10)\n", - "X = poly10.fit_transform(x[:,np.newaxis])\n", - "clf10 = linear_model.LinearRegression()\n", - "clf10.fit(X,y)\n", "\n", - "Xplot=poly10.fit_transform(xplot[:,np.newaxis])\n", - "poly10_plot=plt.plot(xplot, clf10.predict(Xplot), label='Poly 10')\n", "\n", - "axes = plt.gca()\n", - "axes.set_ylim([-7,7])\n", + "## Log-likelihood\n", "\n", - "handles, labels=axes.get_legend_handles_labels()\n", - "plt.legend(handles,labels, loc='lower center')\n", - "plt.xlabel(\"$x$\")\n", - "plt.ylabel(\"$y$\")\n", - "Title=\"$N=$\"+str(N_train)+\", $\\sigma=$\"+str(sigma_train)\n", - "plt.title(Title+\" (train)\")\n", - "plt.tight_layout()\n", - "plt.show()" + "A popular strategy is to choose a penalty parameter that yields a good\n", + "but parsimonious model. Information criteria measure the balance\n", + "between model fit and model complexity. One possibility is Aikaike's\n", + "information criterion (AIC).\n", + "The AIC measures model fit by the log-likelihood\n", + "and model complexity is measured by the number of parameters used by\n", + "the model. The number of model parameters in regular regression simply\n", + "corresponds to the number of covariates in the model. Or, by the\n", + "degrees of freedom consumed by the model, which is equivalent to the\n", + "trace of the hat matrix. For ridge regression it thus seems natural to\n", + "define model complexity analogously by the trace of the ridge hat\n", + "matrix. This yields the AIC for the linear regression model with ridge\n", + "estimates:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ + "$$\n", + "\\begin{align*}\n", + "\\mbox{AIC}(\\lambda) & = 2 \\, p - 2 \\log(\\hat{L})\n", + "\\\\\n", + "& = 2 \\, \\mbox{tr} [\\mathbf{H}(\\lambda)] - 2 \\log\\{L[\\hat{\\beta}(\\lambda), \\hat{\\sigma}^2(\\lambda)]\\}\n", + "\\\\\n", + "& = 2 \\, \\sum_{j=1}^p \\frac{d_{jj}^2}{d_{jj}^2 + \\lambda}\n", + "+ 2 n \\, \\log[\\sqrt{2 \\, \\pi} \\, \\hat{\\sigma}(\\lambda)] + \\frac{1}{\\hat{\\sigma}^2(\\lambda)} \\sum_{i=1}^n [y_i - \\mathbf{X}_{i, \\ast} \\, \\hat{\\beta}(\\lambda)]^2.\n", + "\\end{align*}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The value of $\\lambda$ which minimizes $\\mbox{AIC}(\\lambda)$ corresponds to the `optimal' balance of model complexity and overfitting.\n", + "\n", + "\n", "\n", - "## Generating test data" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": { - "collapsed": false - }, - "outputs": [], - "source": [ - "# Generate Test Data\n", + "## Cross-validation\n", "\n", - "#Number of test data\n", - "N_test=20\n", - "\n", - "sigma_test=sigma_train\n", - "\n", - "max_x=1.2\n", - "x_test=max_x*np.random.random(N_test)\n", - "# Draw random noise\n", - "s_test = sigma_test*np.random.randn(N_test)\n", - "\n", - "#Linear\n", - "y_test=2*x_test+s_test\n", - "#Tenth order\n", - "#y_test=2*x_test-10*x_test**5+15*x_test**10+s_test\n", - "\n", - "#Make design matrices for prediction\n", - "x_plot=np.linspace(0,max_x, 200)\n", - "X3 = poly3.fit_transform(x_plot[:,np.newaxis])\n", - "X10 = poly10.fit_transform(x_plot[:,np.newaxis])\n", - "\n", - "%matplotlib notebook\n", - "\n", - "fig = plt.figure() \n", - "p1=plt.plot(x_test,y_test.transpose(), 'o', ms=12, label='data')\n", - "p2=plt.plot(x_plot,clf.predict(x_plot[:,np.newaxis]), label='linear')\n", - "p3=plt.plot(x_plot,clf3.predict(X3), label='3rd order')\n", - "p10=plt.plot(x_plot,clf10.predict(X10), label='10th order')\n", + "Instead of choosing the penalty parameter to balance model fit with\n", + "model complexity, cross-validation requires it (i.e. the penalty\n", + "parameter) to yield a model with good prediction\n", + "performance. Commonly, this performance is evaluated on novel\n", + "data. Novel data need not be easy to come by and one has to make do\n", + "with the data at hand. The setting of `original' and novel data is\n", + "then mimicked by sample splitting: the data set is divided into two\n", + "(groups of samples). One of these two data sets, called the *training\n", + "set*, plays the role of `original' data on which the model is\n", + "built. The second of these data sets, called the *test set*, plays the\n", + "role of the `novel' data and is used to evaluate the prediction\n", + "performance (often operationalized as the log-likelihood or the\n", + "prediction error or its square or the R2 score) of the model built on the training data set. This\n", + "procedure (model building and prediction evaluation on training and\n", + "test set, respectively) is done for a collection of possible penalty\n", + "parameter choices. The penalty parameter that yields the model with\n", + "the best prediction performance is to be preferred. The thus obtained\n", + "performance evaluation depends on the actual split of the data set. To\n", + "remove this dependence the data set is split many times into a\n", + "training and test set. For each split the model parameters are\n", + "estimated for all choices of $\\lambda$ using the training data and\n", + "estimated parameters are evaluated on the corresponding test set. The\n", + "penalty parameter that on average over the test sets performs best (in\n", + "some sense) is then selected.\n", "\n", "\n", - "plt.legend(loc=2)\n", - "plt.xlabel('$x$')\n", - "plt.ylabel('$y$')\n", - "plt.legend(loc='best')\n", - "plt.title(Title+\" (pred.)\")\n", - "plt.tight_layout()\n", - "plt.show()\n", + "## Computationally expensive\n", "\n", - "#Linear Filename\n", - "#filename_test=Title+\"pred-linear.pdf\"\n", - "#Tenth Order Filename\n", - "#filename_test=Title+\"pred-o10.pdf\"\n", - "#plt.savefig(filename_test)\n", - "#plt.ylim((-6,12))" + "The validation set approach is conceptually simple and is easy to implement. But it has two potential drawbacks:\n", + "\n", + "* The validation estimate of the test error rate can be highly variable, depending on precisely which observations are included in the training set and which observations are included in the validation set.\n", + "\n", + "* In the validation approach, only a subset of the observations, those that are included in the training set rather than in the validation set are used to fit the model. Since statistical methods tend to perform worse when trained on fewer observations, this suggests that the validation set error rate may tend to overestimate the test error rate for the model fit on the entire data set.\n", + "\n", + "\n", + "## Various steps in cross-validation\n", + "\n", + "When the repetitive splitting of the data set is done randomly,\n", + "samples may accidently end up in a fast majority of the splits in\n", + "either training or test set. Such samples may have an unbalanced\n", + "influence on either model building or prediction evaluation. To avoid\n", + "this $k$-fold cross-validation structures the data splitting. The\n", + "samples are divided into $k$ more or less equally sized exhaustive and\n", + "mutually exclusive subsets. In turn (at each split) one of these\n", + "subsets plays the role of the test set while the union of the\n", + "remaining subsets constitutes the training set. Such a splitting\n", + "warrants a balanced representation of each sample in both training and\n", + "test set over the splits. Still the division into the $k$ subsets\n", + "involves a degree of randomness. This may be fully excluded when\n", + "choosing $k=n$. This particular case is referred to as leave-one-out\n", + "cross-validation (LOOCV). \n", + "\n", + "\n", + "## How to set up the cross-validation for Ridge and/or Lasso\n", + "\n", + "1. Define a range of interest for the penalty parameter.\n", + "\n", + "2. Divide the data set into training and test set comprising samples $\\{1, \\ldots, n\\} \\setminus i$ and $\\{ i \\}$, respectively.\n", + "\n", + "3. Fit the linear regression model by means of ridge estimation for each $\\lambda$ in the grid using the training set as" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "## Lasso regression\n", + "$$\n", + "\\begin{align*}\n", + "\\hat{\\beta}_{-i}(\\lambda) & = ( \\hat{X}_{-i, \\ast}^{\\top}\n", + "\\hat{X}_{-i, \\ast} + \\lambda \\hat{I}_{pp})^{-1}\n", + "\\hat{X}_{-i, \\ast}^{\\top} \\hat{y}_{-i}\n", + "\\end{align*}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "and the corresponding estimate of the error variance $\\hat{\\sigma}_{-i}^2(\\lambda)$.\n", + "\n", + "1. Evaluate the prediction performance of these models on the test set by $\\log\\{L[y_i, \\hat{X}_{i, \\ast}; \\hat{\\beta}_{-i}(\\lambda), \\hat{\\sigma}_{-i}^2(\\lambda)]\\}$. Or, by the prediction error $|y_i - \\hat{X}_{i, \\ast} \\hat{\\beta}_{-i}(\\lambda)|$, the relative error, the error squared or the R2 score function.\n", + "\n", + "2. Repeat steps 1) to 3) such that each sample plays the role of the test set once.\n", + "\n", + "3. Average the prediction performances of the test sets at each grid point of the penalty bias/parameter" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\begin{align*}\n", + "\\frac{1}{n} \\sum_{i = 1}^n \\log\\{L[Y_i, \\mathbf{X}_{i, \\ast}; \\hat{\\beta}_{-i}(\\lambda), \\hat{\\sigma}_{-i}^2(\\lambda)]\\}.\n", + "\\end{align*}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The quantity above is called the *cross-validated log-likelihood*. It is an estimate of the prediction performance of the model corresponding to this value of the penalty parameter on novel data.\n", + "\n", + "1. The value of the penalty parameter that maximizes the cross-validated log-likelihood is the value of choice. Or we can use the MSE or the R2 score functions.\n", + "\n", + "## Predicted Residual Error Sum of Squares\n", + "Another approach in the LOOCV scheme is to the use the so-called Predicted Residual Error Sum of Squares (PRESS). \n", + "\n", + "We can define the optimal penalty parameter to minimize" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\begin{align*}\n", + "\\lambda_{\\mbox{{\\tiny opt}}} = \\arg \\min_{\\lambda} \\frac{1}{n} \\sum_{i=1}^n [y_i - \\hat{X}_{i, \\ast} \\hat{\\beta}_{-i}(\\lambda)]^2.\n", + "\\end{align*}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The LOOCV prediction performance can be\n", + "expressed analytically in terms of the known quantities derived from\n", + "the design matrix and the parameters $\\beta$.\n", "\n", "\n", - "## Logistic regression" + "\n", + "## Bootstrap\n", + "Bootstrapping is a nonparametric approach to statistical inference\n", + "that substitutes computation for more traditional distributional\n", + "assumptions and asymptotic results. Bootstrapping offers a number of\n", + "advantages: \n", + "1. The bootstrap is quite general, although there are some cases in which it fails. \n", + "\n", + "2. Because it does not require distributional assumptions (such as normally distributed errors), the bootstrap can provide more accurate inferences when the data are not well behaved or when the sample size is small. \n", + "\n", + "3. It is possible to apply the bootstrap to statistics with sampling distributions that are difficult to derive, even asymptotically. \n", + "\n", + "4. It is relatively simple to apply the bootstrap to complex data-collection plans (such as stratified and clustered samples)." ] } ], diff --git a/doc/pub/Regression/ipynb/ipynb-Regression-src.tar.gz b/doc/pub/Regression/ipynb/ipynb-Regression-src.tar.gz index 11e5676115c2089368680876bdad35a3ef51af6a..39e17ea5b7a69d4723e727ac0958db4b5e9f976c 100644 GIT binary patch literal 210 zcmb2|=3rp>I5C=m`R)0GSxklk#|qEe9kn@V^m%@BwDT^lmQ!(p&aHlq1 zJxAo1TqxS-C=dJ%!Z0B0{*>O*)-RaY-^kaF1k_u-_*r&WL zJNfiY@`^wE_@y%!pMJbq<$LXilbyVKZ*2RT`r^jEH^uLqb?>(V12XubUdQ0K LVCDh_4F(1Pob+c8 diff --git a/doc/pub/Regression/pdf/Regression-beamer-handouts2x3.pdf b/doc/pub/Regression/pdf/Regression-beamer-handouts2x3.pdf index c60178739d22d3a6650605fac1740a2ca066ae99..89eb8b91d088762b8c09f6225e98de2bd506a523 100644 GIT binary patch delta 167286 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

    e=N*VV@w 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

    WbA$QEx&E^(ro zYqG)ehq=5EQn%|WP3feO6@MqkSpd&d8q5uA7vX?lJ;+oEV3^TA%qV;gx9q~FMMjY~>-LJ{s-O;mYPJ543Z!Cry(%ke}6?KOdUscWtF!@#AkfPU7OAeGDDv z4_T}`TId7^3n7({T&uOd7BYNQm9`|k?Xxu+nlv-+r}MLx=}Ei`;=Uos9wr*;*yRHy zbsu_hJ^1g34u2vjG5b2i*L~Vw&rJ5##(!S1`|W8HY4h8Vqg4exEcv)e78+0B;<$2b z`NvFcVvr-H*3d&PJLtAEmCvu;54Ho;~Llv51hT5RTQ zXAnc5kj{Zk@>S?nBpyWH)$|LqW!jhC-IC#RUvp!NSJ{RVqQDRK97EY`UsCf3%#FSx z35m1zJVBlmHk!meNlSS*P+&)~T~|b+NP;rY*JGSr*&Y7R*@JH84SKr@mNy)(#~<7o zbszCyB!3Hm%+JCLU!q*RY4DV4=v8D?d9V3pDU2ACxM`~E zIQ)8YK=*`y?4|c}oTaYH(`bX?VX!G*jvy35lsY+lU>2KZyz4^enEOZhh+-s*POkQz zBtq`of|6@iQubD_h6d(;s1!=*fpfLP1@O2Dg)N1A3d2 z68PS8%zL@i=2u1H2C(f33U=c8n56Pjd1n2bx^IP8S0^}No-;#D|5i=2-YM1RDeSSk z9_kiT72rn|fU)KkJkMznqvvS!O1v!Tc7H7iYwufe!W6NB*({JBv}}zPbyUXpK9!}? znOR;}GGFjq!_cCZsRg6&EV$ilbR++OEknA#!!6Si&3ay=(H@sjw&9UcUU#6e@F>Zs zFtezB=M!~KymU4bX*_5ZBy*DGqeN1uaH&gNDa*^OB@8DNPfn}E3}qK0vBn;ERDS_G zygB0|67O(mYEyt0kFEF>;5T*~cj}EORt3y7NuC(ws}lxVQZ@1zW0gBMTL%?qDzaD)$64jl!31%Yi31OF|9>qg;4`{1&m%y;l1qen7+CHp-%0DBP27~I2>jBlXDh0mpC{kZX8##03-V~m#XIr>Fj{pJZd^Vah!IoyK4{^Sj zH78}Zc<$+$B-_;1^&Nd!9MQV;IGoYOP@UB7;5FFxdS$0LY`RKxQ4gXVD9q;UtdKKh zT$!4c=q2qvT&D`ZAeiAd?tk;BxUZi2*kuYw=THZ9$1(5UXeKK-NI4ShyXcb4)z|Y zUrPmSFSbNxv(j=o7>@1-(q`XGwO9hgO@lz&h$3f2K+9bpf&6 z^KQYfh>rwc5r0X{PNLS$wi#;zl~Uo@BS0Kl;C!UbK%36(S&;Y<> z8{rl7<7|YXFp}t+VKW?b$k_p9i`YcxK+x&^P0$4(j3b-P#n)CTR7bQ$&u}LdS8EI$ zE7~$8Kh4q;@fSjvd@B@AnYTy!%6XEvPtW%-n8|0o@_&Xg&yUH|!*nvL}mVtX`2J0XkPWI zC8oaJaa|50vEPdFF4g|qWQHATyixl!jYNE_V)7Ub2c8;r===}*rSD#jmetX;{F<3U82hZdB;fGXv=CRoZ2t?ug&Rd=Y`XatWorx1j2+-w9 z3xABsqx|&jh`)0e<3c zLo`up!3j@sH*{v}(V*v5k5sm*3f>Sk=!Ec>L-4hs<0!V0(QYmi)jXD$qEy3z#w&RI zj%(w2{bl%~s8EkpJq){g>V&VzA*f!0Q-4XZYL?Xvfo(Y9_H8mCl>|2Q+Te&b?nz&= zQB6cK@g(P*$+n`X9TH3)@B=7&y8r&X<`%0AZljSE>PGtg5l{hBUoB$WfF;jl{-fRP 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 b3UhQ}a&&ldWo8OAF)%SVFbX9lMNdWwZ%VLZ delta 150320 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 Xa&&ldWo8O9I5;*oGYTaoMNdWwvr%-+ diff --git a/doc/pub/Regression/pdf/Regression-beamer.pdf b/doc/pub/Regression/pdf/Regression-beamer.pdf index 84cdc8a34d0c8d641d4c06978ac31a3641377139..3645fa90a330611fb9d38ebf750a7c9921029e29 100644 GIT binary patch delta 163432 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%0DiH#94g!ABb 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%0D?! zG@xj|yAu^S6dGN_&%d-f_)e^ege4X@*I`SM6J$~{%|7nrp&%76a$D8E>6~xAhpRLx z6cw18A0juXj;gf4_ufcevh)!7FL;JTeOla2t85l1Z$W$Uj(H*DnX_A=!&DDLC-G5< zBo&5IAk@?OiC`OQw+f@^5j0>A0$z%IKo2ZLXU`tv`V2x|rI^N|Y^XAh(SvVS1c>pm zS5_u>2(@h?7Y^eJ>&ly>_vo>hS`_IsP(c_q5?a7&p|_7)50pHMAGqlULt3{kG%8mY5mY4Q2BVpX=x42(8ch2JO+UGb%Rr@01c$s ze6}*m`W$(uEcIxU>or|P0e!{(&ffCTm?Inb`9f*@UnEUvzE!O0Q9X{QQm%r$ioEA8 z>&V{B82-G}*~^e%Z*Xfn!qY?LxlUR9+JF(Y=Z#B@-s*{c865*OotYl(%0>3_KmAX`%=v5+09XSQ~?rOj%}zpoar zFCVyz4#4stJD*3Vb_9D^v@JRu7#;qRC0%L*bMWGNAXUr!W;HHbCH z10z(yB@gBU_o$okUH3Cr$7z;*A3e`gyYa|dq~Xp(WEzp!1WCQfffp>R+5=D z#${|jfL(i7t54mrNhZ)2*#};rRr=xxw$`+tr#xdg_rqXkk-h)vHq9moY-m_~mr2rX zp53G$C52TCzL&KFwM&zB(G_JxYlrgg;95?2sKyou!L~&z!z#Ir zCmr|v0({6tfJWE&nOjUCtkT|xN|qTuf6qh>fb|*p{&#|SB|6BXU6E8;<-2Y~FRA5D z$zC^?p%MR6@|Pz~4nqSv&W>r=g-TcCZ&DH;kqyD%dfNk=4gW{vESoTo=wcmnsxhhC zie?PcZYd@7*D=R*9K)+71&aHIzuKHo;vJNx{HucW_OTNL%OlzIcrCLPHEJqP`bHz{ z081N%mPX~{Rm*GGYEfl9VT#53URpU+D9O}(n8pN?C9qlg*p$d9y%BBxB4a`u*oP{ zFwAH-f6*l1z@r) z-S`5fvT-y~@SaF(iwa=n{rcwC!(e90Ny4}n!wB3Rhd6_2Vx!i_920IdVm?@^nACbX zp7DU4w-5n1E#Ji4eu3t(+OC=6B$4vVU)`r_B!gPef;1z>TG#q9jgX{}`;Qcy0<`Hf z`58w{y+><3OET=3-H&pZD;l28<#Z1G6D)`JlkH7T26ieY8e`U0?J4RBZ3dct?^#nl zEL1YC4EKecIK->DPj~9F4QKtBXYt-vy;$Dc`(zYZCe`cRsN{FLe?bc<92}Mi_&S%? z;5t5KPRA=?`I~nCVK28o*q!6A2F&TucAaih8Yj`{p?;ZX77}VK=F^m!P-LX*s$OSY z(ao8DyCJx0D2;>)UBH0y(9rb}GK*{DbL!0Bd>(wddo@ zxAx+r0+nKDr3?cV2m1_Y}%|um_FcYScN?as9C;g8aq|r4NDqJ;;fDik%No zcFN{{xGu0`&*tk3p5+m&SAX# z(9?bIZ<&$G3?2o2mMQc;J7|_ubY;F`hfEC!3Ep6s@MBu}fCBMW7R)LTobWjAzAD9q zpT3=LK=JmyP(^f%$55z%DntK+Q;R7)ksZq9N6#FBvcU<82&2~GB>;vq_Mih&E-nF4 zr7$+w)}Ho3Jo<@x{p#KA6|M2FF6L&xV!fk4$LcI;2I=m*+12kE$fJ08yT|A>(pItrfscYU6cX(o_z*b$|7)Fzg_Zfgk-DWlZFlf*q+U=RLmNAW ziXa3SB3`lcp=*+QTi{;yOU4uk#?hiM#P#_0D(#DFuj@><;MpVo`L|3-dkGT?P*7B4 zh{a%NU)6n>`2#q?d@v*H6~_WtS$fiyCEM(hP|lAeF%&r{s1q{dSkOhfqjl+irRO6- znldh>gbRe~0F1}t9ob;6GdXY^)*4oZ=vct?{}!x7%TdxfW-8S&dZ|0~LNU2R!-6Pi zCTW6mNt0i9ggIsD98w|+4b@_R(pZG)5JTtNVzrV{UboVL)XtNmNa>GA8m~AJE8Q_i z66rwxIo$OXB0z0|!x~~FM;KGl#DP$pkKZ*!YbU+o1c*gQVxa*;j837Ux{Kte{h9!3 zPU}`eK%2%rl3j1{D~^Mhg60wDVsQrtcXS9tl-ujD1z?Qj9x} zD4Z3uEF@nUmMA42zv1ybG!Kj-R~C`I z6|k|Pz>`E4eenFfcmD8cCUmcRH0aZ=%ey%*6PlZoB49vwG70V)RAA;7knir>12pF# zt#L`xHfXSa`0N>BgsL^1ZK-jzw|0vn65r5)P##rvPBKd^9?&*{hFoUmh z*&#ls{Eh{3>+=c;afy-8cjbSCRkx*`wPaAHT`EeVlB{?0R&Js77F3pQ?bYJQeWGPF zy+HT=Il?XOB1A1W9@r<9J%u8FJWR*pEI7%KtCRweW!U|uYOb|GF-S)4p)NhE1n>uC zK12JCKu$fMjPPgjjToeFrBAPC9szCB78^SUb4;FjI444KG`QIaI87R`oX*CDna>ew zxBhn6Xpk^>sB7uwb~V3rj_H;U^u-DA<$fQjZI$92JB|^dJ7&*;VcPiHwS^!Ji%_?=mK^QQ~G;4dpFMG zS<*OGa`vvIlZGNG_o%|Pp8&W8|2~sx!H8WpBxJ3(eQNQN=#f--1G4BEpj`HMW{%@C zB>yr(L?S2Y9|y^#L@>Xr{VfVpa}=wmQK=ry9YMb24;_bda&8FPRG4$(*LA3yo?Ye~s!3f4X1(bU&bm z*2BkAXgvGP)V)X6fAs>I#I^H1Q9_Q9VWy9Gz#7zxOk8HB*l)QG&H%oe;nW0`+k6w%?6_WXI4`=Nq|woh&UM8|I3D& z)#aQs8UKe+PA$xgvB6f`MqM)Gy{yl5HiF;=7{L#v2kgFmF`GPIof4!6~x zQt={W_!%~pE`%3JErl$Rs;nxz`@AQ^bdg;d;>Fba@mQrZ;ae zFCdSR8S?z>ORZ#|!slPb1t`K$J(J;5VQX@)Qsbw^fc7UIEW;(&s{zGjaIWe? zeJL-^{a>qQc!) zy63jSg1AZ;`P#9K67pCtr{r*k6uCgG-OX~xI=Sv;$z9Edqce%uBmt-1s^A}H!g`1` z@150O=6#!G>c0e=ulum7&;)b^7z>A}e_OwaqG@{e^ou#jb39?)Glw=XgBGIoNoQJ1 zX=IAB!B|EmDwf-@QO^&+%kwPMdyR|!HK_>N)?-4q9S5x_N#{jFEWbRjsfm>+!}lt~ z@BCd#knS8}_9vv}&#o9MBbi`M2+negl$;3`b;fd2Q>s#^%l{^Bkdv*VoV9qTd~+90J#FYCj7YYAU+l|9)&PR*wG*J=G`w zY_Owk&1zUs0i#P4ZAaOmm_}lN2bPF;Saj@4{&QHe+&&%&e!exL$|*L}XjhR*9-f|r zCwR_p}nTTCwQI&@yWhxU{N9C$e@o?Sl z4RqV;Rg`0C&e9RON<(GhKbt>}npbNY+5mlW!F#thyncjx7;NAX3tfV2RkFZej)n)G zT%rz!b_J_cQc|cagYW_$x$mqFCT$*0xlRIq4jZ6BinbH5Iri2Wr24Y}%>@OiqkB3F zhj)l3%t&UD&Z-#IQR0gSmWF;i@qdQjkNGWD?sA}6UhT=fIO-_?84l*Jl+UV}yT^^P zMEJwg1GzGW@lQ#4Zv1VlFn=5w)%`LHbagA3xDjY*@!&!PrL@sVzqi~Ve{P1s5LuHl z-a|F-Bq6D}m+i#{hf8Sz40J)Rguy#*(1}A5(AiZ7Iq-H@^Y{5LMv1G*!_`?OXqvN~ z&=xbOM6>dJnfHBn^p+!fxbt(3hrVT$tOT;xg!gU{Jq6;NwT1^xd-moH5Edbl@sLq2 z43IZY1p^6?H7Vk2Gn&JXlbUd4@X-F_SiaiFl(qjbVtWAJ`NSUJ>yE{+7Lk+1iH0wl z$%^LF%CE22sito}Id|(Bq~O-5jv)mB;huE)lQ0ex6Eb3L1+@8HSTQd}1|BsUN4NIF zxykGqjK9Y%=r5+-hD2Y*v*8!lX@HvFGZhVs)n~m+=)IQ<7N1``*U%1yVy6WxFU9Bob0IjEr-%qIQ|Cs@Z^ zAlBF20@Rh&tJ(SZr)mbH}QB}Wy ziStUCAZ!JPPHuxEH?E8(>&g!dus4*%O5-A{g1f0YD6{vGVACd)jr5jZ7wT|tSqpx`lRIR?E(BeA5gN6bp!N$8k=tsg#W%0Rcvlpyd4bo z_P%dlUH5?IP_-icr)3aEj{k@X7c1j`_Wwv*$Nry~{a$M43ZwtR*^`t*;MW;lEf);V zu_EFwU?|#V@%Re=$NA|kTmW9kR7r*e z^I(NZqNP!%wBMF|#U$UH*-Rt{Ue&qOHTUbZo4T1H@6;Ty57QkLX02-tnx?Mx^wSrx ztD+;g4+lk>y4vSex_E3K8yXCaR?_=ce7@fA#;KB!GzX{HO31)xbtyL>RRKk4^U;b! zlpH9irhf=+aI&XSq7Mk~IRI&Q%CLQsS?QzXG`R6tF)Ns6<&+mbi5kss#proBQ~^Vj zuo&=Q2%!4n;6VWM;QZiHai|WR@ckA|O>%9!KErgQxwI9i z`WDs9D$1z)g-AX6%ZB8-mua8w4m&VPYB@w*(Y`e02qQ+OPqnpkFF?A+JKJmC}%W~|n^C%8n@M;9DZx*#K} z1h95~61OmbA%Q4eQbH@ZC_a2*Ny*|b#LO=$>2@5-VS#ZKY2+nZ6k!+HSjrZ)uU{9N zp2hfT!*5;mb`M8es(^YA``)bhV4|tun;e@`Z+@Ed0DJl<=2=|?OOFn)7V1R9-50AZ zhqkfQ+rw6BVRSXawCV*$SMF3X^5nZQe|S5WGLdlK1Lg_Kb4E z@8C2OGuRUWNvVCQTt_8VCe^+dVTQQ&T1Vw5@@QYE<}l1zAb01 z`FOC}dSxU#DRd7@YDW<&r1%V7zTd*aB z`k13`ZIr<}Ie-_KKW^Q*(;7RhVrN2*6C*5@1j$^+AN%Js=8NEAgeQNxwL|l`7{SP^ z`UknOu&LY^9wq9tubF^&pu$J=Ctf0fpsCU)QlcL=(Up~a7L_C@dnL8e5$yw+;39l+4aPBLH+-^5w;kvH4Z5Qq2`YCUjBO zA0Ce*r=LwA3!TW{UG$hOD2f{WPQ63TxyPB)9U5Hr@Ex=bPB~#NqFmuSo(gTMyFI%8 zVOn$0;AwIBtd4Q4c~Ywp{W*{wl4WU(;mEE4CZi8D)MNBS|EI3(fjBcv)&dZZhabn#o;$tZIv`B~a25(1cKNgSEQ0At^7M zLF<(qtoV$#@061-Hb_25hupxkL<7TMd{)cp2W=C0P=X)?)8(6rv5GV9fEdzWc;JaU z$*;Yla%`(v(~2(BbEXzO-CkYc!??Dy6p!5xU4Q~`%ON&o^f?X4h^ax}7y$y-O;FCL zk@;ct&o9(t{)tax=m%TMce1+K7ki<3ml3WQz#1>kvun|`?A&^hL(7bu|7CIV@D$NI zcKo_>nNB;BIhx}F&bu#XxuKh)Ja#k!QBP3+E)5zp-SFd1nmSm)t{2`wpkK?UBj@&e z1pwc?Z+lz*MudJAhxbfDZ+)R>JT*P16HfPao^pzXsXu>*VuH|AmC%kE7sE|+4T0T@ zCtHzcJ~MO0?QOrrM)(XkF_*w})t=rnL1!+3%TVcL1tSh=ah{`UJ)hKBrtfn4b7Fjt z-%gy(EYob=!f3t$n{-P}gs(OgpBIOO05Iyu5sht3s7StBsh~1*UB2qRj??-^?p%1x z|E}_p*E>O|6c+N&`B?$B(Lwy}^pE6qFn{wcglM`=m387zXJcx)9!_`i{VP3!XbT>y zMAq$h`?=jey4)KTm_SI7N(V%vNLIlu%=oZzc}M+APCS8OPUchqHmB;-a~R*60P$Li z+NrCsT}jY6eO zumnEzRl6-S#L@jAhH~v?(V*aeW<=|4qKx?P{{TcRjkNg$^2P zjAKoGx(9z$K6&d;H_>rwU}|<^rhZf>Vj3=2E297yrtBby*pjGV4+w5fEk2NT^#p>4ao4kzS230yUF8*5%c z_r6fpQRcn8-t^tO-KG90)Ib$Clj$a=(4j=^_HzW^c@ur(sCLnIIUHwD#*ZahBg zx}>*f5OF-Az$U67EJso)c96q9l%?n}NAdm(Jv#`0JH`gvpBoAQ>Kqaly5r^ z=7$<}nv`8+&8EPS#LMr*ixyk;O;X!eT>&+t1w0V1uh*p7Hu?1eoh@6xSCq+gffd}P z*|QO-);|P$OaA+TmlczQ(o~8yvg|q6)XYQ+^IqJ8pU%vf)&bJo`}<<1DU3sBT?D3&)4s-&fLMK4L-DFgJY>RF-z&_(6EVLUrEr4%-+~)o2-%4eldlSxx^KmcS^3X{1qb-e;I7b3kdCM zR;;raHMwt6(OacRTP6z|Ka6EUs-n_qrq6WM`BE3D0j@k3pB`@HIYALB*Zk{U)HB^B z-6U#SscLWLdzyxBla7W>AeMAe;4i@UQ!Qyoz>~}cL@eUolu&f@kaHv;@#;fo^>U91 zTJqw3_P=ZrP@@9|Vps)1zCP3@s?71msg2`+;H8H8s7(z8DenT$ms-H6i*cjF6_0Ci z^$SLc0iNk4c{ZWJ*kiJto88@orm+G{xq}El6{QY9=Ty-2Fr0r^Z zW2eDIzbN7oSZ9*IaYWV$hk;`{WLPE)tmXwD-19^X7FBX$l>DXz?_yyz@=BPq}| z2S^w7jvR>^Or2!`@x|-!(eHToz=hK%s6rL?O6GHEoD&lsy;JM8IhS&@MU1JHP}9HJ zAITU0At2f-e8sDF(c9s2s+yWTS#ZrbDIO4DZ7HbkaKzn94g9HpJ^@53UeZ6c^QPu^ zI@qAvzDWSK^KC1%dRI*zI%2&mKQ~iyrAI{zyga*eZFxcnFuWvN(So7_$Hnh16CH6t z;32Ga!Gt`HyWYe55r)`4ZnhbJC}?U0JVK&LK~xWNwB^RGFol%rLS_EfidFw>O%oDyv>h0r9rk(EzCOm%X10SZ$@ z%hS?%^*o143Nmys2q~F_2SobGK zdb0djDb&=^`f343(|w{cN`@8IR3}wyCwKK;R+L7ah#5t;q)gNayg$xT4vZ##~0Ng=iXrLt(p{aPb&3J7RtGU4HTLi;1$W&IiS1`)Y! zT#ja(riK$UkztB{!XJiU0wnmg}jA3+-ViRt%v zk&kh&nR0oAY@4Bb$t7mWkA=16v91&FS@D?mHQv z1JLr3eb&$yTffVXArxJnMDEnobOVWan%&lDPvPp~U=TkVh%SDwl|PrrEw$z7yh^P2)> z;ah!<1&_G;c-^iedC;Zl$|?SQqE!rf0(zLriPgRS{Py6XBO!OG>*hkwHU>J!gQp4zm-}@vat_lH>lqZP}i=TUDfxj;NGMo*OF}zkO z99sE^18F_z(2!pGb{4I)Q1lr{wM$V!fU#5T5L_0@Qow`c`5f`DP%o@!RQlfZH6)i- zNc6=`!Tlkm)e3r@^%MA3(7*n{wewezIvZ0XnN5Mb`T4%Nhh&Yb6#GBTv9hJ+i-4jw zmVU*Ng0ir3{P%{!#LmL@|7B#%M4U{FOsPuVAZTD*Oq?u<^IvoTYfN@onegCnA~xj( zxUDTZcxom%P&l^1sX1bJl!fdCy@i;fNFqrN6y?Z;X^tG{ZReSf?;q`*Rx`TewUr*X zt(WFpwmM$Fidi~y_{KoW!7QasA6`L6|G<k{XA1c8lM23&;-uK_G?FciB?&dc?n(T_^)|vmx#GM14@Y(tFHArm3y_^=| zw}ev|fgn)8Vq##TAwWo&KtrH5|6(xz01CYOu*4exM|4jA3NAtrsLh;-pie$K(j#U* z2g)G?a2`?(lEDpt=X-q>EBTwAE{cwa*CLZ+%XQ zGL}OsIOwmhNFfQ}fS&^qd+b%6H^4K4>q7s1C#IXj%D!o$m=&SI8awh9w6+# zFp(!PtE%b;JRjG=>1zW`oFXg;iIQ?`9>>b$K>@eG0V;0|oY8^aEH0dZhXp{XWQs2=EZ>3vN_ltP`#C)pPjJiouKF zc^L^Oz4kj#hZcB|4B+CgFtFS-X44m-ah5NX^=ye%SljH8(b+zt^|pMU^Zud}=`P)c z<_Nk^p$k>)Kij77cu%qB}s7Vj00bF!l7hGZqyXQR$Feumi!i-thCqKmp`ZxOTHZ zUss`#O^}=uU#(|vv5}=`BsCd}dmB6{(y5C;;0jBqDme9U4}(>Ub$cWiWY3fluX)O2 z-RR48FuxjE1XRV=P%sN_(K#GYI8#Q-N*RZ%E8WUB&kJvNS7sTvZn-$w(Yf>nx? z>~U0|wv>-FxFMhFkl<(ABev_4X*6QcnokNr`)zc!@02;vFT8u;Y4PXn*z+~36|54* zmy^`_% zDi&V*S7aWE?yGB5v)m`j_-A->1V_#HZv7P9yVJw`gf|~v4%)U!fvKH~=Mf6cqZR4L zd8k!$tqYY~Ql}pitZNsPX`KGVoi3#`B%B$MrBCQ4N1xgTuS~w+>Q!vw5pH&G!%9F$ zrNEjzp+NaMQi4mvHGq{TdUbBWOeFoA5S{18fZ%zL)aqM9eF5Z@N7|MD2US3-zwIyS z))XCobwMXN;PADcK;u*k2gQ(gCubgI>pHm@*=h*Xbz@X3aa~82#Lk!d{yf`j;y?=B zp`h*fn5cHSm7|uNNcJzaG!x(NwwFi+;PZ%;e#_iF60oItbeJi1kKuWLrv<~U)h*28 z!B2Twqk`p&fxwS<8V`&a8NO3vtv6<6yjuYsY{Q-@BX#1~gA)r__O1C3THK?w+bX}P zN*^ow9{1z|spqo9}3_TiSZ z-r-6YokcW6w)!mxmX}X*T#_-Ar%7y>{qt&?CXiSVlE|+6)!V?%U@x4dPsk;nO1#! z@tncTKN6WqvTI}jjPvRm>rrOPnK9Lj+~gyNYljDxch=~Hy%2G zG(Wz4v~ZqkF#43w`*XnkM-b*oA854 zme|^dqLqu&9}UaWG6DDJ*6R&&XNF)u^xV_Gtcnwc(Puz^TJ{Nf4+vhhZqd>9P*Hkb zes8|#8=M=4+MF}V3uwPgv@_a}xnTf3Dw@=bB zZ(j{+C1vTp8)KN&8nWUoJrT{DTTxxA-~?OV0FJO!_`ZS9KeYblZAU369YG#($J|}9 z=%*}1_sIHxULW=j2x@IQX1*fZ)gXfpzY7(Rpsfp#?{AT#gIr$H4;~%g#U5j<)Bta9 zS`ZQ*NngFcGJuUq6>!krZ+`#r!n44CmI;0zk2%e7gcelfU+14Cq|5(IK%6S8iDpRB zRAtPY@9Y+Aq()tXEzD+t&|*A$g$l9u_YYbu)7}k#mARQS7&ELW9~M?$AB7LVnc>t1-RALCs~QJUIh#>$Tq9;bGAsrysMD& z*z+Qp5vpheM#T5j_Ew9ds*pQm<2E|@#!H`nvDQj*N?gx@i>GnX4!rSItkputci)ef zoHtC)5Cqh6FKe0_Ju9=?6Ew+wJ`8jnwx^Un(j*?9J5FwQWg<|Jbc zpcUqLVW3Jo1c60gKvItVxf5 z5>+M*`D7bHd3eRJBnHRSFn30ky%L#=I{gi2cr~!F9j9%CJzQ3D=?FXt>)d^7165Ud z-*T{A%v&WnBvfCS)_TG`J~!G|{Ydf1uhZ{H#eU)0!0!A|rZwAWD^R_Wn*JP*lVOO) z0Thz^oYHGy*e12spFCySMvY_fxec{{6qXh_rN9?;PZd9*#JnIK{DlF(W=SzV2}u{F8Zbck(+iqc8XW$XTFzWQ^j zct4vdQfx7<X=1jF zqS|s9u=fpP$$#u^5p+|RJIRiJb5LH!8c>ME&MUQG6&mZsBXhIsqTSP z@#q=xUw9Q4|I20S+T71@#l zhn;il=B6^|p$pMvqhqCiQApz6+4kt5uNORsCHxv}`a`AXrQFyR*G+rJ_qKvc0=zns zH)0S~xFkC(wv&T=u^_D}h`Yi=@!_O_Pnfnp=*dCKR7zS4MY7!~H(~tor$i2+w38LGD`ANzQBb_**89b*Huj<9eDO72a5UNhf@{ z{Uqf-=!GV#>Lf3izp_ohsW0nY2yB3+utlkxZ8Xk{4~d8zkRQGNBmJms?WUK zZf1wwp*o`lN+4?WCGJcXY5wrcL*;x1V%ZfVkVGLJ;g-1SpAv2yBHLSrRg~-|Shr*z1cd0rp*P~d*GOM3mp z@&4MO0xo0uty@=Q^RfL68Ah~BYR<*NM>)DLO`AeIB}nm3vq2gORsO1wjyf5~uKGGK z1^N07#?!*nqsI{Z{P`Vj6yNI^-bcKHaaNL{NeK(r4wt+e-phE~V~Mbgk=*;iF`ov1 zu-EnqMO9eHUcpD&-|r4IY5fxal62vG{f-%|@4rhU^tdcOyA_xe@pVo%_Y`QL%m9l6wB0Mx5kaUP_FA`S{MS!Cflm42~w@xZ{f{2MgZOS=;?^H(ftTMi_!p_Gn1~C*aMEse`kxcjq!3QVgI%vZ zTMYFA99FPn(Z5IQd#=c+8E3365fyYv=N{71Ji7EJOyNZ$$Z|!UPJ~Uk{&#G;l z^CKzf@*0;fkmeN2lywhTBi}@JfVwgB9jWQ%@yQxS0lH7YAB=@5wT;I z$p;jfjxLpK{APEAL)X)NB# zD4lO=&}3w=zU4f8m5+GA%um4ld^(EPV+tavly#=*2}jXUD(d_Z$tarVO5K^rdgx(%7ES zFfs^YDi?jU8kL;{R}$}Z|B#hEMyUiQCrZfat>~3fJKla(tUhS@^L?TTyPn7XQv7x- zcAp1<&=}90T?rF@tD-9PPR=ZF2n*cc*V96&UU+vcw0S?EP}~K7hjL)Z&QoKt{zh3s z()2dxbI6rnug^hw(=x#X+5IB}UPRY*5kvL9T%XlW`(S?k<+@`9i=)>OFdgKF{Fb2j zR6$!%<3;1*!KRE7(=R>e@zW&6omB^>#hjyfS^eA#A9W)3+auK%I5c<^zFdjpZiX_7 zlI;E;llRREGOi1Mek8U1jIa2*w5{@akgO*G7o#cNfO$(z>txk45+hxdQjk}R&ZnlS ziz!FSQuxsTE*5SaiunGBsKW<(XxE&uR$$qy-*KGZ>cE>n+xtg64#rxD#nX@-f8)dEvK zg!_zs+3D1wXJ2;tyg{m*gd#}R$-&B(@~A6p?Z=IrBc3U;*zA|OO(4DIOsO8%5!(or z^Btyo^MYvA)0~7$%EKb6r`!;?Ev9?DtnF}6yn36-JabI=R;!Icah>Fh*spH=gWPtg0-eFQG z#o7dUk*xZaf->0;$mHt;9M{A62^?(X}JhjL*S39AF?)F6#F(ES4#Cd}W}^G3lKs!-GbKy8e!4JN3(^qMlsZ zJU092TdNHYN+};y6b%=6JON1F4|HtWuc`lkgp@RDb;qa}seZ#=P5Ti^TbdbVb z(mVh5ob06+OekomaH0IIbp!=`}y{AMB^Ywgo(#a>UTK%1wVwk`#j~* zn!JpBpzsJ(nZf!A+AuwTUKi$eN88(bmt~IodDL1qcPeL23po!=mUed5t4M}j%QE80 zfiz=OLqgoPomZaKhc`V1hh^pO!B{nN;483rO=@irk#Yx3GzHJ|Vyi)nGm|veKru*} zR_v);W!ic39Rw!7N9lK(G)%k(dBF6(K{GT7w z1Kuz%_J72?YU=ygF1A@Q^PDL(rjsF~-fjiH8uLK&kq^@e5UM4d;^J;@*43H+R0OX6 z&BLA2cfzzR^NilximI+s`#!7MEDk(h?7{7QJtqA1*?SEnJ)o<|bnX60`SrbBIpRTZ zTwn>IfWfHJ)WN5JHZHFG1P0Td$;~oDg-ui&<|%_sXoTQslT;IY$Mm5jg=k#rOch(K zhWB>~%v#pifWzb3P%&X_z3!H|*y&=H!3zZ%mL6R9*N<03!SV@aCwINA9LmjQ^Ko}U zB=Mh?-S_L=8(Mn(seXX4t%60Ax}u2 zEq}Kt(tmB!U8<=-hK;diO;%sMKt!PfYQto$y*8qw9CZrqg?%@QGGGMVRc~ehSCx5^ zI*OGZBBkae@Mh0xOFym2E?gN0BR*QgjMBRdcHn#fr*Z_?<^5AXiP zWgz0h4a~wFd(!62CQ_A2KfN?z9yexb8r8!8qlku5sCTnvxAxqpggDzrRwc5ruv{%| zzra&%l}Y5TrgN4#33YC|g+*qDWboQv(?z;}Y_k7}&cSDnK!Ivp0?3Ts$&I84Tbsyn zpH63G1Y|ODskhRNqvu)X4CCfTDw7oXGRf%E*{Cv%4~gb76VXp{snn0!kWyWrsc3h~Yks&@sTxoFfr${l47G{7`rBgu0V| zyZToL<1bZt>m8zBKbNUxz$VQPjW{k@ohlo}68Z6ZmkG^RGnVVHcUr5@2S2IbV+6(! zAYnd^-mk687??_bicb~A*UvkuUN4egH7RwULw53QlmOyJL=XJ;QtaO+UFQa_H1-hd z89nC6%k)EN967y4@+TykKH!*sofr6j`IE>5-;@B~OV#LzqT{4D+ms5<993Jd_oYTJ z3Od{56cya5USoFzF1cIAw2*@i#$U#O8Fl99IrZyHcm-#kwGIO@-F+O+aI8WO+K-v; z{3LeX&Gtf#ZO4J6pQ)x-;l8Ul2!ooI7o6z%*dGvIhJ$a#v7y7nMvTmEHRl3i$+FH*tczDk@sF#!>r-|pvF$k> z1WwmlSZ{m#qEpiD6_HnM4m4%fPiaGwvSQ$%Jg-aS0DYgZ&cbd$6XmaLKH+9;t(DQ` z?VODd)L3f{;p(A~=&4+wmac`vg|!iF7D-k_d^VQ6FcW%H`W__JkwtzbaBCx@8yV91E5)wY?;o_ z;Me4yvWP%d>&r?IUdYyeJxtAuJKqA9G7KhM9!#r?R(#$>JNz_LTl(K+t8i?CQ**i9KJF@-Urg^U#xSTkmS_4etOTO zpob|_5h3B4Ka%DcRjPQ&*%hl-euTq|i~a80mD}~q4lpC#5NK$BpNg@j*>!Ma_(XKS z=kArSwwmAjy?Rp~<=I43`6VlE?#j2~?)QXcWP#sZMAAN%0r}@#e+Yb~=>2ri?HqFd zGJaF=>Ew_XhkO#4gZ(X7N?PMzB_ASd+*C9=kP4;?!&(-GB1eUQxuMwcwWvT69 z)s^?XjJ@i>0DK%-NUsySH;b0QPK5`}Pw!cJ8ZX}@jf_vGQqkcUDixM=_oa;MdYTqb zjGM}46oXq_MVh3-UmZQz6<5Bx6uJ#&xMs=Hx;+2fN6P|JWm5$SUyW-Td|OqkH6~6~ z9(GYz>{iKtmK&~ne)rCuH3gbo!KG22WUi<9$!oLBWOv^J53F(S-<%}3%RQvs6;Cdv z&m(5-G{Oc4BX0~UPHUAi@*5M<@>_LgG0fKmHVC}Ch|ScC13pVLb6AK>eGS}7exTLz zupmd+wo7m#14OfLB1PR5qAzRD+&)Tm{U{aEkmPoMSd^zJkSW5`Den}8TI)!L?ilDg zH`s6E6Bee zY7C?fo5j?I4$Yof5p(2JVpqA*Pi!!6b^1euCMlV=UkD=M^?E%2XYEL zxX?l%S#Y2^T*bjg0{lmCo2>(I!kfzGC@5n?dN@m%%dx69P0jm!U%g6SwX~ z0n{7Cwe+5)j@AfvL zh@g^6NO)lAoB;+Y>5%S}8eo8dVFs9?rMo1g1f)w)KtVu2N;;%dKw3gXKxyPZ#=ZCd zyWh9g_pMp$%-PS5ckg#U&tYZK(&d%0L0iEU(I_l0gbyqR$f>I))1Gp;&fkuh_f3E;JS2zrd!{lLDT%0-@1*o_o0f-;~5f+2o69a<*0Wetf zUx8>>F+d*Xj<5mL`2ZC(3XUOWl|wswxgzZBvAARY^$KuUa{>@i(R)0<(*YSLxGTaM zh62=KSbMk=?nG-C63|6kBj8xCf0W>mu*YJZ#rXL>JUsYdP8dG4f2*A&ClBC(z}f>k za17kl9c}~s8W_-kIl=!-#z)Kw=-DGMe{fy2E!G3(3I}ii5@8KTVQ?94C>yvdfIA$} zRaOHuo#CiI!D@d3c!0lm13>s7|1S48`&S_Z>UT2C+8XWT3`2P#P(3LhO+q;2t#7ff4F>@I}Cw@S>XbHcMby-WwZepZot3eVXR#d&R7f|27&xFBLA;4 zxLa00*~p=toZu)dhWJ;1@(5SBHSXHI`2TFy5ry_Z`TR9(5hxqmUqjfqIrHnI5H4nDoK*1vS1Vsb^xC;RHw6^E}RbJ1_8UEV|fB6ODCh+xfMmqzxxFO)a z2wOPrkJtwTbB6<1S2wt?&;NG((;|jI02_og7O;ZbAyCBssg8r;wtsBg@?8<0z(X*O zdk_Hp>-X}_015^m5C|B! zhkNn;XBjORf8uW&;Q!<*qioRtF8+7BxO@6n%kF;}!0}fdoWMVeX`pemg##S_VYw+7 z3bw{QAphT7|DE!Gqxi2X|1XyRcSDM9NaSxf$8Z1t;f6UOkY0ZSaIAI1;uN5c#_0g{ z-=T)^KdM!S+aTPW{@bgJh2fMSgR;Z1nHM6&2NwE+e*IpU0)zj{hZC5!Bklu&!4dP13x>g|4f}hIzic>8Pyg&g0cDN0`6WC7 zs4xI?b%l8m<5rKepnwkqr%)TX=Wl8Q{Cp@h7MB9xX7&Ya(XPb5)(jN|_;KoWg8hPj zBLWbBe;)~RvaE9oQl*YBsE zc(C0nQM{)T+NjagQdyFzMnx}b@MTE{`_`&kZx#BThCO@9DK2<9#xycjBb`}QqUo48 z(W8QFp{uuhmb{&zH9AnmJ!thCOBj}1LA;w@UWl;5U^b8BEW6l!E1kl}N{LdAN>@FX ze@TaixLYnS>Fo}U=^2R7$RRV*{t59G4e7hQ^v{L%=z!E?L1p_w3eK zw^-en#Q{WEuCP`K{WSyoX!_gB;onOs7$YZ^X~ozSCfO%sIEuqXW=ec2G@=sxI&O>+ z{&>lFOY|;=uY7$VSf87gTF2kqZ23x#JYMkLcLOAI zZ@|n({K2smLFqWP23(6lTD5`Dz&cAOL`2?RM6`74^haKfv-fgNy4p^L;xm7<@s+g3 zMyH2##%Bk)>&N5OX77^@f&GIhe~UeP1ItNe$hOMC%K5-_X%Ux1yK}aWyVT(gQ~Cy_ z=2Wwzjg3r6d4Px(J8)gU2=sGDWPm!Dr+nrV{w{A_i5K9UfXH14f!0Nr#%pB#QcIK8 z<)f9YuKoOR)#AD^&*S^zv(adtA&no(>X{Dl7H94TXuMU{ZgTtF;%;rkexd4JY+usZrB zGkoO-l!K|`5xM@202o1g~^**wEZAqgftd2Ma;GYRXXf`IQ?!*8CBm$F{m%+Mrb zuK40%;PD!)^7Q93(`yzpf0YW2i*z+#ZTCVtNwvs{HbA}FSeKSsH%V(SH%qT|w%GQ# z5U5{JhuhxolGi0c=&SPcB_RRTkmohQ)dx5K6ppuv(1wBy){Ej?-b}X%XhKe1*ozJ`WqLzN$hr471MPG0>fuPhu$pgE$U7OA zhws>+DI?&u0ws}(j@5+gww_)>k!5xF&T7MCnb5L zO}5zBf7&AVbxKa{+p!~vc%H%Y9>d!wTxLekrA}{39bRL`e^WK7iwF+GbCA{+VGoAS zH(-~H8r}r1*GbG$kxU)eZzVgfk@+0-V0caNvvZwXTtZ#jl_{L&#$52Q{GzbzFpXQ$ zSM97#cBsY_!)?nMv+(|gdt zOTjMj-p)eNf5=V~SG{K)bvYs~9oI#v zS*m$1r-kRZEE3LZQ6k`k8 zY&iEP{65Q#QH&Sw_XU@zYG+rN(lpQJnUH1DG4;#&tqZXp27LT|>MpMTQk5Jx$tufTSqbv5eB==$vRI{`G1`)|U!WuXN}5kL+qdLOVT^EIaA1%?Z@ylL ze`ZO?Pr4x5+TELGYl#LLT{0_d%47WkI*|R-sq3*bbJ8U(gnhEvw9J!V>qSQy-?%ZUSid=cJ-sjbU&0!SJvsLsg0`cWuGvbviTrf&YohvCmD^O zaFC$0(Bft==?U7)l=O0nuAj(YTe$kef3yB-_D*yXL3}3T_iJ7`VUEW&O&4R1o)1Ru z30g#NO+}8sF$d?G1jXwPvd*QU81RGRQMZFtU_faYe8&TS5+4I0&3T$QsGjE~RL>XNYUd(A%+PLb?xe>00S zfw|~YGWXO^HEgs;#!N8vEg!sP~<> z0%A7{v#R6k`foIJer~}7LI=Mcf4<9&xs|ov$fU*8G>D9afPEBOv778hn*~`34WCu< z+ZEI=Pl}8zu3~>o^hI!-;bm(J-gPu7xlWW8F`u!SEA%>h2w@>gHOR>3l^=oWMaqoz zrV4UJEa6LgI`T;4Kk{r@ndQ$3nI0bPO_}7>oRE+SZKEYO`ff085OYN=e>4nf=FldD z)N!OZA@vM&iO(u9-8d&ha!&?p(lwq)DJB`W;KK|DzCLgYezuwW+7y{JL3B^j`Z?FB zJY1oW@ez^jS!K>8C3g~GN>hT6@F9{`eUUBZckR!H7@Z(L{9)_hbNi3*IGI{ox$bdp z{LG!ac<92HzAh+X4tnFge@0V^2gQJSv}0zY809CWo2L@Gx}XOhx$eSU#C=_auj{J; zNcgqD>oGfxu}ar>;d7vYpe-Ii`EHvU%W7#}n3i;#w@LQi7) zC`Xf~@2?i7SXuEXEfk$qinZ>SUVht+EF%q{4P4k_pXsEvNg(I`^sp+l_`Eb&One`& zqfbh+-W$4h>yS)ye~1(FfTr_?_K-8x>eZj-hwZhf4{B9Rc!jw(G_BtB5=nx0+a6C@ z-wXcM^qG}}SWfq0@f9;6_eiLaDBZFU9o0q~| zJ^7}ZM2ooR^a9H+O1>1$_{enP3DF*U$8u&{C&LQ;!_)u=R^Pef1ca-{9E}7(al&SL0&Tz)AN~CW8JFrFqFpS!j+(ywWSmg#Dj%TxLVmW zgZy&8)!l%8u|D~pso{|4_Zv6aFSMz)zl2#|o8Z#3aP$}Wgx##1fmgCV@^^R;Qo!t$ z0G|f)BtVA^i*FwC_3a<)_dh#{%M6!@H6AI5#e=27x8xXq`4;6S+L31f=v`s* zER(A#6r(d;|(>O;#-PxykxYoBoY5jox<^Q!P()olMj`r)Jd zEATSJfA-j9oL6zkLTf>_FtSHY6_5^M(Qmt|^j3vwE=&D#%VF%=jRKNl>V@JTZtV3R zoJvnGt=i!mSJU%txb@_#-*IO!i7EP0Xxq=GaXQ-@qEvO{g@-S_F)Jm1x@+K<|BRLu zUExyjHARRT(>wokR6FHlbx7L1sVkbrnQ81Lf3N6snYCI#3iioily_ng-%rdw z>1p~gWPq|(NVPAYP5!f6z{fF$CBkHUTHPq)1+oQFd!Nay&_UMbJ|!Yhftu4{Be3lY0-LnbOqUYg9bFkc4IPAq=oWjN~;m7^4hYU9Qvx_2(=w z83ohEJw$I0T*>!1v-k=ymq{0-Q1+`l2XB z-ted5Yv!b9>$}_Ngu6_Db=XK7@!I_#Xoi`%`B1p@DXRLvYA-dhx+u+3prM$c~ zzM0WA@sIZpzb0)~iX33Pwwi0$_f5>mWIU^SJxnGx9q5$aWN9jQhTV%Q;^~L3f1=k8 zo_}h7)h03GC|$&gQ8u--lu`D-_DYdA`N0CzF5jFjhs$a6zXe7i<;xe6 zMxKI&cy&BxS-{C+=M+<$ZMR2$e}V?RzqLm3&?u=5s9n3}L3lQjo33g;p)vIMqSR_P znRB5zZe2SKo!kq3{e4;A|Jl8uwdD)4z6h>C8Kn}THi&Dy)8mbco7)4K_brD$1}jVK zlW`fmywA}ml6M5+KH^^Wy0;;Pk{V)_mkGcWD!rUf6Bo?7z4#M)*__Lve>?NR*0FvR zgb)wK*ukGhR_TFXWvN?}k!V*cO$U3yjv1kU;NIv-q_FnBamJi8x!yVG%1GSke&)9l zPL`9@styL~4HNfVMcH~a5~WlTcY(5I5DaQW{CTiTXeK1tklg|LT0viZuQ)O za#SKEp5M4SK-?nF#%o4dc`0X9{8fTxN1BfCUelAo@2Q)z=rHm8#55o{g4ZA(M{13&O3yGDu&W;%lq+I zJ5uN7vK;Zyx7_r?R%Sblqv9cS4Y*Y{wNo6K&?h-H)Gr1O=&8gNrHsQ zwe)2!F&j;9X4Lhce@4vm%bFjza$Js!NtPx-v4EmRNU3)ow9e117bJnNEmt?#wobV6 zOsv@8F)qgL_0KZD3fbCmd3VH}hB=eEjw&djc;^?>eJr0yo~9O4u}9>cC^rqf%#1!= zN_-sSRU)U*_j6a}Q{L2&XW2+ax(enngQ<9L{fuLXA$crKe{yNY4r6xsL4?6lJcHuu z*h?w{y!&-?arTa{L!Ui~(<4+lIxteF;7S(hH=p+2vW7p6rFcCYs=!&QlYFC@DOLDN zheyqBZs^kPUAl}h!4&d$?CiqKn4Tu5jbH|4%llw!R=Xk3lVIC#)CmF{c93ndp9E{# zY}B_wZmI_D%}crU;bi7?94~^{ zwh*7cjZ~Oi^WeZMDPcG=SZ}#sH0@FBshQ>kL6>Ec!^@57DhL^OM0mR4?O=ABB8~Lr z>GvEl#mG+`kkWG5o*8)>bF;<#M(=BT+^uRtm5|i1e>@89r}`8w#4(JeKW-_dKar(j zY`nNR`@}$oJ@>2bkK!|zQS#&)4(_W*t-+j+sj4W1zEm82+$2~k`_}{dib2?x&*_#jG-tG-*cYp5hfaS3b%*kE`6^!yl#9wR)+xo z#=C9of8d*7;}NEY!8u^)q=V(g*K>i;0i6d@)Osa~<-g6XhS!H2)`;xBEtLe6yF`wEG6S0NH-yYIXzt{X~A5y6B{1YN3 zd&88RmWx8xGZJ5JV(2O8c|V8W2z%=bf15v^yzewJE$*K1TG0Mb1Ks#iYH{w& zrUPw@)K!@<2hu;RjMch+Pc~{^bDN}%%6mM2Gc$4dSsrH=MQ0M^1&?g;y|1K7A+I#Y z<-14~fYlF``gSVqCk$Yt>QG+EVGs!Edw_XygNQ_f0FJ ze@~uo0&`P2E7^sWAr*2}G$;F^`|9@E+E21aJk0Cb|u|L){%Tng0BVm`WltbNvrIaZ#ZrvO5 zwPI%64+`}R^1nfBVf`~mLXDSy5MBq@))#`+S!uSUzicO>1zTu5?{ z^-wXk%TJw)%$`6$`6eS5W442Ie|e;L@=Wna@ck%#ETPg6`8pClgMRXS5%es^Tl>(X}#CMZOBgEPY2GVX40$C z_QH1U{9d9et6BD^4Ka1V@|r^a`}z93DhdLoz6I&L^0THQCl$hJe=RzGX5H)Ieqzqd z3OgdCxd-)?vrMPweIF5$d}G9)WcEGuSY*7%j1&j>+ex@IZY_Iq;Lj(^P(YS-oepx1tRyA`?<9X=3BS$du^U)1Qs#Sh(z9p#Z zLz2LEFYDDJ<+gZUA%u;+lQr$xPcgd@W?N?bLjNqjAt7PzLaqVj{y&hVn{1cCGXxWp z@f8yjF(5HEFf&cZ!e?VMfT3KVf8+RUMo^>& z3;~z=FAYT`6n~6DV@hBYT2T`L2h==W06}3uP)tftTnYpNgg_w4zZDTkDL@JA1+xP* z`2jTq9O{A3rigI!MZz2$QRp~-KLVT(E3C9#Etg)DHMnGN1)^ zh5jjxAD;~{aD;jMCD2FMqrAaLD1ZiBU=S$W18w37w}T=9baX&pRRhp=gTnt(*7!?- z7x>d0K#*VXA9sJOe>sA|e;b1#5QM86814&$I{@}D7bu{uqQQ^yLGc1$xZN*Bu!{!* zZ4dSW!+%`BwrGXlse=I(d0haEuJBKN9uOqV4dub_0dx6PqrfjW=r$|E?GzENu24A2 z1OHckN-!i8g6_Moz@Ond!x7$azrRoRFu0xluQKdB-2@EbFn3R=s?r}FG=%>j%mIo5 zL_r{s1V|Wwx&u%jh@-%-00zEp(BDGAUog6c0DnI>gd1RwE(00>vxlO8@clf%UQhsq z^n?cZ{kP!XCwxIczzzmM0k%*F7##mU-qA4B{;xB7{z#Y)U=BjlPY?k8`uy``iDsA` z0`B7bANAiO7BDk0R?*ev`BU;gLInkc58%fqCJ68eiGl!0Nl8FlR1ygIw;LTW>`xm1 zWq+y)w?_bye`Skq)883;{hMI#|C#N-P5%E# z{>#h%mFNGPk&35_%Wpa7Ukd*pIoK8E;`>JfOZU=v9FKuc|Thug%qj+QB?s z|5vJt0;88f9`4}sPa|O-Dli|Yoem5Iaew@aFMr{Nzc$SU28Ze(JYc`>7JyF>1o|Ht zdc7dd==;M1P0HUQD0+MT9a0$%LD>CTGa*qi0E|R}eepqPE(wW>0)B$%eYAu6{H8G= zzz;{D&?W%7ya2!+fyDncQ!zk5ALif+{)PSqBn1HhTO=6b3`Jjx_Nf2h!vElZ4S)3? zfe0V~fgvHDuJ$hISbxK4!U;g#J<%im8xcl(Kxg6tcKrtu5&{HV!4M?6`oAF&5Fp@& zzLwzsiY_Af2mND)|iA1|a z{U$lOyMLd5Us_P84-|qwF@}IhhkrR$hc%y7$rRMX`U&^>fs? znf_qdUBSk#oTfiTXS_6GXw09Ud*^J>$D%zmcqaK_4hloLdr@JJFR$;tM2C9aie_+PI;!YKsV``4YV{r%>tu%fYU zzJr)x(QO*lCG9Y2G{oZ3Nq*-x(~L|}6-i?UP@Q(cnyeZ?i{Q$9}!(7AAgjiLlwn=^}6_s z8=_abH#`XHv%Di~k_c&H4+SZ4vsBs^IfPTq zgiKh@9O8i3c?pMXZ+}cT>s3s%qyuyB!OcP4rx)fdJgse9>m^myY$x*odz3^Ih5xO{ zDG_asPcL5;6OX6TeaEOBima^V+M&OeWL?Nua@fd=t`7iDK(N2gcYqz`z@5FG@9RPM znjM_*EAnT3+C?Db>qd`9qHqG-cI1<|*lc)$d!f>T-Xtb?4XZAj_DO&5n;_E~%zcs? z+uFp~bD`GsC3ui+Xp5U;${vG-qQ-|_C+&%!U0f@l9DQ#hLwK^9-SfWly;Ft}uT;sr zdy~??KIZgUC0st0=iF_;Xqf^5@gGiYGc!j=o99XMLwPu?}drUHP4#c z-FD{80dv8+aLxVm#KeECcu&b@X^f&;jHb|6^-)f0C2!Z9w_kA=+67CA=sUaAdJJa= z1c}@#YP+~a4-Ywf`ZI*y>*JIP`?}GzsRV;l8cEM1Z@J^t z=?gTRR5wp7?aMpJ`faRAlBINuN9fbow@GD>wDiO1KQJ{)rS-=7?bd1kM6}%bIyrvEv<33 zrjh>azSkk#>VkhJh}4nTa8GedhA(=iZ2O_MTzkcCbLDN69kms&3)k2Gbb#F^Q>8kzf97GZyS%&T9Lz*dXZ)OIb|d-MWfM%(^fUB5oD zFuK;Qh>$K+;6y?~Tla8xU&J;lSM&`nMPJUr-GW zQoX8?PqHqi%;0BsPkQAnC8Tq8tIeUX|DuJS1K$SPSUH^Sz3p7&{>@3zRPLEo?Fx*p z>xqec5;x9wk8CblXNcsTgyPBIq#Ws7b$7w8Bxyqb?cY6EWP>F>T-`fZYAGmgtl>$wP zo3?%AQ#Gk+g>`V+&z4hdlCnDCG^yEkt(C*Huiq;4t2w8C}u|^nRO1*)`o-6h{*$ zyMdNR=Rpyl4yglN3Kk3!7}~0sYgKnG;*@_+Hr?@;mqI_>q@My!Gb?amCMtx_R!|~* zm^)&4%6Kc;25|{C)?Is&S+q<^q3Mod89`JLR@3|k10{(ufg294Ezi z+J@hK8*K5?pa(G?l^$Flp3dY-4#V%3HPXMz!=y7C664Bapy;|iq7)-j&Odp+M(%%k zrAHd7bveR=D7*^SPDvos@~!-MAd*32Y%bOj$w+Y%R*t>3xADy5!70Vhr10kng}0G? zaSBGCpif+Fkg|ox67)v;1CI|S{KW6P9t^-T+Tt6?y=8TJ<`tZW{LB!)mB%U(w?kv@ z8!zgiuXEpMvnMED)!da^Z)a{TG;M#@&VupA!ghz8$y1!&)u&PM9`t5Prmu+JewD9U z?`Q3<{#dXx9y3PNHd8MF+~e+CJmZUa&6Q}awf3QRPMgC?Ilk4NL@RRxH?7Dbe<3kI zc%Y)Ncci$}pgp0&J9NUvZu*$kv)T`%3|VQM^3_U^N1mJW3#kCtoG}5s+hl*pc3eaD za9P*4i}akQ(o)S#xukPI;h1~;#mI%&6?L%iHqtpTaHEb{tX zQU&OY%2#}L-^3G7lX%f49SDENZJPB$5_t6BOp{-^l}n04Ju&t}FMO7Ua1$4Ms^v=g z3F<**QP|dD-#YF4H%(jk*7KpaGhFVhmrCgiTW`y%?TIUv@QS zoZfAxeimokY*HI}@Gzt_NA)Xj-k2=smhGt!H3w!_+FR?g)qrifT4{fAH5L4P>9FHd z57Eg&>L1g#UhWWy@nyy=E#1P0achpH!OhQWLZF$>q2U?4>t&->LN5BgU!l4DeO<}z z>%|8IUHh56BP*tQp9Yi)L=Y!ZWA7GCh+o|fdS@SLy6)~Ys9YW(jc-%gtsqY6?~j-v zX{CRy#6Cs9h4^W|$~e8jscHmcIde>x8p|4Px8f1kIzoM)ze5-kd>+Ca<#F5e zh=#DI^pn3@PziBuRK26(`x}(C21f)arL0f`xgQhC%r-KXj*YXpZOb>Y-|D546!?y8 z-w5-;Iqtt3*ZhCMK6~4AF7&>2&Xps(MdvB&tb=h{g>@Fjl6$U*^k<{($qbs2sv)t) zpJ~601B}=-~8gueY!+*{d<4(zBwhIHi64 zy&59Af#RIbbXx}qO+lCXaGM|LXB8gk9r{v{PnQ#@)eV1N(*BEp84LX`-}nY#Opu3( zH3ZCsKU$z=dB|K<_OnNqrd8f7*s-}l7J-XRTN0?OT>m&Qf`g!jz>w}h{%i4(rmCc&0z7&1){-+v%!iH;OoJ$VP z(~Wt>Zxw${tgAT0V`oDG3)wbSEEI%hjA9n-!7A6R^8#JBM^ohJV(+E(BT_nQEW|T0 zw=DMc>?3}-K6-s*Q|@+A1~*73IBR7cVS(SMT{UWyElp`j_@+c2hqIFx1NG|=47?-0 zyf$x4WF*UYnwHQOGx{a;S{QGB{^@?573xGoX6%0>3y!BP^5DhCd`}+NS!WRyB1@Sbj8cjdx^=T~mRv!oHjU%vm-I`j*v-MlU`j^(wE# z;)Mzu!E7nM;6T-&xJ36zm}2^_l0}*Jg`7fru@MS%?37%7Yn1xfn}b+kg3zU0%#^O} z1K58<3GmuoWgtDxu>veCnF4->Dc4q%OR&?+d_(X1`bKgfZE|Qrt}WQ5b*mAJc~DKl zxwuI63#&~pKQ?vUZtyV6gMrxbplEaA34UhTgabvFEcIjsi)K-2R`Ch5@k4hSka0~e zv6)Oo0HxIwDIO`&mE(4vvp_fs4}$^`M0n|BGzf?n=bdhqh&#ObGwFOx5)7BI!kIs}U5^g60Vo z9!eUPMa+rU!b`0k3k*|xL*@p{ApIh4?1x-~!@S$R5!tYq3bg~5im&9TJ<*BB52Jrc z6^%%unV-`ojS%tIU4T6nyw8<=MCHOjV=rP^^uV8JWyDDY1qUVHPL)P&b2{%$f;YNx z3E-Z7&)pqp!jRCf-s=o?IlCOV&pA812Ivu3s6hPtCFfg$ZAN?VUrr6Fj`Jph3dsf_ zXZ*HB7uk=tz1_$|nsC4ymm35#7zclfyU0D6WXlA}6~aB8fHi!L$emm)8{nPDNp|;0 zPSU;`H?eDXY@iRnGDT6qpV z8ah>*Jd@Rf-$>7ZoDOGXTg00T#|>K9oL_va4GAftJTh~!_T!{6uG$ZU)Vvf2oZmp(Qv3qv5q6BAewiH;Ovv2HF~-&%M_!L_taHx#}rUW zeXV=-L$)s=A~R%5i{YM3;SZ43#5dUN!_)x2xP*V|0YFQRy>53qC|eIb;L-cu zs;=aGZkTU9M0;fDiWBd~wmKpsIdtdfj4IV>k90KG?&*p$1>52ARStQ3wKAW}Erk<` z(#;tfJ4o-gKKXob$vb~#KEvNJ+9bP~QkLnErONvvR;6Bm+bCG*8}yn<+Q|%Kc63>B ziOommL{(~>((4*eGdZa?7HI2sF2CQQcV_<>nx*Ec-C{?yW!km5kG*i<=zQQ(ri{s5 z!TaXt%cG7cJZz9|%&mKpfjKP|$Nc+w*ALp0))I*OPej--8R>rz-2JGs6>moCrbb$w zbhDM81ipr`3fPW;rC5`eOiYo8Bs_-PM=IETeHP|So3{p`pzP6GIkz*|OqiUiW1kS1 zu!eFPym6Df^#nV5T-Hi6%S3v;(>al>{i|pvy;)Y zlTG2m!PJq;-^+!>{3*STUgpW_4JBUqi;R{co&8B15n*y5??c zf0Ghg%r?(N1_lTR4ZA;Br0V%k@d)Vu~edgZ7 z8_gJ&DYPtc@05bthLy?^eV#1eNmPnT=-a%ygNyi^ceGWDWSRtZ@mn6N_bsurnv_Yed0CM1^gVo0f* zZ%yzEHK>(wYqLiGWOejr;ZMfVha4Je((3r8ROv!lEZ@Y)Mk~Q~gRKhv#1>0mmJH!% z<+u`)9KH|hqw4(@l^kja-|m>gwpc0gN)&kcvCDtMvKqL<<6+ii2~!aodc*VB60<=w zZ&fIIvy}1W^8|LI(?d2Y@i)&%3dn0MdY&$aHN=CTC>gGhVecJ1=53}qy25O$FaF7- zAYA1^GeDw@d79Dr>;y~1vjO^9om6!uuH<|6m4*@TzHj64H=QrStkyU`ytwz}r#lXJ zUsZoHV8l^>8)0(V@#wtU*T`0$LCo;%1%>BeFk3zQJ|3jsMEx>ujL~zMY!t6+utglK=P zDoNl_goBIE zqfYtQ>IvJedAi!t4dtV(K?Fc!EEInvW!C^(0dFOay)%By{dtx{C*e`dRCRZywPyE^ zi8l#jxZgI)_HS-b_Y_(p?RjMt1^k)UA24T>^7`V>D1{O#y2r_W`?5<)v%r}Vma>=n zrtJqzFFa~ir1Xr2{bYIo=d+9F<0PwM%4gK09FMsehx94rwAU@B^y)lfseFH_TLhP- zO(aWJs!-TE*>j1E<3c8Mju%8#9<4h`w(Z3U@?n!dbt-&!`tR}f-<_2~+!}9RXkuP$ zSS@R3K8*XpVkc>`eY7WKDEvc{P3HVeAvKb(bz!mRg5XnxSy-EarG+h0artb1e#l3d zZBzEd6@JM_E&rJ2&d(?GKYD-FTuL!LN?wMl2)@&jO9iMq)qVVN@Elg|Q90-jguM|- zvrfG)5cDk1kJ8a1<8?=1-jerd{#(b>FJ$EbZGjyFWtZL7cQ*H$^sg-|#qXH4kBqNf zSoN#26F-;|2X22QU5|2hZV)+qGS6yzml4%Qsxj&8ZA!9g(uGn*(1w598+XTY7~0qD z(Mb5LnBR@z(DERHavfkZVY@9cQIIly;vd0jZO5OFqaL&5a`e>gGPQF%6!{i)?ORUW z-Q`GCmRDHC;ns9OSyNsrsC$QbO8EV(hzzw6yf(0(PF3my%?Q{1ug=vU#8`AgNXu4v zOR=J{1XdjR-#7^hX6S$V={lqslI{RYk%kD%$~WOCe9hvO4X+8Nj_!%d^QTu(fmgYz zJBOcL&QwyaclHr1@vWdF{nXbfWkU4&y}E=75S#Y!yjO8Dm5vbt(pUo)sr=pbQlmSbk7PCw7l> zqk`y%tjU>o4Wf&_+%Pf`DLR|!Z2LL-PLb(QZCc&hboPIOmz4aOs!4h4=qu~a^x?%; zU)LbsClKQMC>OpB6xIx8XLadpZJC5J2RlYNF_q1$_nsRpX83;k)s6(rm0o77_B~R7 zFLzDXYsYAY=Fe`LvC7H%s>*hh=y@!` zzpCzu)C+(1cFdSjY)6qs1=bgbXSyiKay`K^(JV!MzmL~=g>RAaobYIbj=sJ5W|>mG zTWa4*^YVCKR@P5Oo}d7|iMi1#4PAw2(+^KS5wz=eU}IHWsx)QoMSs&()lFm7H|_m4 zS+%8pD3-RdY>(v5d-rxbRBPUO?z(ppkm>zebpn6FzU8SnfKADEpMWTxEOKtJ&fD3+ zaI@}wfQh=_nH6VgXyB%qoOr9odu2kwQJqQhx*Ns1nL?#yR1FmxSx8HJ5o!2yFN(*k z3`3`@*(F1=3d$eJb2`Z)Y_a$jXb=Ne$?HUy>>mBs^!PQ#V#*>YQk|f`%M;gIau^YyZspfP%A-gF8@0S=Jcb^vS3S_rN-455NCG)I`8qjSl zm^PIQqGbAf-4u8MPqhfKShOCqtWq_#*BgOQB^PN_ww~nBxOEFcu+u$8@^|$!1vP(~ z^7UnjbVQrF@9(^yihfW|7oz9yWq=FMygR76xsXDn%tY5=^QM{f^jo$S(be)s=*x6~ za@Y>roXjMlaxsniWA)>kzA3cfLQYNQr^B{bgr=uy8%GMh0gZL@ zH8q!^Ljx1Hm7M`F90D~rm!U%g6B02vGC2w_Ol59obZ9alIWjdkmvPMl6$CIdI5v~P z4<~<(w*^#`YZv!T2-01WLkW^YOLup73^2gZF|;(&NQX#DigZbbGzdtyG)RL;*E^nb zo}T_F}AM}RU2Y6EtFRkQ%v12mm1AYiEXf2Cj)vVlUK1=!g=Jw4e#4sL8tuGW7d zFIWJc5U3461MCKN^#EG}ehm#!0XcyGGaDNkJwVF_;`aB6rjr%a6XXg8zzp^f3$UXb zEXLi@66^|ql?Q0bD*;rU!H$1BEB)=j0{G{4032)_|EBvV`d1=|<6prb3kxR)XON>e z#L*gH1+fPMRArRdpk7cG0Lanumm`13-pvUX5Apy(>_O%*hrfCU0c6D00U+3j{|xA6 z;RZKiv|s&6L0rKWu#5L*|IhQab9C}_^!*pD zAdZ$+zXq{%cV^digt)ka<)!{{f|<~M+pNJ*01prddQb`0MN6PsT8jSvon|d;fO->nXEq>Pku}Ni+Xv=6_Em zB%HhezO4Lw09H;OAb_7yo7Yn_hnc*rk3GKY(5OU*h8gu*>}>E&#jyZ{h{8EBz)u0K4*Ug5^~C zmtJxJ*wud%ET_hAg5}iwO|Z_ie-o^N&ToR{)cZ}aKK1`4nB3VxzX|4P{+nQ)7XQ+( z`)0TN17Y1*{ej#7cAGyC)(_+lgf(RQ2g0h_{eiHu_J1I(uET$Cge@t%;~xmC>--18 z>bm}cutLz^$O((}`U7G2>HQb}mns$-mYYrkVfnU$0~^*b8idHb3KJAsA{~ z6WV%JB~Iqax-}|~PneX9{F|qAXk#M=n{x*B& zyID(B=gob=N+o~u-I~fge&+E4ek#fLlALA+yAdu=H&udCpxCt+PK_cOrxR7w(z;iZ z9{UwTP4`@q=W~J*89s&Att#!ERVA59MCANB2kRQpCi4NUEuNnw3_0r#aUmNqMv-YM z88nJQ?bm3Do|QPO{X+vwxIGkI(Lo9x!CNPEVNhIY!2y4ADekA0I!o`d?sAGf_A~H& z&1Lb$_APrq&dI*HD{gzY^U;|D(P9NRj!oxhOOtoAzAUgy@bJ~e;F)qrkv@H_-VDlw z##=c%><7I#AeqY{(5UIh)9DCD15sj1WL$|+&(AiY2h~wqz4^j(@6^=B!=csAI$-6h z^HvLm*%yD=jehNqb}SOe*fXQ^or__5j*7XnR%$BmxoOfiworrOM#QL*r_c=_w3QPAH z6m*%)BS1r5Z!UUA4L;dilag)bcI#*|F9+mcCHsFeSiDnk^>09W5mlDGrLCMW`52e3q$kLjO>wxcYI`Xv6sQTVXxorZ7R;7e6ns0VjA1 zmV&XL_6aoD*3mlisGpOu5!f4j;pEsUZa#k;ZyIUJ#zG&pwfkaOKJB-kUFRIHjqpW& z3n<4LFZiN#9slh>IciN<|FB!N9b*<#k26Xvzgo?q8On2aPTMun!SvP7Jtl|q<^^?U zp(W=Mn^{hQqB~@4L#7lpNn=}?bQ_hE0!E7L)I4XqTR9gYHU|v&ogTvO?~0IsjSYX5 zuRVFh=~H9Ifa>ssJLRh=(*N3R`n#iElIb0tw}cz&UaIjzfQrkDk0<3 z^!gI-^FEo$(vEGfEoJ*2r7B`_A17j3_!(vT$ZKn#a7c=~(#xdSiOYy`+g31@mKU?y zaKYE+Q;n1^gDwmdFXPZ00$qydon(KjH&2vO#aBH_)0&!@`f>H72+M*ZiqXFa)|fEr z+?MV>^Islh(@dk1dte$=;>J;9gvw}{Q;VJY}Ed+sa?2Q>t$V|=Ae@X9SKh|5KMA>M5|MyOfFm3i>7 zmghYaCFDDxxP)qWwX$fGp5@-JOq=H-4bfNX9PbX-sIjb0`v ztm4JYWo1d91Vs(t@C1r#_BRyYX1u|KrgZ`cPO+B0XW8nPb!2yb-cNr(LsJ+eMvNr3 zv=+zRyxmrNjFo@AvB^!u?Y%k`{kafn3H-SuVYF~XvDA@h>bs4su9Pyvv68{$aKHwM z$^FGAY4I|~g5hNPaEnk`nXur9=kh5A#O2=i2zYYS`A-uyU;a>i{G?(b$H|x55!gsi zifpRB+E_=|d&>X7T=sumuR7_e`piqQVj4S-fk>_^aK`jv&JTRuf)B_K3~~PNKYHtm zocYHd+TBXUGZ7zUi5^r-avw?w}dad zcfUd-?;X$x-bU)8;1o3wVQ=x?xwiLptlW_2OvoS&YBGP`hp&Pqfuof~U7tSb&kBl? z7lWQ<>^ty}c*>q??g`D%5$ns|q3U(f(yt;keSSWDXwIwGvddV_6kQ_<;sESxSEUF# zur0_IG(W3(NehZoNvX-Dd)Cto^;TQ!}W7?YYB%iJ-4Q2TX z2L|M)5+Z*VV{1E}-9u;*b5ArsDsgKtNq~UMw7{9v$ui2_ak#8>es}Y-p+>fyszy}} z7tzI^jYrw)HlDc)$sKf`PkW^G&yDJ6OF-4|+zZIBoVSGpcohO?5ho=b7VAzCfyt z1?_+C**D4d6wFs9)}-F0c|EZv3rA^%?Q4@3U35(wWpWVd#?gvSv)Yw9)YcSyBPpqf zjxO7)i*ytf@u{BS{wFEuC!g{f%;#T9s5N0)rwP8yLAo1_ZZ=fZRw&!{CM320a7VIl zz3uT(=reF$9M7}brv9vR;({s|!Jy-jLzsV!XMbrL^*cYeF8`M;9e9g*S9cc9bVZY} zAe{^x+`G0wG|4t!R3!fS%Z|mfDV+hS1{uL>4vt69j#wsfyP1iRBrG(824Ffu(_?iY z;aYVgnVkkC+H-e8#48}RoMCyh+T^H^S@t$vjThg=JB(cLNBc%g#&wQR{hIbxOdWqt zNyCSAbbrLTeM(9R4#5iGAerYqbEn(3L!TrcGu@Cyj=1&2`#>Ce#FK<6OA=~niN+N&HBk4fZOO$1%%lW4A{MGKRfWhxzq(ld#dHSJl zyNy+S4fddoVi3ujbdCgz!v`xO-U71{^1@s6N$j1j&B)T^Uzm zd5tfnz`k`vU6CP^<&U2j;WUoeV5?_htlQ}+^^7_b&Q|9U-v%4bw9cehh;@GuzAzvq z8h-ovSkLqCBNr55N}|C8{GNN!Y7&UOw8f$t`Re{J&3Z68;q8}qcoIMC{g2J?t z3MUfVq+N&)% z2)eZOz&k=;v$OJ3;^mi_&T)xuF?JHs**j<+7KT&Pr+jKTOO?4=mBN3aU05^8X^w%P zd*cr&k*SnrKO5<@gYDoixpmHUKOZ5g>9BKsyOLq<6FWy8q9O1bPTEvxMH@s_7 zs1wn?X}m!D$yIOekaAN>QLR21L<;05QYGBvQhfCap4S=Xa`21C0;ucEI^;z+Qi$AL$&LJ{o+bAHsZf1Frxm~l@ zx#&W}i>C4%9J1sQY9cBp$eL3=$JMeL`0TN39$HIp$%OK$Jr=99;8BhxyVS9y_^vB_ zr*4S(q~sn2=$C)1LO~mvIYS(o9hA=7OFQ>SV@`8cyjdIP;~ZUNGWjjOb>d>52aL=t zlkzbwsHZlMBQRBwLM3^TSO$85i}A4fn1)U^Ejv7gahXBJE{&;inwc&d!6eV!b@{E? z^->{v+CAl_zFhZ(>6l7@_p7w!9O6*lVwtn?&{T#zqOE_`3pH9b%JZ+UzuZiBF9+?R zMDsoAx|h)8Ir-}S8Mjb+ScI5idP)YmqIeZlKV!@|Vesi{E*(3ogUm+d#=0qx2A7sW znb5c&qwPV>V@D~Ga0gfAaQoIVBK_y4NvD}`sB~MQC94S70Ucf^lck;Ju~<=4g)$|U zYqd}~R$zY?_d129Vm>)U8-c4t`pDZJ{klCWNyJp#PoQg&$$fz=ayS0Q_K8dvb8Pws z*9VrUwWTU|o5blRuhWmC{W^H3OZE*Y_2j6wG9SO$O}Ympd%Yc2^ap<#KY!RgMmuV# zBowA?L{V{)`$>wr%tnSj*Zfl<|3#Uv&p0VPzaD=tO0Zj6BEhjtn{9=W2XoAuNIrFZ ziegEYgvS}I;qI@d8djfCiIxD~lVZ4-kT3&~Q?^ofIaB=Jj%n|F-l0^m{P+F9Z(&YP zrf|mkt_AKN4NUZekhr?OgxsOH%G8!;h^-e%m`wWHtV0U2%miHoMy5Rx;v`fMXHh=-$=vHz z;k3r)-f7z_^udOqBrN9iru{lP4US%w@9BRCt0X5fZta08p~8@dyJ+YH}FN%Lg``s1^T zD?z5NpZ-ydQ+4*|avVigfVF%bQkmKQu87&ht0B!IH%gA7Z3q8d5d3mgYPc0YZD)TX z&vr`$n|Wo(2W?QO3C0-2L0PPH5H1DbRJn}~FYMIW`BruTBwa|>T9<@C-GPmep%g%+ z-iURu=@-R(`oX#SJyZ630lk5=hsk<{A*-Erw5uCxnW4rn)_IyG!Ryv)tCG8b8uDSu zRfR7vy)CNDQ8CeSdY>eJ14-cOS&V;$f0v}N@NaIi!t3Gs%VnXyW;%UXbo}L_F7EM2wKyzylErZV5 zob|~)8m|qOcLP%4nZ>{a`+CC@egh4y7lop))V!NdXBa6YfVttDrB2t6F`0k%btC++ zf8UW-a`@k{4G0YBifUa89#G=?HaJ;Hnwgc}&{uk#uV1kC*``syZTneosJ?f@wx$+h zK1$7xVowB66S8QEx5Mv4JU}~UdOlmZb!Cw@&5HW%6^UP8Ie7jgKflEBRlI@Xz*Xs) zw;|wLO^bLH)$(qj((QAd2r++G-^0_8Z`_yPS2DSqwT&wnu>~{4oX**f*TC?>aF?fT z=J6sw-Ntr0^|uA;Q#6G;Ej1fgS%p_vQRQ#;(=>W#S=g*hlJGkHO^5fkHWE>C!gqyT zIT)C#1Z>atjAwz8E$)(vo-#EM8#HZXOyULvG-q*T#5AGiFtS0@KXgyMmuveZUyEqRSGA-?dfRzWVf^I@GyFvb30OQ$aNbO1Nt?o|=B-FZZc=@_#f@G0s| z2;tmGwt3anXg0Q%*1CVu`Qaln9^Q3Qr1-Z+eV+c~?qjNrqD{ojSOyJ!%%$9{y(;qs z+bP7C{SRLZa21-q_W*LA#(#aN!7CC@9|K3DE}PJdvFG8O3w(|Ztph8+GwMx#wR&n4 z+peGH(O%QPsJ7X)Ux+n(vzSq$BN=}z?85XtPH;(ORpOGw)KY(%6zaaNH#^-&utUYf zEGuLBCF+@;(DV#k`8b!Xh+^dZj%C?W022%4G#m0w*toZ%_e83wnlcA3o`00;0#7p@ zmjQ5~Jkv~-C$1rB*FGuQS{ANwJh)5SD~Ck2UKBlWht|fsd>Qez(Ud^1s<484sh@bm z-H3>^2yFwn)hK@h$doIpvveTOvoYG?KsIKLkTBr8J7XCst)3srwRA^R`y)^@l@{x0 z!@%)DriV>46aB}gzF8m5J9^8xSf}A1+2EdufC?OLRW-pw$rJ50G#xZ+6n#$gNhwVf z^(0=Ii@Zcg!tm3s4;TdPfangdk*v30_IuZi+O8i#tqf<(V@D-$NJjB>61t4+K8h<;AtZ|02$y}e2e_?u+(*I z@Gd|yLtV$I=+NX_Y|mTA-R}95KJf?y=aU3Oxx8K?q&Pa*-%ksMs#D9nHMHquv$7@M zBhtq-#5~8pnL=jQim`6#*~*~3jvPRn+fwCIbK3wN0nqHH><=n%S(8^i!k3O73PS+H1m|W+tIkJ`GhFZaq^AI$tr1`~cH6-dFK*FR#Ml_3Kdq5EXdZvcID2L z`EZu6HFGB9eW8nvP7smY`?8{`#*Yii)>O}w6e#+0m<&yp3WF)-0@>B}`c@-^Wey_( zO1tr7^E&(L9=J2tsr;&yfA+At&wzi}7xBpDDK+&kSLh_yv)wwF9 zc2HzjkA7^X+46hpVNKbY6>`R6b<>c`q?u>0Z;(YhI*2^2B`XIBkUR%8(W7ON3e{BLED8M#k zBh~_M=NMfkmmwAzrSCNG^PzvHH@KqDuuwH0PA=57m-ys$O^N6Fb073Jy#P$)`t`b=DXp0^_eK%`x;$b*q%tv4iGdjh*ZAQFIW&g*~Wq9p5Y&PWP* zQAe+o&AYYZlqI8f!_z6>k|V&cHlVLzS){c|-N-zFW3}BM*d%5Co*!E@P_e9kMg1HU zmpw5Y6Z630(3FiCYd%E%O-$(!yAlZtQ{Mo+9YDIAqkegkr-sg6h>JRNdBC+Q)cG(h zlbNhAUZ^hDLZw9<0{VaQkZjPpM?tFIb?!vAE}StLVKRDTa^nBR(zw^*Sdx_v%_Gpv z+)D{<&1Jh=HQr;Uq4vW6L=C>WeR35p7sRnEp-y5i_Q93f3&mG#>JZU0*J$OzEAuA_ zlH+j}1^g((CvP;J6$AlHTa3x7pxUoWQ@3Tt=-0DWq9AmJ5PyGYv^TP9M&Ra~M;{}x z3{l&)Qx1?r9!S_uWE4Y6>P0_eX?k*Aqh8as{%Ac@s50i&)3oO=d+xiG`49E2KWlz% zb<$3wmWjGALI2zgf74(x7xIR=Ny*FoF2+>D#7MGbjC*%Zz!tf&P5j+g+`gRmJvfA0 z5=lyD)r#=uQL4XSJ^5;*xUOb0hvb-%~A0&G46eRF=ZsF7m6m)jjMbN9N z-Uxq}h`A&nv*7YxiCxk~Cq&cuIb{Quzpslx1)u8xQ|Dpe`wxS4rnLnd$?`Utm#?

    LK7U>bHoM6i5t7AEzjIRPQ8e0l!u=mOaoYPJ}`G`-nINWJyvd%?f{n_jMnp{>iC>UDXp%dgdx(ty4=QZZ(~T1 z90<>sNO*Yt<1B@;jE(;+d4?5!gS^5NQ>DomE&Rdse85Vj>{YB-n0V$ZmgMUuQ=KSQ z)*i23A0dC@O_f|WUa2+bl_ZkZH^Iq)UVe*@YR7r>`C7LU_A6t!j(L4;U1N24Emt`Om4J_@Btl%MTc@w@ttxBHfH_M zvr=|}20q2Cny?^LXk<&mbD-TrOFt`5_J*X~GV*@{B@eQW%;qQ+L8FSgNWs1V(5N{3 zSXdrfosX-vah;P)B<`a1@N#7CfP04Bm9B8%?Kz7Hl=gkUSu;O+skc=_!>XgS#q%#a z@0l;vP5`O90yYkN$xm}rJf|}~t+7yyLYMKnPp(3UkDRv}WpqbD0Uz&9a z;*)=c;ijTy%1dXm5wWjJEXA28a{VNJ#vwr>R^YijlkqhZ*wdL-0#!J#fx!6~V)4TB zHdk$Fy{C=p4+6%?mh7!o56i<1na(tf;`Gm=)Cu&Gl#A$kUx!e*(y-){ha#JIMP7g3 z%yO2ie9d~c?Wr7#DlTHUOTe+tMGny8CTD+W?+toztYJ$G3Kj3tUrk313SRPzz=n3D z#;<4|qBr_-4_2+dB`i;6hp(efI%pP0yhSG{E|92*Z1pqN%VfJhp^k|yaVOTh|7P> z#qA1QqtSMp)-jzLaa9fdT>40)5mAUqj@Orb8L=o9c75j_{OTVUX;x44-!_JQq+&WR z(c0`SqUaFflWnw#_BsqPtY^R}UZZUkfi$VrgA|$7>^)c)RARkGf$`7mg7Sz$rf!Ow zv*!o*Cd04s>Z!6nTx7I%d)63<2{eDo94$+ogIDi@5wFxcf=D4?Q1zmsxB19?zc+WPeT=Q(%-WCeBoD1P{%QwD5NWeQK4iHH8DGp&eKLr(z&i2OS&D&R z7QvtbPX;Hu+=m7q-_+=Q=Y?>Ju{AsoOs5D zQLL=?l?oI8l!6Uc;2Z9~e#U+-hFOS3^hv2wKuKKt`Q6oyjwfM2%Fss6`;>;Si?NDc z%hecVE5ffs5PNbK4}N+{snn7j{dgE*UOXLldjjp98wBeD1GjyePN0A3{q=J7J`xl0 zqzisuC=WuLW^#6@>N8&7$)6<=uU#0Xyx__^_tcXtM0~}ym~W_%xOGa2W|z0|#^*zY^~0`Q z{V_O)B(a2R9`!aVeawH37jYY!tS5X++4*Iz6F{lJg=05-)O^1>A-h-DL3W^tR>hBq zXFx>rtxu1O~ zm=M#lp#D%KJD|2lqEkThrY^j2is!aqB7@2%^Yg9Fe~D265(6N%d+NTOH3Xo&ZyrEJ$=PB8NBpb z@^Va$`kQ&;_=Oa%>caHv_q38LHIC@JH2L99Nr-bc&l{wi@{`|Cn64csIpY&>y5xjH zS4W-lan5bCM7s(L-&wX+Nw6|h+JK1U%|#AHo0leCC+L6n&-pw_n0)5LVvmThCK*xP zzj^X49f@7lDy@B`N#0#_BqV;Mntz*~RVz_)pLkcMF8;h$%zUINw|%j62%Bpdt0{-6 zg1ClYWiE`bp+km3+<{Oq4abasGCm*GU8mxrw>SE$f*YbYu40^Mc$`^W zPCe_*lI(vqyH&)FQfvkDcdW@8_<>o^FjF?Km|Gj*(i3%R(adz@118tcBE2qb$2nLp zNZ+-^^`fyj%QIt3cujx0r#Y6T3vAP!v;u8B@eJ%CYFZNjiofw481h)}mdxz1@EuKqhUcJ68004w#aA8VtM^Z^~fb z^wAfpb||f+i{V{TdH3S{^%mFh&M1@Zc^0%cbrwA0L1WfKxK1dbKT#P$H@t1_>~7>Z z@2}_;eL_;>5=d_{Xp*dz5^w-=K#ji}IXaN_hHBY16uQe`|@x|D&^QhWqp=J`+0T5{)E=*DM!G z4ZE~&%;o)htDUUPwUjcrPOUYkk+#)n?ct^2-H3(3!i;NQJB{%3mlZi#iwmlid}#jp z4Gc89(6PjnS*eei-)xG=MNqrz+Ht2hmYSZqx@94A0512-3w4DSj ziZcdFJS#0Ibr*aLBpXsoB^H3j>G9j+J~*FX(nSTNhYtzFp>+b{r2+DN*fKGPx4Z$S zX>@ykuE9u8QTwpCL>LKwzoQK{OsldoSjIv`?jirWuOmgL^)7ya}& zwOb+UCF+lfwDSx(7n~k?Gs=$Y)cP7qi#TTPz%Sn-_o1aP*;Q@*u0yZ(1p+f@`5-~S1 zHwrIIWo~D5Xfhx;Ff=xoQF{Uu1UWG_Gn3K%DSx;HRMUMMH;yzY-93;-x<%0dOBLd+n!OQFI?ac#p@!)~GJAX)XJOX$_5RL#num{-P3k(AMDjA>!bOHY< zjR%(nVBiSx_)DMVE-8 z+5^3S5Gc?Vsqi~>AV6787XU<7_@_P(J9mgH!h^>H0{vAZ?=LsVYgU4R6yPo{U>L#! z_g8+35O=U0^4@)U|1{Sb2KR>f|9!HDz(DrD$^dz~@*2V*Zk}K@#XmYo2=~930~i4i z<`WkY5#|Sg-2h-8J4fDM0StUy!GFJnzhPtz0sgLVSAadT3~&I%9*q3J_4fdJfdL42 zPjG<$KL!6j;qvnXKoC0wz!vNPf#LqwI}!%l|8++8-yPxuFy}+kj~~GI>-C=}OC-ZU za2VA0zv{nR%qyp4q@=0M^{3?j2<7GBJ^+7i0dWAgxCkGBpPyd@ASx;h2!Hsu9~~g% zPaglURfE~X0pfq9i@c}5Q}+790ro!w!U6cVFD*EdxnKbMe~E6vC(LJueB=Lrru%P` z|38-h^74Nr`u}F6>(qQkz2$ANzLCPFmi_e9ajlv2M7HcHUVJ~0MOkX=!=W&HS#13@aIQP zB?#>Eo6G=S9vB>fGyx!M3;@`}-En_4R#XhYtMv=|ed0%E%?pG%*nheM?VQ2L-Dr>a zhfMgNvcKBa)H1+J^q_267Yl~Ag;(8{Es2BY#7+# z_on}!lmNW0$S80Sa(~ewsez>2e``Q`atDHbbN4^ak&ZkdNJ{-F;$OY8^K^Gddigz6 z$VUEs{=Fr^U>~p@?&2KWPBPr-Rd~mBy&R1<_x2d(+Im+^vT1*`FoJddxxb?ZR*uTF zo4gI^CFSTdorTKCskx^#oX6MWJ{IrtLRK?X3lS(v{hRWq+mysk? zq<&8r3r151sei~)@}9i*Kw*^^zEr5pNM@ocb%|tMMY9oI{XSDX(4I0V=-KR`r4Vvo zJMevrXCqvAPO6}1^^DefE7#zL7mxByYK-Hf`e)4YEOj81%aN>;Izeb*FFH9r0JE`c z`A%~NUS4r!s)4%H5|0%aCTR6}lJeRnAt!}jz%oM$Dt|Wk>4m(A4wT+?)ZTdM$KwnD z2{j9ejvAU4qtm+Q=)*@mUtjb?s!bTuU>Cb@hB`)iqE6w=$8==VA;~74IR}0FDX-Op zFFz0&aVm)*8r0|E-PRmQ1xYhOdW8k(I_+I5l4i2v3zJMqMuG%I21N4)8apUiS~#W> z5puyZgn#%X&c~H>wM#W3@1IMBzLClh3+4-4o;hdnko;p;-gG+TRCI2&Q2wW3kTpp~phcm5!uQ0lI~UC-g(h;1 z(Pq$?^zP}PP3sr$={n5@5^1yEP9FAlvSsY}sDCzpyF@=Fu^my77-R}Bg;uvD3AZVH z93YD^G#>zJbX>f_cJFy_-*R#DfZzN|QfMp0)oQm{>%{eYm7BaGfS7=7Awpbm^QC4m ztGGY_D(hTawch>aHEGUEW9l1r227eK%o+E!Py>fx=m$H`=0bEf~JcVmZKw0T> z4?A`^t(W~QJdDeJf-+C@;E16y;0h{3Ysa}7&2;?IDoC&9vt^Y_<_*XNpzVA?e)g$_8jhHc(%4SxU% zZYx(n(K5Qu#eC3fXs}AA5vi)iauq!J!5g0~d$koDrpoj* zrZY&U=QT);u1G%$AJ{Cf?y_L2zG=zGp_tM;!tl~l$XF;v&(l?O#HGTYk+ptQFi1X{ zN6_g^OrBtC58aVdyVkKnt!m8nUVqFXDFdkutNJ;!+g%BU`Fu~Nj~xy<)E_a_QERmK zS0Aq&^PrA+a6D#O*HLuDd+7BpX~Mjy_4@+-8x0oiBH4p%)v(Ak;>W8xY>7`^j4lUx zrOZAWU~Xb^G%VMYxoA9)Sxf7t_h20qoczdYT zJo9VT`0evEOCm97M$*=6k5<<3@OQk)8yi*}IgAF|eZfGybJX>knOOF}QNVXW1h1QbfzeUa;kCgH7z0*+~r(9ZV5ZSCu4|ynmQu+(7~U(NhD% zvV}95TyeBH5d3?$m3F{!SJ?3KX4A~4S^p|Lt;$f86Gs-0o2tFj0su=Lfz-iR8_yslKj~)QZFNn}9SYsw4iq zNr_XvaLbyHxwd{P3NlPAp-;gdOT8I)8#2d45=Kk)bat6PziySd>-@km+?lBKaACI; z#8%V0-A%*Y+VWsX0EL&PAHeb@F(7KOnuVhwz;iMJPv33j9B z%@c6aMbw(uTn*LI4{hoz7w0Vn99dtn+zPnnm+ee_Gy2EcOAB-F;gVQuzK_4P;g)U0 z;v+V~yrp5g$eU=GysSj%R}7aBfMh;4n2@29u!ot3Mf6=cYZ*72zCBW2c)Tkg(3rXB z+_>C}wWfE(zJD}3VI{D@Ldb_I_v7}^CA=Laew<(r`qU*1J~MP!DMY2a-A48@yvR47 zB=U;)hp@XsMb52lKoyFX_k+5DO7#KUBdvk&8MCO?zHi z$2&|aA^{J|4)Kn$3JWZo`HSQzlHbOsb3NUuXWwcynt%PW7OPTG0~HNbx2G{C^;>l> zv_6vhuEONcRwXnVX`%@zWACQy&1i@`q4MKhX>3{ao7U(x3xC=gqj-;gK!}^*W}Q#z z$h9Sw+D!l3n{&Cr^{5)`=*FRSs)aXlTj{OuIuX#WhH=%~B6Adj5Fd|m&0@L;ofyuh z=U{MUQh%9!Sr>}8^HLNg{k1AThbVSM5`-yXviBsEnU8MaXGl|ZuaOL-o0vGp?|esW zp#N!isWj-$$=4t!A*8q2$Yt>Jvvn%B^7jr3BUCBpDJKhW+j8!S`(dIt2J!YG z0^3shvm!Cd;dGow&&1;g+$Uz$;)>u-b%sakmwzNaPDO1zIFB&LuDNXa>*rp5dC;qt z3suxO(KSO847qC2;fBF4I?g)T9#5Kfu3>_?5BYho@#70cL*hA=gdaWwMSUrOCuaIv zDpW}`|3p*9@pE9DjOKg+Z$p{EaEkrFt@SLp^3!Tt{v&YjvNWju~iK^ zd(^Q6vR?62R$!`=Bp01OSvy}84#(t@T&hEFy*lT9h>3a+>atM_o8O|@`FlCKC4UYa z*zx7W{l-~?j&!2l?Br#Q@iqJ>2PbEHR*H~{Tl2D036ID5D{lmP7{8FN8b*D4nv0V8 z5c5XZDEz>F$}o1{O(!Ja>c{j`sk`_b9`zR z<$@p8KYAzi)TvrPm`GtbR5bVN?0yxy#hD1by!EzN zR30W;Z}0<0YN~F0o#5x-tvMIhv*RaG@Fv;%hK5AWql-Z1 zQ*ou@Hu7XADcm?q89?=JzP~p{oi%~5;8m&evBOMvqfowl_U=~hpGv0kTx@n=&^~uBDK}5~_|D7b(}RxY zhVKa!7u`WVS1QbRg*4%%`x86?MXlra->1K>pjescQXb1rx2tc+NePvreEH6vk>VZ$ z=V)gY4<_%9H)daqo>&{Z?0@27T#g@}-J4F?UM*HNmuCeZUr3uU4!LB2zl_L^L&@=t z@0g~I6jXPw^Tj?mQ_QAdJodfL)AGavrep1wR&@6BlntDqBD9)H`=X%&uL$2b%c)sL zaZqSp69l#B7k|Dp&0K^vQ->yCVrD1JvQ}_fCDIM1u>G);MIqRr{C~mvdid$%wekLv zXIEYHQ`ATG#CQ9PRb1(I_%DN79v21rvbh|3JkB=U3lVo^wC+MJ*X>yPy2Vzem8;Tp zvW}4@jgQ)2G4|HUvWXaWE@&eCq{vTZQSm5PO6xk}UZ*V#k1oOAjl$NHU7Bf8jB_`x zYk17L!dLJbz7czkvVQ^yK95n|?7>S?^xkN_wk!#L&`Fa_b^vn$Mrp8l<^(DNl)^TmPJuBTDUt9e8RBxbX$}#6KSADfkoV#X8z=d#n@O<2J=huIG0kke^BFI;Or?Me6-UA7g#ATp z-BHH+M)9@pL-x%&8iJ2XZVQ!(s0q8H?IJwr5E(}*Y*!l!7MX3X9Oy4OE-`=RSu^Ai6>~Jq zvbTQAEp5K9so93x+!&7MHsHnDQa5s?u(mCzh0>y7=6})XZJ^`npF-}@(KbEMhd{*IX4 zRE;}19%@tj^;ptomTc#<+$6TDL{shabyHP3TmH1>jds;R|2N)YgL+n`Q#n-lk8qze zD_4BTRDV@mJTsz}aXrKGoqE8$ zdOtc?0sGW|+;4T-9%l#V@l0lV{Ev`(HbTg6WhMT(Cu|+J>mQkI0`zb&2|}@!f-EY6 zi8izZob8K&=Wx#_qJsHBg!@frUhDha7eVUF#((~Knlr0{GV@6Zm6~UkHxkBFlB7gl z49O9MSr{f8k{IFg45>IVHxxnHTCV%cGJc%jv$(igC>*BM z2!BC62rJS_V--ap2v9FQRs1B?9fX$7rxNHTUwd*e?KMh%ThY(R?D6UxJ^k@jA+S-V z`$lnrh#^lspY#qU>IK(|y6#Lk9~INcO!bu1LC6=6z15>IANUi?_4z8s_ufB5 zv_J9$#1#Z14n~87iB5}+HbyHOxoU_?Uw_xUeEWk=G`7*uBQ&RWu5!S4XM3bC4a=Y~ zUP1VWio3&xA!Z+;@O$Q@sAuu4PwSJKyJN8fGd`+RZ7qluJln@Bs>9Uu+FoOKqCk{~ zZLR_EzDyLuz8vLRj$8KYqP{n#jL=?4p^kRJ=ZSxj`0^A-&%BFbG7GNt*y-VC?0=tZ zp*wvY{4Yrs@ZU-XFc6$ZSZD_2+s&~{EP#_5WG*8jH%ZL0h3M6z9iq@H`*%xvDt8D- zWaIM;YSIC-Y`{w9L+x?90emL`1sC(uPu1F@ z(jm^q-<(T}D?3p~P3qXfULDhwk>?SR^*lB#e>JbQET#bmIW2q4;|mf-Nk7PbNJIT4 za|*#`k^v$U=TZ`FIMv$1#LfoAi~09kp2fSg=JQ5T-5>ZuSkOM7NLC7>_J5*^GewQW zG|jyH$>0rlCArwkX3SRV)5#ZAmVr}F^f~Deh;N*|WXgT#kR~6SA3xr|sB@fnAt`UA zo1|TtCV11$DSuzEG0YRzj>i0YO>F>w|E|zl8x#D~<^wK67W3ORo6rDmaWY-rzS3>Y zMsRR}%)-0D;r;3Q=6m#nhkuS+XqK^Mwx``Vw|njT)zFemP0jLuvsR%dLZOhUeyf1S>s_DkLW)(rGNS*1xmNc({gi^nMe%vc8*-m4 zZ=6qEWpokBZ&q_LSn&dx!nc&tq{kwkwn*Bb6ZAju`p$CAuzyr%V18sbhiQ2d3Pz1( zQh8=b?Ub-qjT!D6dy4S#nU(Ma>86l-n)zCjzA^wYrB%JK<=T0t9cj4$t@HWBCgOdz zDPrRpt5F1v%Qx21iVQTAw$`F>E~K|H_m%^tlKft;XM4bI?(cCOcS z9c_!iJ+BA2et+M#4c@GN8|7R4NNW4=GWVW&uAlEj>MS!ln7?M(c~`ddofj<4+J{<~Jg^>5g}|5E5xl^nG5&pdtXD{m`W31wvUNoqUA zkgbgRaFT(|4Jtxk?)2Q+w?OF`L;cK@6?Dbsc|7uzjDJyjS@1hwQvyYA#|x|3+H^{e z*=%nA*V;*~_1bga1PJvidYTA)hIS9I8KQOju`j&k9VSyYI&SrE+Y54;=BuE&wx^eV zlC2F{YQD1;O7j@+M)zY}-7B0mAH0^ul=TYtqwDbVbRo23L!6~5-`TdemeH#=ja#wKlOE&rPJX~#BN_Z9WUX}vy_xX`Kp z5|B(q?T6(>g+jO*yb;L4L!$0yp+#C08@}^n^NL()AM4R3*hpZSNJ^6ePQpRT9rDC( z(CAZ%#5A?xqQKM}>0$op`Jpr>f^J>ow&!8mw|`%!QiM3Q{l2&H*u6P-vP-WvW&N?X zvam2gl61H)bs$QdZc3Tmba_2=y8lQ{7&fA|rW~8WnvYZ3}Aw%22gjzFM!1Gf~6!1@@%LRuJMzY}Aq3k{}nIJ2| z%m!xs70Ty(M|h))TxehQ&V97{-lNKioqy>vma>|u^Fu!1$_z_;*41VDEJnmnvb!7K z@66}91=iTycI&If+Skov7b_#Aj?})WhO{;!GDVrG8!DO}ZjPmQIxVwBlp1w>cB=JN2p92t^9DYQ1;Kg4 z^Z5K;LS*WsrH9tF{?TWSb6vAD5|n$^1B~2hdg_o2F!h@JgmZmZy73fo4Rj)(bp0OX zIkw_p4Bi%T)_9cU#!Bl_to!<2*MGqbYk9i(<{00%4Y|*TB!Tj!FTR6S1K_rD=%f4$ zs{03s?~G0qauENbHkS4XbL}JS(Ixey8T{@Az|DuK6*Oxuyc@EIbquuF2qtS)$fcOl zCy?s}Zq`j*Lgqc0bOXvN)7}f=?N|zYTeOpmJ`p1E!@%|`Y@Dzf9~dgIA%8wfoMKmL zh)TX!;e`C|X{&%aq(X6qI+RoKL$I4f=aC*^_(;TdG_1w#vr{DgR*H~#v@Tmsf>m-3 z<1Ewd3sjfF)QzWMteh1q$sb2%qfBE>65hu3lUY-llKuo45Pmf4!tTMr)#M9wCkQeG zB~-rIS2Qd#-=J2F7R#{r6n_i;*#2A$G%)?z8#Fh4asCr(v0Nqo@i4bQ=(H`uLG#u( z)W7<=hO;jssOfIvHR8-{VYNQK;XZeeh4H?y`8z%-;yu4c66x>z#hnm3!iimsavBr9 zSA4Q6L+`VC`OoltBSf>hC||{0`$Y&FmGSTYY}jDejpy#5oG zC))$nWF#l#lIb{QIg0I-4FMy+3?uH~gC|A|!y9tj80XwUcO)TQ3v|SbNmi)S-CVUe zVyKPftMAO#k{o9TTwaq1J;ax2r1c|YAt~xD&(tmZ%)-{$=gVDIJW@r8B+&3;1;ZDU z;`@2^7GKb>6jxo)Lx1WORJt7ib2R5k4WeVq>4aCuT+ve9Y7mi)DRKNgSTTnA!*E-< z+L6snPLho~LnI_ZYx6w@V z*uc{UtWlwtsRSkZj?u$=`ps^dO|K=?+;0+cdm&NjCQK6gFn{((iy=0&`JWvZO4w|g z4FRe{gmF4aItvyQ`)@LWIPaFD(IP6GzNx(LFx;jR`H>P@Iox%_I%F&-SmLhqQf8TX#KH=IvTI@v9MMg?@1PjI^!iDA!+wU(<8H`MUOEVT;6b8 zAv>!gq5fyeB7dixyZ1GsSB@&u(w6)k5W=I?O0{|S&1h<4BW+LTb4J+Oobz2H|*zMa=lHh;0F;aK0fW=ef;_eqVY|H80O z@v*d?UC+BXT*}vJGS1eBjqY)Ln0vYBK)!V(VS+;M;?rYSJ*Yyhgvc4C_6JYhcZZxQK;WE+5|Ozu2%HPQoB*A-%M` zOm{g~h$3aiX2MPucMJHc@?ev?@ZJmHp2A&d53quqo381>I(e)AbB6of9}9qpkf8ttvi6eT z8eJTm;_I|8EL?`p>oWO$uQS9VY5W{^E*vZxpn;ts(C)3jT3{n#-{dD4gVJ?CZ^?>Y$NIAlYOAk9^Yi2--02ea8Y~oU zLz2mb)ZP&C90D>@ZlbLIft>yl@nOhwv@#31;Lf`PRVvq&sr8Y|;j7Iqk?K$IFTNG> zO)fT9M&=w}L)BQN$5%UhU#G^)@zJJ;A%A2A$`7KI9x}K;)E`}5pb|o1zmu$PzaKY& zlY{&2JdnfS#+)+0M2#>4;P*Ub%+KE_*yTP?%jy`w@pd^6984<(-7b_+rq39?%CPX} ztHIOFeA(D>vR1j_NfT`M@aUaUuTh4AiTHl#$uP!Ooy(hPMWG)v{p-eT>KADpDSuVo z*(`p3Sz*cFYz;}wolnQOZ!>iT;UB^`;xQ2RKY?-X)Vv)SF)aQfV3iM6k1XHH)^iHC ziRNOawlF%0`8(|W9H8tan>4h|WHZbSrd6-KOnzVA+`3pvmqyVe%|I}8N$RLD6THGgBOw6 z6L=bxJ)JwM(2+m4Q>S#Tc`$B3j^)?q8r$?OE~e>B{}e2M4z|m>O%_uo>i586A zhdSm@I}p%{Px-~94YWIHs7BBVIRbg8AItF0UU?T+BKH~ISfk+(D%%InaYG4mVutIe zTyPZQ+l`QDtDT9}(d4sP&wuupx9r{`SPB{yn3acudIx@i+P?dOwYeL0bvQl?`>EmB zwLCbH%A4?YXud6Rqy6Ak-#Bk!gLNsU{?v=KeIjv?#a5Pk;`|ekm&~N#G1C@yYh7u< z4mk&YxUWy)&yPB3k}|V#(sc*t7NUGY`}m;4=r0iNpKe;ggMFfafZ=$K(hNrfCu44f_OY=sS+O*jE+CdL3I6MFz76M%_< zff0rjAY^Cn;b>uI?hK$XqJR9i5uj>qU~FMy;RsN*v$k`!Ffs>lySlpayE?hhIlA!D z{gb3*VghhBHvyPhSepQZB{*MAMva>a|_!lN8x_<+(bv1Ex{s)+;qn!;vMnqXaR8CeIAb%o6uPg*Gur&rq zi~o~u>+Hn&Pqc}Vh4a6vqX9VoSF$$vuVnaN>Azk__y0(AFpP`{{V9O2Oogq9}X!2#wMo!M7vm9%Np3204Rj)Z0uc}O&kF- zcE%=-wt#~on%amEnIB=Glt1O{QR@R#&)*W9{+FJf6Dszr1Sz} zVv_PQ)cZSaoUH(-o}JcLpsPo!+)RgH{{v9+>y9%CNhXMfjgdE)@ zy(u}k&&TzlPor*wNGly`9<^ujkRUa<>K(Sr*V z!(wAyR>fY)gCxR4*|4H<$Vu)-D4&a>8NS5Yiht*%DEgwdfyvCaWuDoxO>EgRn0?fy zNVlWhi8?wm0KuQ0eZWq-@;$YiYjE`u-y0rxoTGY<&Rch^X|HA9?Z%X<@yMoLWs<0wQhtX*ReOp*7<;ZkUqpS$FG~D^l%CMz{p}90!yrGh|2JJqyV>l zCa!>n+I^U08_|2qKu@SGa!4lWJKGW0HGgrM5Xbi8^3?&IaIz@X@Vh^ET9BexZ=NnU~w79heh%LxtjtDuk)H;}SZMOuRWbe%`KSzull62Z#OANK4 zfAo5qNe{dm*ox9E?@fEoS@KUf^Nd8Zz<(?R^KEe&-_aqg)*#4Famnt>YbzvJ+J6v` zNlHdd2~tl0>#xcY)Y*n5-hX+JOD2h_WuL(+y|8RGIaHkuen?p0(q)fKAHN*3 zp>-h}e$tlR0An9I7x|4|a6faa1!47-`ojcW_MEa^sNwoDp3@@amYMl+=gVxh0&$a- zPe2{A$+I@&^$1dC_(`HB*u&TyZ)CHSp8aZXLU;P?!= zEhn{ZyqEf71P9#3$txV#oXb{SM03&}LtRxx^)usP#-iu0n24FZT~4Ss6%q7D0`WEa zpT;7zHQOjJc8Ix=Kp_bu(SOykr0;)!EHo>4youu)^D|0bzbmU9&Vg3d46}>l(eu$+ zH+?1DIjqHTFj=2|lo1PEq_sD&c^n9zbT$tdB8y;66lUXi`N>!nir+Q+Ew@#ANT@kf z)uZd1;*?v?!*iT0^CRi8V|pu>4VgRWs@<-&t!c{Hu{ZY4Y5+Cy5`UX3rYDu8km*eZ zS)01vS?@$MZGO0Pw-HTXzeTE+q6Mu)YWMI^>Tv{3S&P?SQilsuynEh&8DG{UmsZ59 z!Bv$8Hv5IB$jTo|q7g5K-==bqDF-|DyN)6=+f2i_ylE?DmG7k%g zix1qy+*oS!QL$~F2Y=%HkZs0`#kuWM9GpUrXb)S@@0Es38#iazTW*^2s$YsH%0-$J z%HyeS0Yt)KlM45`tzZ2Ky@IJuyPRhMB7a`BEu4!hJEBh`>3!-EYaxC>FU27{RU8QO zH8wdqIG$h{$LZ$6Hp8uoIX?OnWS=I~*X(bq zoRW$W1M1+Lj|y)|4KVNz0uj-SjV`H8aqNGIe)DznhR_py{aW$dbBf83lt~xBfxO8k zx+tH%qe{HR>_A$yM~f=f_QY~QmMn#4rcmzbx(;?dvHjX3AgNvw59l{C@N!$$5#)iW zg(OBC+kfKb1@-hvL4NGu+t7M*;@CEl8fTwt9|tqI{=e}|hFrZzY?7btIgp430U#0` z-f|De7Ls#I!Hee}I|Wl?j&947Kp=5-(x(k##F^TM^IDgO{3@p98M z2LWN=n`n4*YK83AZ0^t%a0U+>%;mToeN)yC>Pb z_J0^;xMVmn{&F*7|GH5uV}c)_DawpnjMF^+6o0Yy#f6!PBi`>5EviGMtzJvb_xN;= zg;&1{!i2qRMZ@*K19`E7#b;<_y+2s^Wx}$C2)}URI|ZVM8G9VeM3yV7a)NBbf?S$v zd80YqD=gvq_M|x;yR28@2KT&<7Gc(7Bn}O>D)iMl8lV=bG>FGb zV?E=Ux=x$6F7X=-)EgN)Z8}InmF>3p&d0aS>%FkH`&28;>KuAH-J@>VXi-bP!GDM} z#_T7xgn=|>dk9uWKGkwLF$ENL0l$b=fpUxN+Gcr4nq zEJbpVyWxDw>#YlTh#+_TG?xnmyMGxqia<10du8jU5Qo4_)t9oSdr;2c=4!}q+(h&w zt8-gHl5d5PH7yK#6lWwNHN{>1PX_Jb7)I*2mqC~EUr6HAh$E~=hP@RFMcs-~0EKS!?`9I>Bzu7u5_m;4okx8(q%Y%hgp@TZ#lgOA?|;<9v3%Nv15-*) z_2Q8Y$_@eGqh^n8gd-DDC$hqFN!K0Zey58=?lehD;@3o`RD7@yo_x8B!kRv(Cu7i% z6-iFSOGruyejvG{%Z}VU&jqb>T=W6o-_>!#K9zZa5^cZ> zG`n><+l02AltCYr-yrm(tfHXy z+1$pJlJkqdlYw?(?%npbf2^+QkPya z0mC?8p6ZX_@U`vP=1@@2eOmRWgRI7lgGCr=X}ooR;A1BqFnBI3=-Lig27YII^55DE z!BkR%E`MRj;%kz}L#=ljG7=V1i;5Z%ls|E_36hmWB_eZ?v^F&~+-75-+Bp#O=fs*j|b^#%efKfiPjT0 z0)fsMZx9eWILJV`lxow$7Kx!7e=#}|;HL`haDQ)ZIL&xAg{iJu&(%ejUCB(a`ajK|h)Hulb+@11`Py0)5fwhpLDluI9cVcQVU^DCOpmpjIR_GiF54|e+Wlfd4+ z+~2;t?a$`g;B#3P0rx{j$m2b7jQiA4@fkk{5NK@V=cnhvNiNU~3~}mBNM$ci;5%F3 zVmG=xB+cgESnZ})0XFHBxhGI0v46As4`I4f%79%7mOSMsc~QeI*@C>HN(-7@_#eCdfu9+9 zDcS=ySJ#^2J^&mKnml*Uz<)4j;tew=UPw|QUq=+0R#G{(-w|bwU3>-5+C-S|Z|Lcw zW^>=w{aNON#!;?XMy7t*hsW5FTDUjTlcDh?!$!lX;(`bREG=#4RXiM-E^y#l-3rrcnf)^=tm*l&tx=ATO2>i z1L;@397f8#th*(M_(N=mW9uvR^RP7KExdDW9s)&OC#P6&g12a?$UlMl=RrVZEP$B1 z+X6E_&EkcAXBOC*vwu*g5W-u#e|iIZR!*~LktF9D%+`ClD09;oEFn8U6f$;tc5EDx zfQXrjooWk@QO9*FerW7(h-c)6oCUlPb%-g-7Y!ovT{R)nw;=Bw7L=D2Y z$`+JQ3S7V?NLrQG1kHaD+!aHgO)=-lN6qa3&~BF6hqA_@{Inu97ZH zztYaIET|B(FkER;$=9A?HLs=sMdi(8bP}^5Or{!Z_kRNV=N42RI`{ch1wVn2E)U%7 z1hMUE3DHBh*lwur0Yp~nz0M^99*mVv+?F>e-3dV`y)PxDjN3b0B=5MYw26#eb&h6xOvTjqu_LtmuVD?C8pFf<1&i5)2ydc|jM6jPW%YCVHeBJ)4hth;CZ~ zSR|dm%}7M4d#N8$v5HYED2Sb|;(z6l{_Qb-iik2hBkUrfkp{uCD0f5`wAx|U8skXt zq>6J~(|S(7u@KHzm@qzzwUwLp96k3GPd-CNzu9@coEy#7ssKGe!oLlrtH+o+dlH`; zDFAOc?M|I#^EMlxHyxvT35|NUT!0fDjm}=C{;H9FHi}^h8>;CnqZPSi4{D0d%#(lp zo$4Y~&3(9qh@ZSh$X_95HN960Kk_o|Kd3?(8U@nO`nw%&e!h2553})?3tpnuVK3(6 z>a%f5MGan9caeu2)^SjYdr%)wr|~G`;?M0AAbs&iC>DA)%-0uO^;t0o%3zuRBxGdy zci98%91M=Ft0$lY0H-PD6O?R={`r5}VobpReqtnYvm%l35DjQBaSVP)K5- z3>gG88H+d8!g}tRPC;0Ht(kVBFx=H0=8?k(qUGfM%wYm(5S8;w$rP}{2=Y@!@N$`aD%3EMd%&ApO)Zu9uR62`dG>Nc<l2a{jPt`cy!57<^6u|Ba}htz{RMlNzCgf?%U|Iw;V;t=ub#! zff_66Cxjly=6^E#F;f++*;&>y`Qt)7Q(I&9xo@fhM|06!%Q?2CPKjWw)O-zK7d2mYY+!KP!KaAk+XG8GQ(b zX50pPaDji4_8{Q_=MBMimKoLVIRe|r!36}WV)gqa&A2S89NSi3s*)Xn7kl(UCQ}63 z1!f7j`}y*lWqyA~-4C>jxzxgpXl}_^A`CCK9x23W)vPfQajeI^nRX&>%c5lqD7 zWo!Z_zhCS(4v+8V%VgyVna^zn{Q4L$jt!)K)SG`EhJ9G}Vae^b=f28>aWLn&$8d60qR<2eaIl*nnjOn$g0g>tHs>IXxNRQ|B3p{vez0R~>NCgnCymi}x;r zWBkh#n8@u*pZ+JEbfBgLyjE`ofl0QTtdgacBt-_)@;-l$@YUG2AM$tBho2Kfr>+a? zEV^Y5?1qGD^(n*K^w^;*COIdvjZu5~wet}}L_^TIDvy^+(F0{?;Ee)F3XuRKDL}64 z;XTv7H;hLXa^eW)6;P{E8Ab9a9wocVDeZk94)Y!GBb?337e)%tCo+qz=g4t zh>|xv#$9~#7gl@0$e#TBI4!FVm_h@4CGKhqnc_LhBF}W>n4Z=5sfgN}$E)L9?;?w6 z0I`1=x^y2O}`)bBOh~-yHlwbumb>5umkGn~D?NWGo_4a4)d?rbiH-%nkk6`oV3&-<{SHwLt2Nl67j#Tk$j77`8|i&G})tNEv@b zAw!ABw!&-?is+guZ#>&j#eJfr)B3pjzms|2o{?IIQCAVUTb6ofSmP7>cR?ltF!3Od zh|Ze<)EV(p)lk;l?zrduAv&|i42qBsQizU9;InG%@$g0ccT?xjA6HD#g@3iYoLns~ zK^#YVq5`glkqN_VO9w{B_d+%@kbZvyOcVlH`Rb_!R*~{F*-`tbM%_$bZ}%6ln%@O+ z&G}}%ao?0INv|{X8|`=6*&Bkie_h}ZagO_5XE!2gV3!eR=V0p3pf>2SsT?FpN9!mY zKv79P&Hf6qMC~;caF=nye)$~H*MWo!h|*oaH%>bYYF3TF@(Z(#o1f5@xUheHH7Y|V z<&*r`ydb$jNxfy=Zh~MpxOTE-H4lplpY6g*x7n)cdB40(7%Fl)6iE|u0)a+e9zB)^Zo6Uwk z&=m#DWlpKJ%E?Guqiugiz1wde)lZ9Ntd`M=j|XJNE0AxpA8c{SP#TL!UKO$Bg!_|K zK7fQW5xZ75=BOU!eJC;x8spYFLWrx=E>go$dga0v{KZgcZxpHp?}fPa2K^bY$GA*c zyRpf2|J|mju(**m-0w@NllhzK*4!8k6>VBPnO0H}w`U#EtEPX7m_Go-m+-FRP2@;ABp?=@B98@@yX}P{NmL|+18EHJ(Gdb9!XPmGLrglgC z5Va)LskHZwQueks=4)jSnn`6k2_0k{4OrceqVL3rZ6pUknZ z%VtcPOtEz6k5eN<0F5`6Q+@F6i4@X7Nt7&1FjUrz4nUb z2BR<$@@#KQAe*imPLorT{i(DChzIwS&nem0N9aHZ-=)@jS zHmmp6qAb$N464&uvnFI)yX4%x`RmUj=(%sNNzEEb3DiUUq^>w$}7w7vjyk>nVD8qF112}u|qZNXisYwLKNn~BcI z%EF_i+LB)$^Xua}$4V);m$EG0sP2FF0}}QxYDo3-+XZV-^JSk^pvZVzICZByrh`F+kW~^~O~Q8XkL=rLY|qO_J8}t%C~;8L&ndx)a1}zy*riZi;fqjj zo2%;$Gm8pYX3x4wlpXlh^kg+}VNX=2zdWyOo>Q%w3#a5BJh^O^FC>uDN8f)kP&qep z2ULD81f%&WX7sgk#BYnR*s3REek-LrU`iiMGH!?tC<{uEJI$OR<1*qc3@K=8rR|kj zGmZ1i4rm-!zEv?>3-3?x*V&(aeV|L&kJe?P_S8!dJ@X@X!G#5Vkj>y>XDD>v?HxeI zc@Xh`VVOWzxXgxCo|~;a5bb~EGyKd0q9{D+w^fE7zR(CMZ6#Fky1Y~XJ4fMz#a zw|XpqBy0G5|MP3V&kh zkk=h8mass!lOr%-m73(}sXonX&qHO?$cfQz=bw-tu>Y%U2JETZL<7=4sY}e)?=GH ziQ;nH7{h48JcMSaBej2Q^3Z;Z0*}3ThI$=Q|0U@VUwz$*P z^!nv);1oj)4If}Ir=8yeoJ=V{KsQ*TM$W&<7f1KILAQg@jf4$oCV4Lu1L$vVX623w zI%|O1t0Y8U65fB&`(Ze^E~i4^an7HF?=>wQe;dayxgpZY`tV8Ws7}7QgT8ZsRr0}S zc73ac({IaAG`4|9ae~FGe1QS?v_>PNw3}W6>D=Z(^1_|AQP3AbRW98vT9DdmjYO+$FlV3`24TGy;Dz;BHtio>_|ZE266?8Phm!S@h3lYC`|6i&;32A(EH-W~i6 zAtEnQen{k!joee$Zaw>(($FeVVV!OsZPev5mX$>5D{z12NzT6D(2$t2cgR7$zJ#Y9 z5+;IKR)Bvg0pZZ~8s2^vsjs$`k8W9raC|Fyl30O^M@$zdr*AVLmb9fd8(%`#aFe7# z={6(;QX+y4O!^o85*EkA^1AJWjw-}%k8K6f=%zv6yMITVTd&w3?2{mB(N zwfH>^^KqLe+=t^wmaBm~P9(vTxb8#fd`fMjzh{4H$RBg;U=*uvx~d%4W#G`XJE1g1 z=MsY37Fi_s+2r!3tFHPw;Mi7yqe}DZne*Nbf_7p7^=|fM>6b4XY>e~Xxq{$n@o-NP zLvMuO@ActPC}}gw8Q%V{%&J32ay+zTsOq(Aq`_y_E|OJ8s~+sFx=*`LoZDg9Pr|ie z8!CUSeBs<%=q-(*Ut>1PjQ+OtZr?kyUqgB}K8R8AmjP*|@4hS^hRWX52$;F?hH2%n z9$ik3bA3hpv?@-mR70TT(iXBh@OdHpz0^cAhH27xcYQ&HXcE~THn{i7#BJOqn--7{ zC8_4T6U&u6d?02m6HzU2@GWxE6T2yN6IFlM;xr}x3Jv+fjJX|g{P0b7r*Z!}J#|c* z=-VdKOY6n4OItd>lr5D|Y(bsb1w^Q28~D@``ODMOTsQ_qws=)u?VjZC@S{IL2RyMV zC=wC>@iJALKJ?7K`D)Fh`0eC3wTz4jZ5F^pYzc+{f*O9Bt!3dm`l!G>ND5L)KYV{5 z*g&*^BCo)wS#E=)YL$^e5Mj0lS%#O!o1X@Rx(dYjrk)<7Aop9 ze#k8@0|WsqkToCzvA{eRtAVWHtTlf%5N|nif>yMgg>zvqz>Cm-GG43fxaJn19ZQ=! zQs)M6Eh?F0f+=F~3KbgKh<*yc`J}>a|7>lITvhCTK>h5XznUg7dy6FQ(2aa=>4oK> zv4IOetF1eCb48a1bzMCKUBf7yY z62Dt(*;%JdrTt|A+BmAOP25YA5Tu7)T++D@q@&*Rc0MOXK%DZuHvwK~H3wb%vPl-q z{3EY7qp}FisvR0ShouaRGBXde#b^pbJ)z`{x5d6UiJ;OXZ0xjc9c7i5c%cDwaF>x1 z4ly7!K$&Z;4^#|w*Q7-wTWNnN>nx1$nNw-`n}b|@x;dsW)=GX0`7h8Z3#SdDZ!A6; zC@9~p8l^>uIBZYCL#KbO!p@*19Js<4GJhefQiP&dEVfU|L(NO0ASWgb>R6i3Hmr9b zeG(IOVc0rLyg5{3Ez{}pRp5kQsxCm|TawSXcoF5(OQR=mWX=x>TLym@ulC6j#}Wb5 zHvTv0@wwM1H5n36RgL0E=^7Tdwgn+K;jyzOJzLKE7dNCrn9a#9OKLuypN-ha3WKh~ zGXIF^_)!M^-xUQ|mVGLPN@1JB)=0=?l60Z-=@2L~-KaTNk>LIO85A?rj84bD9o&ddx@JuO`DY~iqaEV+D=FP!|L7O zE>M`!sS)nv*EHaSZcrzdCAf5!YsE7+;sn59uScU0*Q#OSC}~RIMEy76PD^z zLq~#*%i4{#L^5aFbJi}v;-eS*-c=UJ@6lbI;3-Jnke0-99%j`!c*4YkBnGY;2KlOy zoHyixkcz26m2oj$>O8K$dQYT^oi@o@Bn}!-q~d=JBC;-~gu?sm0qf3Ka7_qHte9LN z3xwUY5oS|}bmxtib$Cd^I`tS9u?H|T;tZzW$ygTUJRl_Xw?va48t1$nQ=f1B@J4>B zgV$TZh(h4$#0QVb7F=p}%6pOK=@B;}0OOIVqSJgGY-`zZWL>pL5OG?PLueUq$wXwl zR|tQQd6fNfl01x!-}+kF>hh_D2F38P%pg468PVS-i+0=2f9?0>)C50!mG&Eir&!HS zyM7`1%sI4BFXq^Ncbx;rl|tvsYMbok$@+lT`l9b73I>Cr#Vk4doChj`g!;b^(6sv> ziQ_g*Zg-zSB?KxM(wb3@f(z7%vE;`@IRSuyD{Xj4Gp0$yWPw~*@Bp z7>=#A@%+pY+2!<{GNNpv$`Ef>TBmW-7V&zXDI<;0QhJtigVk6v7Lxn0cJ((xM7e(+ zD*k$?5bZgLlGK{24vSgrD3{Yv*0*K%0mji)N>Fi=S}iBqq&xjaQu?)o6?!|IzJfzKA#5cb)QEyvaY!^8f6u*$D7Z zdm}B8G<>7d%XfhawY4%j0__3aoTq;e*3p+Jjtyl3vT*@546z&I>=;hu-N?2IeuIq0 z4QDiVk7k~r{#w5&Qkt3oiTow~77t`JiEB3#q3E)?8R1E}n4Qg8g2c2GPFcRoYoMuL z%!w>{_SHl%DYLv--RzIVEb@hN(HlDgV#0DZtw07BbuF!6qS=~rL-Abee_?;Eqv8G9 zFn)zuEv_H}W0`5ptR1QI%%a!Ut&ompY0o6f{o@9g0fnO0Sd~&mv_~L~$BfGlU00wh z+E%UGbQA#eYsDWgcj(VB5SG6Ji9Mv#WoT$)%PRp1)NryHR?nsz7L*Do@>Gfs#-CjF zj2G7h|Cfm%D0`AC6i$l^*93oY+>$kc9-r>{wg-WVaW6EXj>vVKfuzw2ktm+(Ux&V; zoz3e)shOIn${_us&fOl#H~55Iq>Q7ezZGXudmMD9#hIA3N0t~#V@Lj!7nj&-EB$oe z#ip-alHyV-we^W4cw%N~S&pNKWbIuMVyymciyTLDEEv!j(^6`F54nH6>+s8mtfo~{ z%>sv8yrN&2W1LU`Q}Z<_*zr&Fo{AEA+A)CdVC_LFKu?_oMnQJnzu3StUUP}FU5Iyx z$SP_t0d~dFB@&V!)3F~}ig5%kJxm*+*7%HclyTekV2r*dGfe=J|iy-yD8)axG$J%7BUahglO_qJB*4lE}q$5u=P$P5pN{7Gia0aE`^gs_R%paD z6knBXkul%U?p5iBeLXHIc)dnlY8BJGSL4=DQ|&P3;>tBGhVp+2+y3_nhk!w9XM6yL zm}%IYq|?^h0Jv65z#jV!znbPY1Q}>D?!L8+B@>2A?1t}vx!&^4-WK6F&$kE`mtDoD3DEb18HI~q8;ZXcm+szQ3>nUltfPHF0`)vSDH1d< zyacqH`T!&M@ zWNoC~mhAp}yQi=z3%+J*(BHwU=f3dOgzz2`bUgt;4!*br)txy#Qn=K(d@C`wnYQ7& zfu1QR%F0ceSu9DPLcgoOKp9O!s13eLq#_Ep56UDGFk<3t)z=JJlp0DdA-w6l1WLqnz<)^p9vsi7 z#(O&De4njr+Gl&iMyHR?2_ee-?B2o+foXqA5)!HMgSakaZSFp%iwV(YU**rYNrN&A z^nUrM>hen5p;l~J%2(Gt%U#TdeVWk>jpa{Gt}?)$EH8c2#y3s8kn=~?&W-2f zgc}cjAvBsG_N_KLO}U*}r=G02l;gLiUHp1HH>?`Z;>sN~UTDeP=5;lHd8%kBVYzhz z3EC657k`vN92ri#%>lhR{Cyk~--Lg(-I94xZhftSAGhSQV0gNSIu^+PmZQ#U8^boTl(JO1=scL9mnmalE0KN)Jh5Fu~!tsB^GuOn+ z7Fyg3_fVv0m)eqSI5ab31>%HZ;z*n$8@O-9}A^4uGdhbfu8XrspzD8spVHIFkr zk6e!q-z}y(pBL)5ZNL{^_BKa2Q`b{u_tUeF0-dZDO1QS*N*=S=iXMrF$qdbk)+tj&{Ynl_z=7#qF`X}{!!_e$oA z=S#)|k zrmRZPIACR5&9-=MUzoErT?S_02r=PUS)ly+k2gOiw@TIL0LOV&Nfdtrr9U3OKiBzc zdwg=dY5ounD{(n+7{StN?-?ZziNPm5WHimQLqQf@)88P?RrL_jeGqMnq=8q{Zxq+|-C(>boh7(hRyGI-9CzzUcdhF8?U*cfdt;ZeHChc=aGjEUuK@OOB z{cFxC8u=E(CdDM?!QX!kqv4M9rNUxA85q;X9e`XI(%F0IBIjPQb!NP3v~d0Ho_1L~oI4PYrqCY4t809(G{Ik{2JveJ+ zFz=TP{vy^NeFF?HTW?p9auNUs=3DqX3JMU-okqzf=g5S^s7rs6RUq}s1D4o|+s-P7 z$UourCqW@|eO9FlI`}D(zE+z(S&_LZSN1t4y0j^k^jH(qQiwapAE8O(`Hk>WK(bzq zAZ`Vfm4R!`)qmT(YvW7S#d*M+)_FB;Dq+%9L$%>|hl2lF@XqciNDJeijn_8ZU{Aes zmMgYOUi59z`dWX_)Y1`lbAo!wOS5$UKxcl0WRCdtH4S!3uH{^zE%>0XbMlJ4B;;d<=wcY3ivnSyIWTO^y2qDr-qDhg7+d zXT@oN*ZqPNcLL9>8CMPai%H(~p%dj|}1fUWatQso74XF+b2Q z74Lt&=hukO6DIg>sZDVTLoG}eSwDAFpG1EguFc%%`yyHa^YJJiWg#x-M=cfa1i=;B zZNV^wl634ASE~}c7Q6{_Cwj*XhpU=XkchoX#EWL?fq7y@HN6 zp;-ln?in7qZ^+^8J}uOk81kcQl|6 zfMP%(*juF0b1KMu3LileKihRDAHgIt5_w^BtP(46YMPuTB4)=7N+29J9Ijd^{Q1;wV-jQ=m&B_!J7*?VNQ(~e6+ z@9$_bQo=ulOjOF?9)8;gtv@|&!=>fw<16KK0HO&*_xTYTS|5QR`@+{;%!7JEmLi zRdQ!D^^P1K&%|fVSzSQ30gitS`rc5?Q4b*T{^&vQX)m9!=1DX``_w^N@Y94{--EyH zOi3t(+om6dWsc8sD6m?8K0iVl&tvwV`FmSJ>*xQnocecZ0#x>lVG)Q5BHto(i#azk zy&#u)cj!SvoTz*F)I8?5=zAhkUYGX@G0)juaS@e0Su5DJFh2VD>J5MRR|<11-uUxt zU-j0gu{*kG{F%;lX2z5$aj`3aGI}O>oWm5g^2|1}95H#|;r-0h&Pvql&HB6V$K)!} zlKc-?5n})+#EXQ77YI48kl=Hoo7(i1Qci9d(<*Z_oyja>ea|575-_`h**zZnD{<`` zRr69F0{s55^l_1ipALTj<~SiP#OnH1juBVmD2QWh(eQrBqHt!qP~x!_K{#`#@q?kWgoL-v>`ekAuTQt?>@NtMo98T_&Mct!ZV%~ zQ+;w%eY`=~whUk_e{e1d^0Fv#46I?>G}8mwkK9WgC1*Bd5R#LG)FHtaF-Z+{v0#1b z{~YNwCF}u(_q%_nEn?uRZ|5mhnr#H+;Hxc5copsuBh6Gi%+taY|4+B)2;iJpMDqFq zkFl;q8nb~rzK0=e?qktpKWv%0GU&ml`dWkn7k=dS%0G%8YDVE?P8@}8c{?`CK4nAH zRLMTtnl+73ZiPFsYc(Uxvv|E5jq#`yITx%nBe@;t12=z5hc^RLQ?uU{1&9%zD8HB= zr29bTMj+{XF+p=v9oenzBoP6Rv4U(8Anv*Mj3$a#Yhg)8voMDGqfw#M5RF3QhDPV3 zbLp0*f3ihS>+E4(F#bw0hk-Rf2*Y)?Pi8(;^BIQv-(`HEJC;^YjX6_Yuw5Q$T+}3; ze|dMATH}9!>#8HjYT!?&SqMA?1|tF#xG}o(s7_!vWAsB;B?Er+mUQ9AED%#kOF;e( zuxHZR6?hv><{Mo`gbpSFRTOKU0X>B|TXStFv=fa_ZWEog6yLKlz)YCP`rm>2e{w)f zEC;NyiT0=$Hb3d~m>6zC|GDA;)km z&*|%T*4(5k9<92wBsa=yFY!Ps1((K9t)(W%O}dzz9^-F!Q>y=HW#@D|ciB;QkmaDwTGDcu{(-{<#JH;yfhTZ*Zq!Q_aT0n7bKRkbCfgB`(HzbDnM>XhLhPiHxfl=K2#j z+5(9y>k{3+hzsQV`L#m`9)rgznqeY-Ig=oQT`%~uI#`E%piZ_31 zHc`+S=4Mk@Q5+tBOMA3)R7d#2;UF^w$$HH(A{JA7Hg@%qUNNs!@<&5GiRmd@|L z22kle%KNjMA4(6*tKAzdxIwOkKBX3tU#t;riIKX%mmURHZRa!&)_zB+OVVJzhKPt3 zBv@o$G*%!5OU3NvWEp)lFA2}(Gt8YY$= z)MABV`vYq=SA^~F@4YkP)5Yp#9CAA2DzlWk-w#fWr$ZE^+yB)C&$HcY=R=J23hNNk~hNa$xGNjzw(=?(7xj+w0Y}k-b0o6yXt-TforIwFT2qhDn2uUhYUgqKs3a} z5qzjqgQc~ydOAPU>!MQcH(t2G)~Y2ugn@?G?uGvv_8gVPJWG(##CAUA_(M67$RoT6 z)CQ#>zTGymfOpg-F@=8*Q94JG8;zpfPvpr9HOd}{D;9RsJVvwKQUD}yeu?B--B%x^ zo&(HZyaW`N7*u4BYc^n$C(aIr=z7T{!Rb%7q3;v&70+ZkaxDHNMUlXj>1nL^pRHUM zyEb^Z!O0^funP$=3u+fE+$K){EIVxyL@B^DS)28nRxLatcE5iz$6Xtb4{~n5wwIz= z$#kntU%;pItq=v5V@*{(_B2O6`>-#_YzW8-(C7w>&1^`{C#p_2&O&$g^=OmcMdArEWeq^opb zIk@I=)|xA7yg`5X><)k@0x-w}-bP8MTqq$<2i`%|`J8`yG(Gt_Hw@upLWns(G0?hM zI&Ms3AoYEzAG_^qXIAfF@Xw0oh^6zECvsSHa8;ElQ;LcYn&n01mN9mzTIWRg+hr~K zYlseLsJ8gV=IdJ`@g5K(CrbJQhnQ6U%C&0tuBg19291A)-`6oBKj+JDWABGRAbH>V z_mnNN9`)9f=;1NRt%j;d<(S9mQ(Zm9h|nMixG$!*so&gBvDzMwPSfSC{V@VSkK-xU z=EUN3P%dNG1k>4{4V-m6>fe>iuB7I-SZr4`BSBzs4JF@ z?)+B62MK?MG4xA%uVM&YW_*Kl95*c=yHnb+iV**(I0W;nkSrkbT6vtuhW$P?v|p+y z4-`wwJR+)0w-0x;pve{Iuf_>)M$~tni=DPuEB4(a_00`C>+QMcA~Ukn107Hs!!iD~ zb^aS0!<7ekI|zjW!EU?eBY}ZojGYZKA6AR>S`UBgzJX&kpE*cb=}KRJt=BVq>|?6i zisvQ?IUnH7Jx9~geN!!1=FR^G%#St}yIZxKekc-jJZ~Ig9a%8*L_1vW&2x=BZ`|{& zTvYm0-&`0oI%Nc-Y}|ONh6yQJgN{ZvmYaua^kK7cBBRL4I7%eeKi4?roAt24j9E}ajco~9v58| zmU9>^C!a49%n39x5S(%_tvKLIvPWPGvu1z5b&_V3L^y-QWdv=^wKz{+Ju+v|Js?828Ml>O_YTG zlK;|NheoZPl5%!?bdbKKeu})+bPl;3QZ> z`ClizjYHgHQQW{`x3RXB1TO&sj%0smwfzRN65868ShMKMy4DV-o>ZY{V}7QJJZVFJ z-9abx1f~1(mc^#ab_;&z8G%2aeH9|SsD7-O*(*oBiXIr8`!4ZQ-xoMDCzqIUv2_x8 zR%}C+fAFR?aZVFG_mbd}=gtj36}Wi>)y-N$vBum4ySEY;1)H-#`#A`wsEU74yq-Bd zvn(j4s7fr8w#B~#e)UFpsJ(5DHY7Ny0nlzPf%gBlO6QmXN@|K7VH(Ox9QbAL{z<}i zQ|)ongP5->9Aq<8*qG^KZ7)J}^H z5&dFhtyA-s^K#n0)}o=oc<6s6Jftc}o)p|ZMf3Wha}mQieslMc-~_JMfc`eH@eHbE z+z*fffPq>nQw?RvY$F&V{o}za3Qg>SZzd4#$*bF~jTOJ00+?}f)!cxOu2A(}lvr(< zkTxaaeQGkAeK7&Xi=aeE9m3dAv{J9$ZI_rx%{Wz!IaeKIHt&hK3mtzJws^$6mqoH8 zyZzn?e|ra5A&zeiD;EIz{}f~kS&;Q~dt9mpqpz;^R@ofSFD`9)PkN~Q%%`JVnF>r$ zau^8{Pb!dtIH}S!dR|&28u-R>kE1--l0cKxG=JRNQ>CoX2(SNeU>}0MFWW0O^o%dO zkGgOKD_*^_Y^NP5JcNHdZea-KrEgDwhFAyEmD#-yYB1)Kl@dxsG{$33M>PV3w8P-B zRg^#AqCSvA6PO=SJ1GMCqf$3{#gV_6kHyhnXi6q<>ba(nil$N4^V(1tn^xA$6~8 z@W>XsZyoS?+}S2xClpF*GoMCwB0Xp-8ofE^CCD%w{hwo_=Cgk}--^%gb0%gs;gIED zQhL(B7A0jtSw_8sn3ImZ5Ha<$dK!WC6!^B57~v>NpNo}wuuQ@kCs3ajn2x@gkp9uk z`w5@CZ(!V#VD$!uSw6`^VW)#y01>Ws@EAUzvJZPRT!Aa^X62rK4~m1gk=fTi`$!Lv z{idLE+G)C44_h0S1Gg4Yiqf@LB~g1P~m5gj=CU)CQVmQkxmd^N}r zH(oZ=6=2<+Pu4=NfMz3hZiK~e9~Qfdzj@=~KiZrC=E#5CVTmV)gfNHd9igiQoCR*4 z+92w+c3VhpkKmDsQ1HOgi860Ry-a);6fwlN`$-!qkq=2xebvdjgLJ-{l{u)nFOnu6 zwW*R@_9#9nr&4&C24GEECaOa|TvIdB+!kP$HTXNTFZw4O^l*mS<512cl^6-CeX7Jc zN}{iir>uW(wgx2IBCe)8WJlBIVV-gM8-gG%3$8u4$GrBtP?^pkI&l}0m4&4^97YOS zGTOPb=duS^1_SJ6>raugHSPZ{ojO>ql&NNB!CoolDOBh+=fvt(4jj=JaXycjN8R0q zf8d*EjYMt@hRcpYw9Hc1U7p^s8WuGm+cDh1IzNA5lnVslLPWKb?ib7ICVQ742s!xa zi>Ug0br9j)x9CvtG`2uxW60!GYExDdw)y##QXSHR1h&&OMUgi7? z6WD$cdTRT{1OY6?PLoILcEmJMW_i{nv+I8a4u~9pc_5VVi#bmiz~VEBu%y?sq7!CQ zGbIMWP-Wq1I7%K0rU0LNE=0W~D1*z%7zWLYW7`cp03yq(!Yl80&W1Y$8bW{8 zvCKKbZ$1r<2TYqnlG*Ze=DZBOdL^z8`xbaROZ-4*{Nx2!cWgWnelCkh3-0szJ=9Z- z;;mjsuud*qn_tI27S7%-A1vqr=uy8|y;%&7Z=~ykXG$VPCqRA?0~Y+bRo*P(Qm4zw z=@egwD2M`%2NasPPoX(+W2qI}!SR3cn#qwm9cOP!8yV5!n;OFTyy`9<{U@}%_s&!i zGGQkDF7_BK4dx>dJrCOjaSIGXkZEx!Xl&yjt zwx5wiuqioihpiWU2qtp5$pM1YtJ%u zO_zljH&^AVsFO(tVYRL}HUfV=knbUz5+rT&Y{mdT4EdrssXyZLJ$1rS-D#x4%O5x0 zoH-oQ?0#oq^?>KC#WTP8ZVFot(OaEm!)WRK@p%JLB2?`@ymJWq5fe+14;it}&4gc? zWU-th@2*$hfy2-S2HRc}W{#e7)emVC)!>h<;*OwsVT3PbznA~B+O&Vwk_ErKbN9|S zxi+C+?nY?$Wv?fle5w#^M8*HX-Fil zLv^yn^gpNLl4>QgGDpvfXIY&#C5cZkrnA9afHdWfqlrm;wOFd3I0g^z*Ud8brHi+C zvKYJ}9H^@5=9F<|OXgvL@x}nSwG{ZhG(+gDy_$pH*yi|J^H6^gn=F`?`>}*^K7`q{ zSa{&L)$cyrvHa~BPLn%;@>83z(Q;w`6Q(sZ&Hce&`+Bu?(4fQAWCg`0=$vRb98^(I z;Ip>lc?N!xu~bQw-{D{Vt|w(%#9_{4hjp27Vm)vrnU7eRk6r+9uLHRHn`xY4RSROT zkX^nLFCOOK8-ai0k2H)>0Vj=P(^M^~s=UBCp)605&jliag@Kn$xrTNTrnr4+f}cmv z#7vvEL&7|d=0Wz+CA(8%m0DuQS~q5~!Ok@mHz*>v2Ad(~X*u=W4G1Q^7ZyJz0nN#@ zrQUD&uB885@*wy<7;`P2b5}9&P|3*cj0--_$aL94Nz8xf;<0oDkV87V+mTZ=&4?EP z2cxPj=Ps*t{vaC{c}EfVKgryG47Ku7CBEE59tjKG=KBPCsL#r5R*KkkI!y|l4gYsN zpRj`h@&t;jq+!s|ine`4RW0WqLacV;9Ic9~E;SzynyZrb{mlV_Cd}M0FiT`gO=kG& zlz;uhO_qN)*;niT>tdE&nD^M2XeDY^J_0NI%Hik5A%8j4xF2SuXpL4MZbT2*uv@6Z zyiOOSp(5K~*R2qEG=#8xwkiay@5*)%yIsB|M{vLusllb}2HHS}*t}InqUI||M+OL? zuph1|^(9$ZS47;p?{WCVGY_t#&_%33uotJaE*yVlKt^(v3k_B%MUrg=7GMhxVlwco z{eJ=PmFg#eobuD;3RsoPF zd31jOZ9tO07zSyd1y?^QnzJxSuHJxc0bX&~_xm#Vnexmc4fO5$Y_E8BT~1Ly85he% zZj5OzaIl-PWlCmIMOGcr&#ESx#zFQJas{Y|*{9=!R=Upk?{iTfGD;@KaQuTrXnF-7 zQ$SJC_a;+n9nN{rtrLF3(z|Q6LHd>(b-yZa0rvNQu!eryp*_w4+@r))6qhl_DY$}S zRncgUCCF2X&#GjzCwLB-P6JX2_d*&tcY*Q<=G@S zUzF$0fdS3l3Dh1skDL`$*N-ADh5jHLI}(Zv7e&pZZ%F0b-wsN6y1?<_yAmo2Ixfv) zD#Px7Nm_vjUX?3*tSQmpQH*>dE_(0?oX{%o~wdHgv%9f+S)JG8~!CWjjsT%e$bQX3*-%m`(r3xK@a z6@Gc&(Yc)N;M;|ad9zLN00_SK-9V$=HERs3$g=NL-M^ZgAo2e9$$6|QcUiWIvZ}g& zg~uH1{+|o~_z=g5WC8dC%qOb~^;f@_1K%gzIX^pJVUq|v+O=t0G-$y9_xDW$FwD3u9A>%O3M>jxuEJ{OC?aCUCIxahNHDSc5E27{IRq2d#W6HD52X#i&av? z#B|-6y^}InbQz){}hN;{VDBliJ?~LkqxGPNZNm* z5%YOVtoyNl3=$JEkf6Qe{pU@qKB#unDj-EoOhfO83t#I8ZJ!yM?CTU8R?Q;_&cdKY zex-iLfhaoZHBXS>{!*F24PUSmw0?0qPjW1hY*2(Vj zC#Q|u%fm#Q)DiYp!V|#Ei@W4DMLe)v6k!8HT3J`99!n?hIdGoL2jeEv1GgxyLV*+y zSkU2uDcO4Og?kq5#aXR?QRL!ew_5d<+2l4hOtJM-IEwP0Xdajo4?=YI zGpU_oeZzFSHxMdxae}vtt+)veiz?K2wN@C*`yUH4+E2i72vaJ5xfID}g~9_a@jr=2 zin7P0^xFWhEE}8KRN!g230OJ}oi@ir4*M+BvWla0kZb$?%@tnF+N|+x1H;k4(zU(B zi^#8Fn`2B#DVD#Nipf?b-2O|_e3I6kldfFjf8@rM> zP=fh7P|M~l$5xs}Wv{SK0(3N7;cwX__?j?H>D}f@c`>*P7TkwN%>U@(n%|M%l9^m;6zQ28(hY;v+ zTs5{^N@^e?Wi(;gL&>S80jIhLEfPi2rkX@&Tfig2y5*|!Xv0SWjY3*WUqR?9eb3z2 z*JpS3?Dt1HAOWjIZSMP@jdN_5DIIBfuxixtrJ+0xgW+;0^)q$hzbo@jhBxp`eC!#E@ia^wRYFC-g|0L0yS_iK?1RVav&Zp(4&kGDn+ zg#u|yl0fk&=n8Tujnfl)pA2tRDZ~APSq$Gt&ukY6Kj8kX;%e}PgwRYFcxh&hr7Sllh(C$N1 z$<;b)hPt9yqf*3zHfIPX5i`V~=741L5!kTS(XSSCVY`_&qTrz%97?VWBzEWePNqcT z-t`-LFms|vi?8^W!?fSGy=se+%%~$~r!ygcaKA!-Aq-~T4Mr{ML`SMvvyYH(bQ39X zWjDQW@~w$qyJRc}GrsrZdvH*H zQ)@ZJGFDWJn6U47#aY+x;&KUF6I3&Z&LW7at_e}Y@+5v|zUK z+~1PKJ{B%EZ`MsxkvL+@#2N;*FTtdb8RAC@&XRxT zT2A9VTVbBa!i&Z{5*@C@dwSk~&W(nvdZVP>shO}~^UCju@o4#iwYGxx*6PP*zHK&q z$7Dr-dV#h97|*>WsY_k}G%?p5C$Px@UxGg{I}o=JvU#9Jryy_vE!^(&+_$GFU0;76 zQ!_GXG3Z-AF(870z%(m=2^I!2cR_O?>^McQ5rk`z>VT#j=O^L6H+igoe(iHgm%UtN z7_j7no_yv(*MrglonbeLGZ-0;e2*^K>?cl{K94Si5bvuCbOLMh6cqK*5t9sXNvH|* zH=6hcAzywv=K}~kyPOU_Je}GG3b)TKp5oHY=3LEn<3}o1K&^#)8jDJ|$QI!=nXH;v z;+Jvr+1JWC0I|Dd$LM6Qu}PHE+8zh!#Vj|@x^iY@AB%Vm5IT8W&QWMhz5YC0>F z6w#L6#4(HrEop$*ij-l4l{azMG&sS?4xKscee4-kIQaH^lt{|>C72jKXR^kN(~y=0 z=5U^#1pn&PikpR9tB(cH<^#ZFH}++zIuU-varjlhfC3Y~P=fD&=fFUOz_a%gc_6!$ zCps%B(B)Zrk8~|amGKljE-r6P1#`Lq82I<7hmdMwWLkm`(*lwbK5}$sP?hRxOZd;5 zTU@z2t-$ltU2aE~EEsiQyYyVeYE$W^^0Q5hxu)L0_td4J5Jbn?Zq5U0C@Xozcj1i_ zPLGkS^;R)~zt>`aI?;kn5MpmQEpHaLEvdi@_gxx3LKasNq|HL4Q8EB6T>jTAO6< zxb`+yA9-BeW{lTcr7914XOdAdB_t^V*MbriQ{;CZ6JRGTAy5**+$dGasGSaFvPOaQ zle92&&i!H^d~(`lg3`qS%NnT`tmgvElBZR~{$-)>%2_Wc z9igJ`YOp<5;E2cOO&n3jjOQayUIM2i=Q6)HFks;kvMH?6z~Qgx47V?Y+kxw#F)}wZlfe%se{FbWP+Z-%E$;441Hs*0 zJGcjjAPqF`(73xxaCZ-Z;2I!kaF^ij?hxSReCM8X>sGzmf5x=6#vF52?W#pfCFAJe zrs?Gb=49n$;}8O9$Y{uOatQJQIM}#RXla2iV33=&qr*p#8(0XS12zX}fSmxGTmUW( z4o(zW0MOCNf6K+%(#j3MV8-~56QFGeGPkz3b^&NR+Bv#gn^^%w+}+(J++87TE)X%c zzeO5gFu=_U46v}a0|S7nYI^c2vH%8I6)k`)*a7SUvID3=Ozo`A07}+oU@&hpZ)sPWj4z~E44Y9LR0oj8A3_wSFCx{!^1)%I`4t8+> zXn-7CfB!1tVr>D?umd^#?c_ftAbV>&um5k+|76I!f&Pjj>0tR+M%KSG`NwJPDr4;l zHdnKD`>VVK$nLLV|M+#l{~nVv*xVXo|L+sPf93f*U~@+YJFow_^lw-HT*j(@^xe<16BFB5>{e~J7UEGa2RPajrJULF7|Hy0;>lb4GFARs8{_kZY`L0nwG4sQSG|F@U_ z*#GPm80-l)Ls?#MG!qWBNpB9X^p`H4s)A>pnlRB~Uf_gY9RG1)fNkAxWp2ECMslr5 ze^TIqMm`y2D!O^PA%ERO4N3r`?T?PdQbigrkUW;sR9X6eTYFY7eEJ?~bPlIYY;UFl zcM)~vmic=*SdD3nCp+)>n}Tz>D7GwTtVu zDy-<-RQz#k87872WE1Uzme|;;s4~cDe>Xz!hL@pLa0#-nr}g0*Evg*$s&jA5@TQgw zG=1$E%Ix)a_xx;o(IkqQgCne3jfF20E;O415e+;MLgO#&((wRTJ@)CxOvEg8^u>bK zN9v{QjhW+Foq5o>d!K3VZ^k^V9R0YSkWEXrdb%B%xC`bY>CE~`IJEq%m({F7f9Z8@ z+q$n85{%CcTY$=l`XoT5k8f5LpV%_|GL_3`f;?;KB2j4@R1=!sGr*Rig)-dF3F zp)x^ldJk{l@<1!26{qQQ@i3rxoV%LweDoq0C01d?z)VxtzirX zisdss59!b7Mp5mgD&iAZ6-8);ff1J2dv|E`P zbM5GBLRM&*553m4b-1O!!uS;DiSmYcIOs$MY`3zeIK?$o+OK9Qg!_;u3OH+F;-?4k zJLAyxW9(6T(0l(vLe0VqOP=U6ubl@{3L#AG?k@fen9Y;>oyRf+=fS_(gN zuLAn+$$6vxSQiS(r0EFJe@AV^x;d{HY?=D^5FAL`>3Bsa&d-(Th%!Tws8H-^hL{lE zj;ERO4<$A8I)0Yiz>a97+4mtb7yIpoh&Z*u#xvoPyN8i^o!`cOK^D@pw73Gi?PI9i z!uIDhB|uv}QPY3npuiAd4+&6E=pn(PEv6E=2$fbjp;NINIye`kf8;|+EJWkVeC78U zQbxq4!F7ROR8uvzQ8=DiL?g*Sd9~ zCrmz!Up?~eqZ6irf4EprGWErUMpnLMX6cVH!vFe>zMJW*?|bhTx9;+bRW)LlsW*Y~ zF8C~@nsL{NQ@zLYBs2vH&kWJX8KAhR|4B`xqbI!*3!REz_l&%@+C;6ll@h7L@E4LUO zTW!RH#LOn1XC$S?8oI#TN=Bnm32|Mzl0MPz*f^W(?>&(3xF=7HO;$%WfBc-<>YM5| z_bkwVsk!RZ^=#&{eQd%uW#cRZt~n#odlPbpt~<;|^r$yW3W!pe`L1ASEif?u+&3gH z)P*e@8rI;=e|B=8@9Y0n3`ARm-E3Eo+MS*JaQEqM)i%G|^aVF>F@*);d->UWQd;}NJ?iL7h}P>*7#rR&O)=IQ$`8gB3o+j=Xn@kj zn~QU}2<$*O4pI2Nns*HPK=2!xnm?`OD31vR>%z zf4B`Ve8p)iwP%|tqE3--LaT!dZOmHh+it}_PNSW{h}Ni`HNX#xnTeL1QPaAG@=tuM zec6;5sNdOK%fk<|POHp?9Po7h<#4dr!2rZma*s(Rl zC`;sgY6C=A!up2u5B6hz%ZnM~ zu7To$np_k7nl?BhVpz$BiXFk5f1%qhPA`dB@as=rFFyo<91QzU^4-VQg4Sis#Z-<> z7hV^Wuty)BC?n6QAxr23%4Q|VQLN@&0U zxOM%yvbG}k<3^9`3X#O?*AOzY+PH*@hsKRJY&-YL=Z>kUne>k!w;o)hX zJ_Gg-7{`0B1KFAH{lk8mz_7GjAS<=^hj|5R9TYVQEX#N!n+VC$cSKtC-7hF*VKGZ) zbxghGDY%UqVCXMYczpn+V6xNJ27!h{GlgR{KHG#Dhbg=8K|CY%J=|SnAY22c?i1jP zKmoHD7A=gu`VHdBOGF9*e|Lr%e3Tq$tzz=C6O2_%OrKqf-sfgv{|_o(+!khCird)| zxRJhU>&O7x_-P_HYguNXu^2OE6D{VzA1?5<2~xSCSvJ(NSsqNPX#?YPN;nwJlRbAQ z1#c&DGxSOyS5Fm}>SF*`oK758 zG4^<{L0_jA*B5{J4VOM&ZDG1bY7q>zXy=)l_|=~p=zE=u{&Kai-kAR`T4>| z3Tz9i^or>h$LHdn5Z?RNT@mbe1`Y{Nd#rhOOciFjncu&Ue{Gm&bzg>=Dt)Vv+fV9U zC-p5^a@HR}Luu7mLJ57S3x5$j zx%_gYyRk+B4_S4_<9nT&$#k=uwR}cqCGQl-I@Pu+@#im6>=LX!=Fe&)my0(z?ntIz zsw46p_IXd($b-@kBT#HX46$ zXnI&Me~ZZHXyDh%_ZnVD$iQ{XvMcv0v>usz_pugkMT=KFN@RIWji!l>-4uF^$8Ad9 zBYE7LyTm`HiVWk92)d?_d%tn{33aS-oWdou2yvaFGOtY&=i)tCJXnycs95e6 zgk`}$#?nFRR2+>c3UCso@%U+;e*mUI4boQr>>)AC^GxcB-I)Qcaq{R1Cu0KjN9lnS ze_{m>2@mS9MIGCmN4k*H5**sbXsG2nTsR9E4NNxz=)EZ`rQ<}+(8TKLbnCqJ4>PZN zYdS$_8hto)yV<<4G#@6Lvie$#QeyCv67b0sRAOwsUZng2)@8}15?%dDh0nZLOJY1f z`Qa}R2~21f-Kb{fsN!CPQM0Nsc%{o;e<%`V;vM|JFaI-2BVLFmb4)H~l8=sj(TqmU zM|scPnmzr4iFY^fx$5z!h^)$yGK?Gu;Xp3&o6KRL14jF{%TGw-4N`S%NTeKm4DFH) zy#Z2u;wd33PWqm)6seUgsQLm3lPchD+0}0}efw_AIuI&h6MEjFPm(~w=$~7zzYcZ5Ua9`zPyWbCnti(4`W@Zt>@-%*&dQVeTf;nwGpUin;alBafAg)7_PL~T zm#X6DbBgirw5>k2>GpSQ3E1(*lIJ{~q=WH5TVX^vDir#Mq^d(YrZG|gA8ww{TO3Z* zm53G)LP)H{*v2U;YQYk>QorBG^>|15BwC4>lk${Hue`sRd0zRvEKfJqhYT@l9&cGeY<8& z;1%2e?HGglf?*3Mz8ars1RipDJp_|{{OJvx5;;Dmb*^`#ng^%tf6or{I#`cRp$c6l zk|7I0L;YOgZWGa4PV>S_igjoHy*qyC6NQU*+g`y5IZ|s_=(vHM2Kx3uqk5iJ{gs*u@Hpw+b zZ#_|Hd>-TQi)5}Ze;NyjuCSEu3LDribg+4q`Dm>E$oBld$3 zw|CzpLM54u>sq&HIb`BZv!bXm=`}RTWrg?-?KRz=OV5~nVl%q&Ag>LD5+Q3t_9Y{B znAgRLEP{)+eKbKEHFFf|1UsD@(w;gcrZQhQeL!z+f5YAr8wh0kxM1^Q7vCil z2lXlFQVVbVK55^$CIQTG=v)M0QlAp zQ{SaK4Q!>(PLTyn_NoG2%r>839GFsla_+QgprzCA_goN6O zHn=^iU=E#Pe=rz`fUjy!`5>cVj&kYx5-6QN;Nw+se{KZN&|rRTe>lEz{1T1U2~E83 zOj`Cy8FnfUF5DfoBh#-e-!2>KP^c%iqDYC<%J4Ck|F%S0+{3+RhtHK-Rky231*m}Y zaxvYbRYfxan?%k`xJw9L1>?ba>eqanF!)}M{^nDbsnBM=+1Rs1VAKm;uD6tb0l`K{ znS~C1f0ji2GuDkA_4|?63T!F7)8JFMr;CVb$^`LA4~|X)6~9xWhh|LfZzx?r!jH;E zCpf`BF6h9n?TdQ4F+#HMFS+J~=t#d?9E#PX{lksVewcH)2ugr%pbx$>+IazH5b6Zjd{f<6IUMye%js_H~{Lxp4|{o2U&j0X`z>j_=rIQ5$8x zS7$AvgybEo&lY+sS?q%BI=t|tfwa9IE>5+^99j>x#iV`?6lxT>Z3v*tOQDIvG ze|VQWo6dsM=i6UrK3sv_S{{nG=X^2$J+wi$WOU9Z+#;jBV`XFCRAL$dV#ldzZ^H8O zV%LF}lz1*h7se>13a_;J?cCr3%Y?$k=!NRZS#(aT(p0ggjx1;rjEj^jT_i(z>52ZJ zXqlZQnVVnawj(7?iPZk%dFo26p<2mRe_nV5j=K9W$nd2|CmzW5xZfZ0XqRo`(Cwb=vb0VP({u3%N_?WoLUwjQ+MOH+Sqb?I}1wb{%H4 zQt)(1GC@IU;33};+Z926nO`Sd93_H5O&ZDKPb4m^z+vLJAImJN1M_0aybt-IfAz&z zeNjhJJAv68yKwiP3D=n+JsA;n#pJ#?Ssz$@=YKf%qj?Plf?CC3jkEKEmZ}`&vJ6?c{SI&KOp5(iMv4B ztyd>d)j)oag*#(cOa`~rwi^eQvz6E@{9#zd62Qz<6)*HM&xqPXX8b0x)eZXZNoBL2 zAGKFo3;hrM*`2sz92{XBEmT=*KHUf2HQBtNe{kH&ifCMq z29|P$sr4luY@KihlxLjAX(%5x5)rsGe`WeE3X59%2brGeQ#H#6cTjkfh4GITXJivG z6)G*RN9xvyx4;Q^#l^1gwHQY08aeL_4PtiO^1>ePb&I7{UF{Cw@?Q!uMIWTiB^i(i zExzQLC5wsyj`#X}GjU&Ke{y3s!urgMovkmEibv+#3DR|^h(XD80ZloDwoElo<=pi%~vG_u8$cFP$2mX4!xrO~><#!uu z_{Tz1Lu?ccJ+Oa&vxYS8}Ef;EiIb5%O^6%4P{TXb@x=*Z=|Ib=6=JYd((Gq=x94_?}=Z)sQ#l)Z9V-O;Va?tl0pYB~JC)eE?nD9D&E0 zVf3B@RAiHm!vY{K9MrF! zWoE^FbNJ%yL7~!1y8=ujDg4RS@j%WM0~vwFC$~)HHm*iM>0ir5)CgIz>JvXSliB%Y zWmjyXWV6!>R}khMaWzYT$FzL(O^63BD^J-#npsA|_Rv6%f9Z@|&N`V0R#sZR!L0zX z<&k{DaGf4khynBeKB&dD*;Gkhi0mz_HyGFdY&9?`RMzzHuP<1RMwA*uOIm<8*IMS= zaVWf;>sCZ8Gs3u>Y>;jC(pUDnSDmxPkf8;!yL!4QT|(1b7uY9lCswE(R~d?za2JFN z>KnRkh+Xe-e+p!HN@6NwaeXap!U$tCo^zIZFx^5JXrtAqRY=|IU4VI>_@zjHl!n`9 zwWzy5M~9OYba2}KtAobW?!+%`6j&F`?!x+bl~2xqVf|gXW&7QS8o#fC`L$8$t^?I9 z&;vLJ&D8c&mN-{&YU9y>X|jtvyDYlos}sw@i5k>pe|EQ<)9Cc!16iGL?+V{plx|{5 zHi}igw*cSGRX0c05+yX*3M@$aBu=V~8MPQz1c2gbud zLWS}l6Fd;CJepU=66#Np?Ap+MRNRBhWN!%Bo1!%m0gi2| zdzv*q`DzUMO`G%w*l~?)349%dv@Y0Is}y3xICMeQvW#i>z?X!lIbh(Fi31+fMKmG9QT^kmfn4sI~K}iVVPMr)2MdB`g0nBx(w;TpaeM5qOG4|?i%o(-w10fv23R^&e;=S} zS4TR+kpfsZH>Ro&<>oYKjbvUC&W}=&z%#;^zbT_*p{K%_g4KU$JKYp!EAP?Vgw)h} zR36O1y((ZAHHbt?_k0U0`DiX`rA9$--FLApCNkSx%qZiY$yJyLJV2i163rdWh!i>_ z!Z*BuE0sgP2%tb63;+;pFxKDlf1;vtTYP($YLr>qqZS^X7Fgc&7D={(MO!@1r)K;3 z#%2>kp#cYWTHH*ngw=a)y2Cb2YYkbCSuCN}znUbBfw04bSS(4x{3Mbn*P1IB+Gs_c zqpr?+gfi}s6%kb#5@O38h0(^{<2z1jb+yf_JCJHS62oh;7>WD^1>DzOe>Jx-yFqw@ z!zG55<#cI!`}5juQ7evBa?Um{G3LbRU)bg;ZW4%{%(dQth{fVFLt&+u@2R#y*+V5w z%^2=2GQa^AJ-W+P0^UMYyP?Pb#BH7y%Cu~lo4TfjeCn_|9ZqbaW~Z7Q)*2QY$oc5Y zyD@WutFvEZoap@IZG)-Pf9;5(PgilRU6%V?s>W1>SyT&atYcbpA`k;1kuWMPre4DM zO-7$G1)H=!=;(!2fu!Af2dC+YxFnx{#rA1##Y+(N%=O&omfI!3v9~BLYhr2OsQoRE zywV%!+OsBTl)S%4e=;eD?vBRkqr5HeDxiMrf2f#1t}x=|&7C`ay=tXxwVp=A{j4_*fR^RNQx%E^h?dN0RC#Cq2E0%CK-@aqf4z|zzj(?~E!=BUM z?CAw3+tdawyL?*u6iiE#|B!R%1Wdn(!l8ae{dEf21uRa^6g`0r&<1r-F%$EZ!s}=Mm?QgIyYLyN?!CfDhD^Z zur+-{ij)4j@=G1_f!~U`o=A$p12;42`0-FG$DEU4eVDRLeH#qlMAVB|t!v=9J@}N5 zvYwyUNmcWLPEWM=PcS>|qaLGglkjjw`Z<0$|MDPf4csJne;OlxEQh&k@|6ly{d`0e zK;UA(v{x{k=zRL)1D-`5SK9y+4ouJ&0=)kr#SD* zYHu65V)*zEz0NNl3USWsj%eY0hy7HpypIZ&M9G)jp$TL>ul>Bwe-z}3wXLWd)uki2 zh>XRAhZdXSfA%Cw_|C%b{V=FNk%Cry^2`4CEDC9l8 zq?&L|vt6OYNHS+ z1HgJH@&Rl7SmQxEOIzfFst*OGuLLsQobo(bkhi9$u*zb6A+jB- zfX0NvXvQpAldv!nlF?*!sq`H#FmDh?FQgwaROgiEEDcyJwxl7|fXx!&a(A2EJ24eo zrBwU}&!5B>k>IIj>RMFm^5S0i@?#aT%phuzWYtX*pTPsi$$4#Y_EP%`hO{Y&*M71i ze?lW)E+sKh^od*4=|owjWj6%Lj7;E)h&B0Vi~zYFgN}^s;VtxY*Tmtgdr`PSI2{|2 zYfV6=+o}s;2FDdi7`_iGVRCu-p`W{6UxkRkb=cZ#$h|A&oM=fmShR zypa8>gp3v+N(o}bVX@<`eU-Tb(}`t!B)h$P^r=}ZIO2B$>i+O|Axv$^rNHys+sD3( z^N@h=cHKP;$*wJcA3W^W3sJo=-8c1A1op`m@*?NEswUnkx|G0S{Vsbi^770 zPH7}cTO6wyVq{Sh;({3SxI)R@ z3A0tF(!SX{-TSG`1__ELQuTwlfUR(3TfP-^cw-GRkreJ!PO{99seawj9@qDW>&A=s-!!G(42J7U-67i3uG}qfe^Vt;)t?%g zNL-lhhmc3RfcX_zlLuM?2uA9!l(!r{b@l!yXT4IjdsE6b8AXb}0>iuJ81-CIZH?+O z!F;yX<6rx5LQ3V-?NVcMd_3I&ex;8gi70%SrB3M#4CuMzw^%|0+Ksgt(K);9?$?&D z=R7)vf)J#cZ*>Woo9TIPf27Ewebc{X^ZZhr@0w$`j$Bw0}Fo19Z8dx$G^mp;S1f18o1->iYdI-1Vh7QYruuobbEAkhW-Gy## zgndD__J4?kGV9nq9Y#V?UuRv1gZ}jinWe^}vcdzxx$lq)I=-X%_87eOm{h=;o500j zSG48Op3>LK^>&%An7tQxSAv+#S(%Vc?8Mhj= zCINVd`pP+tw-|y35-ajoT(gaZ^|U8V9g%pdiA-zqIE8jA2`16O#%-u5BL%&silf5U zJ)T9_$u}@rOy>+8F8cr(@j$N!A7~ zn?y!onD7?ZX8cZ68UpFP8fjaswbT3dy+cR;TxzRuS*2)W0x2g)IM^&OTSKOu@f=I4 z?pvzz87d2?9`-5b%(C~7)5fAhb8&3;%G2tS)6@PaiC=uU`L*U+3@&G>ZfZ#P6ab+a zW-*J^WANZjf2lrtVNK3en67j{+FXSc^wK*cEaQRHR3rv!6F|?%L8&zBeLi9jfZ?4F z;)thgRv0K>tRv3PU@&vN7ul_RQGYITe8Db@EXe_PWU7@PPZ&3%*u<>6?+NWfn9}u4 zbY8W1LOsyn$1o*Qsap99p!kFX7PvInQv(Xc?-6@Ne^^_z?@yPy3LOSW+c%soRr|ir z`QKz1Ft~a-45+IuTQ-$Wp%Mp^U!Jol*i{QS;GD`o3xAeX30=p6 zh%z=2%19%1f;~*S7Sam1fxPV_#M&R_tPkFJm~?(rD>cL%q?u@lW+y_S`dNl#Y+(CM zKxcvhe*tj$`Vt7Np*mmp1;?ig5}0$Fe2GdB=ZW{VyWei4-FM(CsRjm;{0K33x0hw) za~e;B(RRZfBlXkwb{mUyvg!XBHPXZ{|8n@n zM@h|}!1SS894VOkq2Y_lHWV?ltIl(qq~h;$f0t->T$RDyaQGg6oN z^4(eZVfQ^je+B3fOzHkM?0BJ>m&D%EU9TvP<30CX^p8*Z$6u!h9jOrl$ppP)E>BRM z9wV3&@l!|rg+03EaAIS0ybWVG0J`3Luankv^KU}zMQ1cRD10-Gfw4;yzzwQ^>G4u0qW4@XbY zN{H$Zpid^uNzPrTxeF()=f!#oK5%)8e2UL#x_ZTh_EI4_81@|MDcPz95|L=aef`rL zpgO*&F+at@naDcksm+T7L7!;VUv5Hae*~CDudEPF4idaD{J7UCUS`pFq`q`LFo83i z{$&rU4VmCy93;LK#6PY7G3-Qk8BRkvTx*<{!kQWlrJM0ng>9#bGD8U_zLwaNKIKZ; z&Tek){>x5*@wyFZ;ZSQEs|QN9v1@_I!)Da3vLa^zu=7c>+{rX-c`Lh2wy4Pke-LHh z)%Rrpop1{Ttur&z8%i{J1b*W)6cTNaU*b%ZVvpf}rpo!U1Gc~s zQ0Pe1PW9L|KCj&PHt}K}|S9CmubgAzs6DfO*Eq{u*%(`2$V9Uy=ub;Q3MK0FBj#EIC{RBaiJY0j#6vwu)cnA%WY%lvBFT zQWrFVRmlNQc39I{F0sgXB55kDTy+jLug^$rE%i^WQ80fwe=*9ZOkaa2K;U^j<<_k;dI`TMMvPLB3o|9j=%S^l|@Q&&k*PDO+D zzgzH6S=JHgWC?b(253Y70yTHB{BPo)vW7YM-z)SVGyhpB0Dt%YomI`DE?`f*TnZF6$gO?EJ5e^G`V7J{wEZom0{)9nw4x zbc%@}3$cxpb$`XHMjG>Y5c=NeSPXTf@f_(x5pB7(f7R-fX8vPsq{$h)9*F}`4gUP| zB{XAcF<66Tj4vzas7lGXL<~osJI1WEr5gczEn#8i#!;Txm=QPA@D&}j#af9yX%qJC z%tHKObMak7UdRUeIX#J~&9|~3$WDY|@lPu)`qK3AB!8S-*~WrTZr4fj2N8GpaiMPQ z*=W)2!zR`GEPRxF2rS7gn-LFUvUqIZk9zELgWmbmT`e--I#aZg-`bVki0QI4=%o^T z&b9tT?Xzfx5+z$#*%i&f5b99UB7{V#WR5WOul%8*hLTu{)}is%>I(*~0{emBBVBv# zrYn=tWq*f*Il6Vjn81&N_M_LzKdBT_O|rdgispnU7^Su@h-yMO8D7D5N>1v3P;fK9 zNrH4Ej}t|LaT{=y(iQh;r=CCf#Tb3gLSl zindl1PfBB{qaF~79cfa(@2k(YCSC5CrpGt;m`^Z9@0sW;$-<>pqas~D1gvrCL~XlB zwtra?Cp=${+qcz2_;6KI7Bn^c4`4NpsQsS1EIn3N%d#bTR;K<1go>(8-#WZ=>wa33@D07j7{@+t0glg%a>|X(A>qz zS3hnC10gDrTp@z7iaN<@!PJP>s5<_ED1UI8Zg{>UeD2no4dGzQmkfuKTMk8&U{jMU zAL>?lOP-()gVP>%RVasRD7W4*RN1T@+6~sL_w66w>MF)pZDz|$*6H)tPHZHnV(PkD zboNA~?NR$6LyzEq7V9VUUD{{`3njH6tpEqzY(4wMdiPZEqT|sapvI?Pg#Go%&VLJO z?=Oav3mw=Z+49*(fD&6wi(hfatc+-AT0rKoy)Yc{WM}6Q&mncW_&>7$pdsNN4L?k! zER=AMHM0=*;Bq6VbU7_FCI?Fu(eq;iqLnfH?&^Wo#Xfb%yW}cDG?%y7T%O`F9Ty8u z+s|^@PG|xK7kc#pNP}PH3(FJy=e7T3F6~BFvKpytp=!ChZ}1zOlHJ zA4%D+zU3yu6=&j=LUl5KI+=W&jq;u=b71NfQddWZ9qINP z$#ym!4md>j&wfcw% zW?`O40MC-2;!F5d?o@h$s9AXCkFp$7#Ix8>qcjRK)sN)?t|@Fa*qer-Ra`rv;J_0j z{P3zZI7_?)9b}<({a;NuTq`Nu{)K=0o(^v4C|a@WWCJEg&EzhbqbR5Ndl}XtqNsQ# zF!(0SsPjR#u{_J@|-D^~itvriDG-_kADV@#siv^(jl>S9)$iK=dN~*5tj0vJ2=t;%`_N;UCMi?sqfdwjf$*ZLI!M*gawU)|RQ>wtHXZrlwQ zFt3|ON3LLdUhO$4#H|y~`4V-L5R}|`KbFw?+ckyR>e_;4OfiJf{^WmP-UnZw4ChZo z0&x(FrKR(p+wYOzOO4I%8nKI7?3CSyhBy~-xHPp1eQ*5i$!fqDSf$2oV?rpH4Fw{~ zt+kcT5_y6S!zl*rFut`W^TjOiXUN(nt^-ONrJZ%qzG(($U2C16a3j3|qRFvlh86F$ zTyD1G3m1oGxs3Fh^jLrJO?h~(&DOZv7%of~*Vhp)E{Sus-t=h~O!fJcr_l%!?=`RW zGunQ=&5KBRCo+_EWhV8TU@S{LQzR(ve5Vl~Rq^M0M?khWG8oM9r|KnpiH-Ct>1Der zMdij#wjXGC>H1fpyQ2Y3Ox?$YdQ(tgK^Y@Ra zJjYz^+vTqlH$k`;e8*cUdvy)yp0Xtgp)W%xLyZdMe!tT(r`Eyq(${-~3^8Mt5)QkI zsAx6*PCemUq?WO692q5}a0C#O}IZPJgT~OHuK9nE59(6M=bK zw!>SdD9eiW!kZtBWgxJtU`8u%e1g1I%m`})@qn6l|R^_$8TtF+2_B0@eB zyHVyA>>wurK8*2BivSFwue*z~MJqZE69+8OhvYodY@>gkEB&x#5JxcHN!Y1PmxE=! zb1QCtZz9BjMo!@a_X~O3nePw2FOzVIYXeSR*rmvN&A0G6E(S`yU2Z5s&5Mo+EBz%K z3HH?`?Wb0%X4Fh-34z;$)J|{xuc_BBmSo3LK_plMbbl6!)=r?jyX+3r%`4c;dth6$ zjwGTUwc~#cE9D6YG7*gpcTEA!3sl(EXL?>m)E4$@f%)ch4l*%nH+IGr45nHT*}Pix zW1Jbqqv)F$Wb(c22%;^3GX0EKEqMdquM@_(mX3kiaW)@qA{myJZ<#1JjGL>yzzrq< zEjdJgb_Id1G5jcHKJRDX*tlD!GO@L}<=1u}C2hQ0k(*`cd4U$&+9Y z;KbZnwoc3D7)pa&-sE;Y+9_kXz{WDo@;He&wV~X#Xumw12CLv`LnD4WQ`vte#;lgu zBp81lB3q^I!o>o^@Q3eHp2vj)R(K_3ZmQ`~6y-Vpk6Mv|OUFTU8)VjsHC|dNu;ttM zqmMdhDf2G!t}&)&KM~~P@I7W4N09Ps3uS@AmXhw4`NjwDSJu%^of+W6-2}&>FLtvo zZ(Dl{#dBw!cl~b_uLYnJ;q!i%l9)nK?8Sd4BN^#j?R&=Wg@K&N6iG6lK7&;>zdRG) za_i*V&9&?0A0&ASUOue%l5SJQXqB^1sSz1aUzPdp>|GfCpv|wPEat86Ykej7iB~Fw zvb27aw6NQ=2T5g!%(_MiD-!jsS<;n%jMoSwdPLKsBqGL8ZZGwb5a9GKWiA{s%0hoa z^68E@i$StNNZNTpf#Uv-^13oI%hRGj&hy-F(J#xDru3w%1hS|Tlc2BdRS03U{pe|` zY2L+$zbsjy-033e^#kpMgPe7-BA6Tu?2iypr|zSy>(Wq81*%y3>E$j8|jbFe#<3D7L5T> z)tueE{Z-+GGk->HV^VJ0WH^#ENUYP1B6|j5*iii(vdjB9EaPsK6uoO0Nj`t`pOr@9 zs-o3Y-sJsSfcny^1(KZ}lT{Sh7$WLZ?DvH&@6~*t-yHRA_Ax27@_jv-q~%PcTkaGb zq2pmO&YaF(rnKA_td=kRa;z41mZK)rtH4?&F3TtdPMdp=b-Ay%LTU~%*_*|f9oagv zKFP4OAY{HYZeoZNrz6Sp6%$s2GA^KL0JcH_g~NSL@PuUjy1aZD83_ZQxA zn&r20!_{NVFg^ikBd?aEp;#j=Cf2dpwmr#fpzZ)ILV_BGco*jYE}VE~hGJ9Zu=)wL z9?Qw>Z;oqBYDM#PWfdFUuuG#>w3wJ^#_Hqn;IY2mp~DsZ%t(JB25d%SSnguz zAD+E<4*0X?u9Hoh=(fu9S|U02_U0Lw8!4V|)oxGc%%dz@)$o2i4sqFg^6M%p_S=XW znE`mtifDr+BJRCdg}iHHqllxw;^m_Bj2w(_gF6MWPeC=@+&=`rd$*j}ST+|_A- z6*eAT+&TMR6nW@_@so-@qoTGaH&n;$Md}svD0N{QJQvo@#$`q#{~(o@S(W*SAjQQk8%G zBdf&Kfu=>ms=V16@SU@d52vEiV*;!dd8}Rj1+~iiE`OK^$tbVP-GkTiSe5lfbqKbo zJ8wf%U$qi5l4Nu(!nK%9fUIFg?$>;njW1;3d1n$aRJ737l~VVJF`W0wsKf6MeakGx z{LiF8zlVR2m}9L505Yh^_y=A$9~2i`O%T=h|2^ai?zhRY~bqIRw~5#Ytl zDn>zSGXea%i@uhc=0D!LFxKs&?z$bvxF{$?f`;(|KWt*xB^-Du- zv^D4WRHPOxCZ%p##{P@R>vSWrw^h|FzQB>JD$*?Oj$m4QUm<0ykgV&Hx>ln~DAsB3 zRsc~wdZJxtk$mo|%g(iME>hEwpJ9+s9BI7MWhk9Lrbr_%?gpqbB|1Bz>{Ht9Gn0LF))20h02GBo{3_IWKvnbYSM z&m<}&nD$bGcx7#g1Od=m^(%M+s2G37U8OwHX=BJW!B);>_|Lc47vY{HhXI5$@94AE zKFbETn3%7KuwyY&*%86r<$19u>KH0RBE0Zv;tDfjeaAW{B7fQorPmdQl(DVv4-~)1 zZ=I=WYj8JrvWB~9In@I-?j#H?MV?HHl*s0Sx(=JozA(uq7`|40i&of%0Hc51U{ND~ zjV{n7no<<%ophgkUOm3V{pi)5!%Lox3_xZlGWs>7Np9WX`BHoZW)Hn!iucy_l);LB z_>t=|&`vl-Nki*D89^YKg&TuBRC(vLHT<}t`Jx@ki6W<;Q@pC7lw~``X7-clA^516 z9*LmA`O57XmHCJPyon?cffRpNcgfm*GIfYQb@2nPSEHWLG$+lRNqn?FuyXJ5y6o0= zj`Df@S8xUCJL0eKe(zqEpJa4V;TB__;piCcO`~X-SvXvXA$=)Q$mpoKq$dn!<9K`; zhR~>y1z5)@)DJtiMw24J=g7X;FqQLOlZ{yt{wz~+p`Eck+EaQAx@v!L@HLI+vPN`E zTn9N-HtuQWr{bgTwECa3xGA(7`*Sd$Ej63(jCi|?^8->s&#HcB3aL#!TI+{F+>^76i zT`~`RfNPaRZ?}k_GW35!xgZEo?mFeIO&aNZm{_EnSb(3fX6;Fy`j%6aO~rc4Cd=v7te5{{hUbU5Eb(0##S@D?>yMF~Shmgrp-&S(w+0?)BF8D~ z78YLZ=iH(DM+N9du@p{=B-ghNb(y>>9Y8Kyo+8FIzZsJZzIOjJn5iKy%&u zB(#M5BsN0zGX`3#!x%(AN(6Pl*nj3g-*%!A-_1?ji=ql(LN5HJ$dXW7zAN3=Qd3u1 z)qhGY$J>9AUDktUapG>Dr1IlH?JW856MU91FJ3Uj`jvvvc612YF_La~9*x+oQbavT zD7|i#FOJ%8i^Sh3wa;v-F78h*aX?-Vj_$!>vcQx$Oh{M^S&#IM=9uS|v9G>oLeY40 z3WnJRc2o&fuUx)@5!V4?Wnh{RVw|Vv=NL<^RIq=*>bmAbmye~uk4I_XS*jIYBv(

    1{ITelslqb@Y~mfL$9n&2f+W4b*VgY7ZL=a1bE!>e zPjV|M^X1GWIi>d$UJrbydEh?{(AzKjsak&xz^h5~x}H#W&E2*e7Ki;nf7I061)N2m zLQ+Pc)t>T4V6z?^y^JT#DNtw^>D!R`dR~V6XvQLkAA_ezjjMV*I}SF@xTnxID&MXB zk+6X}OkpfG0#v~?s;2)ZFbacLTrM;cft8t%nXtS#yFTtV&U<$;fv-?0mIH$WxxIfD z*73ZE{s{H{lfWi1D^A%IlJAej_%vS?Pq`t4q$MKQr5SIf&%_Ap$hdVqF@^{MI?td* zE&@$G_+G9@7*qeM5|%t|s;Tkiv?mE5+>;$;V6(!sG@8TU1|R5~_P+EmOjYxA}i#Z-@5;6I6evTdXM}UAqkr`L1}Pp}(ZP#t$P8 zBp)x>YOLXgg0UOt_}~hN_N+l`#7A{}f}=I{NsDM=Q6qbWg}e2s+enJIujIds-$Z*9 ztm{_3?q0Ct=;lrkx}(!PsX%rY28_8Y7^yIpU)Fw`SH(f>x78axB}FT53VeUSjuFM; z*3>gjLOTo)ZUzb_Am11yj1Oz!r8O_l1mU<@M;W%-VJK?{i#?Rlv82Kp`G zi${)|)JaTMnk;@Y9aN}Ad&YlzaB@$0YUCWzFEa}7ncRlvpSh>;qyNV1SpAS9j0|hm zox9y|_|sGXQDx%=Rq_p#FC$n*p)?-qYEsm~sJbkEav8`lU5WSAznLuO)U(X2sK#mn zk%{+Xu?$# z0xd>!N{~SQemAQtiHZILZ3>mxC(Ahr4+w0inTW#l!u#yyr*(@!dtuySLHJIdsa-M2 zKn9&SNz^8r-!1_9F2m4zYq(93 zkOIG4{B;?@=KdVcnq!GdM1)-4TzQ5&_wxG0C&)JQInsI!dra;3`zBGcek(UCZNf;` z@>e=LdMIo7qVbR6$~IPAr>6R1ta{RB3_#PpH*qQj1#%?X?KgkDg5*q2UxFJ96AE!^ zT1lBhS9A~K9t(@pXq`j-67IG5*dVFcA26UDG1K)P!t4u4hQn3JA(QztZ?4BGSSBwQ>Ogf*(U*ew1u1S`Py@Xwr+m5aa^MWQfn z|DpbUIm{&@HL$-UG` z4BG!|^f33b!8=9l#|k|}rROYXG33LJJ%Pwid;KX9{_fzpH-D#u+6Abc{Nmhoj z+K;G0#2J5+upszNgz;zn4?}*8pD%ES*T2?p#xvd+QR4aG;@m|9uh40nnYh<-)&L;V ziCGPl+Y;oowE=M|ftVGgljdpXV$*dRxpbyJQuNY$n9hCZ?Z~t5*MK&DRK{1mV~d8= zqBr0rro|%kZmn{&Z)+?qMiH2pXh}&iIYLB~o|S)o8Pi6cb--Gx`eiVFYsN1S-?6E7 zC&nu*RYG3mnF1Hx^RYM57&&AY1w-eER)ABjpM5eGq5lo!6pl*&=h8#U?Pk*K{ii*n zJhgaks|*T?ce$4errV1`9}_|-2dCZeht)|P&f_}psAEz_NAtM(!j@7~Sm?zR0i)9B zJ0pMU4_F`lJo>--Texog`C0gwKY#Id+mTg5FZJ%`jDxxm&b^rbp$v^#c#Jm+t$&}9 z;suV5VH4({+V4@FoZ;f#N*mx@<~?!_ONIgGeFd@8Ff2~GA;OUQ(mJR49I0xx-F?;G zq0dc5_=rLUA5SSm;rkS=9kCX(y%F=P2QYuy*7)cRCt;+R9%&I)svkyWu%s`W)mn%- z3V@YuBe!B+wyAe`YJ{2o_hvb+t8K65%Yj;LPVRQg+4k7n&FkS=Xte$K4Y{`Ly+pMz zZB}`YLfOe^n_chh4;ESS0F8Q4*N`ZS%ZE_9h$cgpEWVE2ZGXsQ8O9Si^J%v-mA-$q z$iP9fpm{8>uI0Ks-SsbrnHw+XTCl<73mNC(js(q0Fla38NS=#X zZdb>SbvE-EQj+EOoN2j45s*$Fc1TuoKJNA-mH(9)xA7Ur@i!5RRZHFoUX=>jeemC3 zt_+$3?rx8UQvBxEi%I}8wGt-sa8G}M?db(S{YB)2OgdJ4$xp3_Ce2Gq@-BxTK8CJ4 zgd@o)kCwl)eu--<;^NI-L}fpI*GxqT9Jca=JV{S!C-<}GegC+SY`sq7x=W*I^xSXD zULhW|j=G~+0~lbRs0%YlB+Ueh%zr?Xp^tu8*@|VVu+T_~($;?$iG`!fcG`dNz>%JW z$yqt{UGOKmv^$-kx92ZjU(D|fZwhBC22(dP^nOLY1&n9{R=}xxlbJ|u08K<0g9u<@ z<}2M1VeM~p3In$i@T?f~8AqEbUZc*O90i#ayIZVhlXvAA5pDX&VCJ&4v-^iImrTVX z^UdPBY3c61awkn}oG9*RgG_%wrrO3O`?ke9PQt!VSZIx>HGC4ME}6g24= zu3o`~T+#rWy5IEvbwByd*IO}IseXyYk~CDli~f1jlfr&nl7qOjCiuBf?@&>X=#r;H zo*=#xSEip3{x%f&x9tNNw!)?ZtxTE5*R_m19K z%zxa50c;Zcc69)l?NndhV?1$EwN*#jpg9RIFt)tJHYxi-YyNQ1<-NxBPL#6%Dhp^=GyV%zI$~^=0K{7TM&EgNcacmy7Sd zl`|f3O7auHuvzc#8SYVvtZ;Q$2QkhpcK$K!z&_dQ#lRmK^3%q|ZKkmzavG%1Ci+o)S=c!1~ zV?&}kNv76H{?k$|r%&e%&ADX8E0{iNVUjRT7%mBRt^CTmpoB2pS=xxlm+c(oWxhT* zm^^oQbXWllSMgSL57Wa32=WOxLR#I3s(6Z*BklU?-gqycqN6fKW^{j@Q>F03iUn!n zf{9!A)y98yPmXbE6=yq6q~kZOP@lNC0@Cn^J&_B-*tqP_d z5obyE-dz>lwg&ZF3ss;ISG8^VFnWsO!?!;Du{wYMIB)ONT8EUZhqwzDO*0u8x34s$ zf(q}bT%kQTdOa|pm*}XuJ12}?z=9*VsOu?mx3zAt9pd)GwgCTOPxk#nzfRKiMWVnw zT_Hp9y7~BrAe_$cM1#d&Z1C^DYAQ@vk|z*S>BH}POmVW}Q$)@!J*1Gcm(G}jcJuWt z&KQ3LM_0Z@;#baIeUO(P3qi11FT`Ph6ohzgYZmqF+Q%9#WRS-m;8Z5)w2z-!;JiT= zH*E*u>UvYvZ?IScLu?BkS`0V{F#+l1Xr~xQPoQzPam6c&eB0?hb{uA+sRb{PjGgloL?ks9TBmCf=7GT~;L+wR_L7YsQlNAA zHG>d5=LP#{;-k|4JYO zQ{T)q8CZkB5!6F*emE?`9iN#fUqO=u7~m2~YV`qGV=&{ljGNOp2W170PNc7VvxUJE zYL1L#eYmfuR`4ae4??*eUgw8ih3zFZic=`TBPTT~@CFsfSFuHq{wOIsI8ZoHA+OrL zN2SIx|0U+TQkUqLiFBgizgC*h#{hpLXY*G1*H) zUKhlG1HD6^$~=&nA7r;k>R3x4M4R|rDD_4O;;fjAsgkM`h ziT8k(Sj%A`>zYO9OUs4KxM6Ie4>G~hk!G$2+*eiN-*&TCF=j^FtUJl}DK%l&q8GQ% zZ_KBb${Dm?%Vh$ygVu&${B#nHZ($eQ2mNhYqc!FFr=e%a3BVSWR)YHT){D!xa$xW)sL1_C%Um!U%g6qjJl0}lZ;mvGGk7y>mplfe%se{8pN zaIakwEgaj)iSdhV+qP}nwr$%yv2|kGwrwXTx$n%}nOk4gSI{2GdPoVy z?Co4sJRM9KX&LDlxB$vx%F2ukoU8x_I%XJBQeh`kLl;YXI}t+{Q!aqIsR=;Y)B(WA z1YlxdV1ywB2-`b&I$4@qxBw`Oe<}YB0@Q2_O)PCKod9a~Hui3o#ufk`H#au{H)mHm zCs#hYf0~p{O#vZ zodB}-CZ#VkEc zO%yC${_)$)(B>bX{*9}f{^xRJO-(FaZU576`j099T&sz_osH-JJ@TJf{(T_5l#r5& zpceK2w&34oQ9EOM6H7aDfU?U!h8jAV{15ndS;5fqKP&WKG5=jDe*okE%ViB+oGd*6 z+6;96+7X6-egBPg{~t?8$lk-7mgygymYInWz{tYR4&dPA@csYDHFkA!GPQI0x9k7R z^56X5+hl6$VQLJszG8389b%Q<8dm8iT0B<;PCYkcph~^M2)sJobE}PPIb>m?e{_xg zpn_fC4u>}zXvDjBf3++5&_ZMwZwhxZITb?~p}T_pR!UrD?pM40p;-9d5TSPiriNu} zEC+TQdGC_Bu^yyAHN}#hcTp?lSk8+q&KP4*(b*4OBw{)_5Q&>M;E`Or;MzTQj58Dq8rD>YqicE+Iqi8va^{lp)tOyF5rZ zckd_!hC*Cw`u8v6+4tQK!5-N3HbFI?SZFD=iCr2{l+{}2zc?^VL0Y*K(#Q*>o12f; zL~W$m#1@#bejRmS~OiA{_0RilL@;{ta={ zBvDzC(WoMpcwD&rUxY(3rUgL|&l@MWQM$9!Lu7Zy7Eg@O^u?NoSj}$We7y&+2pPT! z1oQ)$-UQBKc#F|B$q~JW*?#z0R(*!`Z6NeUji8aee-sT)Thirl)opIJG&$s{ZI)%f zrW1kGlzeE$87U1Vw=~OxLV2{!CVRxC$u|xfH*EVj>jKE-^C(F+ZQ=|l{*thYgag47 zBdx^>b+hjLJ>TQ|G627_jf*aP)nzC?`x9oMjtL4DbO$??sui6&7xin-=rRBxStR7_ zC*JFif1(3gD~(~l$$Aw#kiw@mQ(l3 zsHo0F+3}(V7hw@u(25CsEJ{aLdfsSh^!+HQ)eflU zEq?0PlT8XEfEqM+mJLhN)96X;d^qk>%?PW~HsJ7M`nNZ}Dy@c))$!d$AuH$O3f;Y( zj$ZRAE?u3pkM%XQFBwe7$uO=I@YM3UX3!e9BMwx$A5nSgtg~6}3TXbZ^@@?xxmuoe zfA!mL{mhURv<(kw#hqHeWKRcm`i)wRZiAL{>!=&iCeDa$x5U2BU~z}aGCKx=3um)S zqliXFf7a)NwpSdAZCXOT;}5+}u-Z(v=BgDerE1s*dyf#2*Fq96@iGDjnJVs#GHRmmkQG+ye^i?< z$oR6(2YZIN{DWgGaUe)gWyNJ33ofMV2StUk-rn9>!XwIOy0PNvenRW$!!m)nux>Fn z&mww=CtNLRMp!a+IP~E^?WeM>cm|9%@QQGc!Lw+QtTz=AC~_R4X`htFIQGto-6f|c z&Tn6rBn+e~iXRPevAhbMvSG4x5_`)7s&gs^tkF-uM#fGB#Qvx~1a@Jk#AX5Ae}Ibt8;YTU zB@GaYWV?iFO)vlT&!awwvyuLjsM*JL%^NR85k%aRK(Mih7;GVB{q$FIiNV?6Z1B-< zrS-Mw0Cs3+hkit42qssZWLI?owD!pSm#t+xRGl-C!uTKODfH7)q5k>zCMydec?LM-K{4l=G!!<^JjOq+%oAAb}DO0^!1u}+-s#u*+j%_gY6 zR1(2+ASaH37O6rK7?)bjP~2e_ScbOz@sV=u^mietLgNY^Q~#$-e~THV__6?BhKcl5 zXsP5T`hD+$dqgSrMg4{gG5J8j7UoTmVs$)#Apv!uIP=^LEs`#kYKFOp)vB8oy`F4lzi9N#OfAI{QjY~wuRh7V9bm!XpE}E({tjm7#uZ9JzrN1mUHKQFX+rzr} z-P9DYW=47qpsp>1&L@->gj?xFM3&qnn^y^1PS|?|3vcWGMb-D-l811=_Gc~_{Nz@g zgB+L5c3@xOWXlAdG=m2zGD7HqgsT-Ee7YF4P#G3y&F-B z|By}V-;)HwfAT!QCIy`&rI=I}nTihBDe?%nNhi|CTox5%{=ouoYLOok_C5B^P-+LJ zPal?8STr*qlf~MSMVVj0t`hL)gYXyy?bL@l@vX!kF`xfpnC-f%?yI0E@vaZ?wE)Q- zW53netF?^c(nwy~hCiTTQBGVnMsQ)AuvIov92PZ zM^H3~uHBltUjf_Gc+lNOtLgFPg1m=}c$&!51TG8O{=3fqS@L_M1_P4is9YS$T%oDX zUgocwe?=lqfI`Ii4{#$5aPOu=O1Og)_71rt$0DtI4Mi=#u+V{?*lc*+-=|V&cG zgh|PSC}8?3Wme{jj^dYZi>@6F5a9;o9=9uqn>F)RgiRll*Ii?lR#xSvniDJ(c&b#_ zm$wFCYtwdEHve^>v2NKA?&+#h%11iVb`)WCu zFn&+O!=7(pmWLT#OC#cY&-O1II!6cF^>xr(b%*LLSpmtiFEL*9Vwopz71LgEfa|Ri(kouie{>gSNCd8924}qf-s?jPdO#KU&_Wk~{p3aL ziQJ3$6#}LwRT?Of&Ovv=qp=1_3Mxhtz(f!dgRSU8swLp?^m#rvlW~Ls4BM|w9+KO^ z`wR8j{$w3{llhFC`stchdm*!qTp14!1x;%f&|^j z(!%~=7CmySB>!O?ko#OP&N2j!M1e9}z0KSquyOwpLnk0f~( z-pe-0%mMopxa{4$S^{pTl~e)3l8{nwAMnDvj_=Ma>hN>UZCKqitd=1|e?(;#{Y5JD zf*ax;T-(xr2aKuVQ#%H|jDu)?g2WO=dzg!3sAVk3D`w}EnoO4iO0iwlR}S5DfxP=W&b zBVKNS)nR+9$;;nO5 zCwWnTFlHKKONJKQe@5(<@zO~ly8F;SWNBVP7mCQQ_i*hgC-0H-&5!?$?^ngqS)a)U z>5#k{`o!zoui9OJc;()l?8IwUiwp@SKMW3(FZI>?njfgUf7=s`;@@J30=<~a!6EfT zvXbQ_E9_k*@qJ#5E>Rf%`Rzs>n&A(WTMo-uE|47AqyDqoe;Ortv%bLWC8JYl(@aj~ zlt<9Y9h>Yed&yL{dd2#{m0zxP3_F9uAqQU*PS&+Lw8(?3NGL;BHG0TQ0O|LNBDzx8 z@5{fnrRAG+aMw0Cm#6wC4ct@DZn6Tl8^4gfz5}L0U!hMS2~!1Q!cBn}&SSJ+KdyG$Ho%QkL)&O)1ogS)h2m%sWFc5|%?*M;201o4UAOU2jzL;eKwJ}HsA#+IDbDC{Q{jxW_`#C(VBjDW44p&(<*W4|KyQ5$NiWhhHz7_{e!>?ybuxkQ ze?M_DPxpK(Ct-g)2R|TvQ_|0;jfIdu6(lqQ=4yKd6=e)Ljn}<|mmv4P4;!s;fIGt+ zd%K$~8X`S9VQI`m(x|N&G#73|GUgWiK zKrO)gjC19@bGw(rm;5*Pk@rwxm zykici4YtG<3DVimd#mu;3ReReb*Ym^Ftn?iKW}h7K5}Ue)cpyM2@H)pjCf1{r^IkF zPR5HJ8*x)^|11T?4x~s=`aKiaq7L00ItA{RS`@A6=QLZHpy^KTDm6f4!xI1xEIaA+<3MFGs~ZmmA4S^|q<#?7W2E{JB@R zvLHdai#bAeNI!ctBfUX)GEcGK@%g8s=TA5Klg$<-E%Bh;`Ot9BX6AU0mvK_{H|!rH zp3G4>Y?%6{;2)irL?~W^DPjY&eCK!g!j-RE_I3(+_h5E$XzbK^Pp=+WfAq;el}KE7 zR5Lmi8YPasK+C2i9QvRk>7x6o5}n+oe?hgm3VHWJ8b6d1j`aO;e%cYiJepu{eM6-f zLL}wAm$aiUaqkHP*4p*Dns_atwHp_YFfb%#ct8WNKtWyWBYq%MF}4F`HP6;jke;7L z7rrh6%V2PLGF}{I1&fwce-Eqa%en~VA(Uv((!9`K?yv=gjtuq~X?ZkBsnIhGRWPMe z;)e@%Sk;sGU4QF2*y*)KwMK(n(a8c+%Ox$yT&O%$SP|HWm2O9ZvoPboq@1e7;Eygw znCRJ6F*<>egxc<~e$LU4zhUVc5-F9{>z&+@`-XusMl=^dK!%y8f1Dn?7qusPj_1`_ zwBjz5)Qh}!#t`b%hms0~4PFIW)cV4e5ssfQV9>OPaG{@Glq|$^>=~$e!i!2f$e>JREE4%&Kh%n%1#~^XA7bm-@~FudnmO^jI`u1 zy<r= zkMQ>~XkIBhDYq85cB;a&8`FI9>?Qg^Qu-6iBOK46`+;2{#DSnYWUix{u32_k@RXuF z^3cKZpF+;|Vkj%z1@|2=^_wnOkF^yTOhf@z!HhBIk{7B))jq#U+Wk*UueA@(iFWq( zOqCdhpUa(&f5r{xv6Z~FRQL23xH8DdTMMqG(RHr3p&X-_FlGGQzb+7J=wjfNG7HB2 z9e>}}KVBRt<99H=|YEC$&xte;hznf` zv-jsLkM~BI6RFrkzq!=%lr0M9*GiYy+j9ZVeK0I6j5Zt@+=tXXQBv;fx3U^+aZBSJ zsIWi|f60K^B5ieQVoiquJ$gkZUmIKAwQz|q?K9IwRmg1 z>0JexiqsqEsNwEVm5z+{?M~FcxOYMc7eGru9w9O7Eq)05e=FI&RUi9(UiBZLq#Qd>>Ir^ir@`g> zoM&%Y`f`w8NV5yFrHv@mf2wVA0&F&}Pmg7^%|MmfP|P(zj|;_u;7k3JPdH3E5ieaG4e02iAO9 zuJ1;to^!LtW3@m{yl!qsw$2Cyo_tPE7YGVrBG9lyOGBg^+Z!Vm6m>o5A zTFP*+6L5}86i5M``3mP4p^o_6f+-#(f7RD^lNL@bCATOGsj>?z+xUctt7)0b>u$TW z00hK3KN16FX=Gd6$%dUw^%SFaGhWPoVeNsx1v(z=F@<1L!4BpPf{5M<#S(ug!%MVI zg)a4Mg8r})>c$2ad8qKmBxaZVuF5Gr!Btk^#aX3T~8BjJOD3N`PuN}jX_z>JT3-1)uDwZ33M9UfKadB^*!x`B-f8#=G2{5 zGsJIs5k;j1{wkI#lwJ5U{5IlFf5~4fA(9^2X$CKeK?fZvOzYimL$#%daYuUNdP~gv zilq+1HW63^hNOi$sT>f8Aas;brq2aze9?h-7ryv3M+el)BYmOY_#gebwe{Qdqpv7JZ zH1;V?7yE(D&^@s0_+)ypU*HhJjhp9%J{B_`5RetAr&4EWY-b8(g1il}1#we@KB;dx_`X^_LBh46uc}?qg0pce@fTE}Q*QE9!Jg2}SB5 zRcPM^f}Dq!X?xDNE?}#`f2RZ@P#M-Z+Qt<$Q*d-(=a0clqVj(D^1&!7n2Go)=8S zWk_J4`xicWA{q-{ysW7>-MP56AR&h|XmjOapGTlG%o6`2LmaY)CikIzSev98aMj*r zpUH6))nXTfU_0AAe=Fr8WubR(FuylGAoM*gl)DASu#ugBi6JRnt3na4Y}Fs%#6+&E z->uH&2!|r}^41PnQjQ^?6n91L)*C$GUe8mJ*M5fJu+M8^gRVk%7@aYFHU|y!%<$+u zch4-%hTrTf{a-fGCDp~{QPj7DpBxlzk)OsgQ*)B;$E3?Wf5X8>)s1nS;`c^?kdF^I z^Dz6EFYyXHNl?FV=kK7ly)r-xLsH~r0(aQc1Xat;APZmXTyh(_x3RLSLi|@#kORdb z^6FjA_=r_<-TWCWva?dMQ*DP+cGzCD-bxVH{UDBm6luCqhJp`k;|{o!cEFl8q6>^d z`ltCfGm5LnfAt9KXv^ZK+C_r%=5bIq>0e8Q>)=ujQv4Gh zRb|iP({vY(8OdEv)SVV-8HI49%a8_CwK3j<#*<^E`Fj=tA&i?l_(e1@1MSl~cPs#6 zK%KwH1P%m>8I3>!gFvm2j-3=!rm;`Aa5g^tUo+K9RIu zMhi1(83QiVwXg8$&W=Tl*O^;C)lD0k2%19L31fi+iuGKSDU(mG&*zJUB$~ka#LNyl zJL9f;EHV|w5v0k-Yx=MRFSH6UP}Ab@qQu1qaK;)fvovql#N4ihX`w(jgV9D?tJxJA z-^IsQpOWXS6o0U4G;XR4XDj+TGYq_pO^co|&{fwD>0=s_K~$n5yra90)G*$nu+N=W;9PC`oT2GmRi2E2c03e zaTTc93WmqLiyA|@2XR=o)(zP%EzfdJ7DkFXiM1@H?|(Toa0N*$fWE~mJW?Qq)SXjL zR*dik)FE?2Qo|Iy=xE8e25)pGo{ZGICHs=$EpSfVES{@xIR*PfT*5^167!|~*C=I)WxZ_==JmIfPk*t4$YlxnRxja=RbgceS?=a*Kxu#= zx}3?BNWzkQ4pLC`7+*-3OkGB^j$N7CVH06!K{GaObmsSTpKM6J^v!!!Y20?@-C|(t zMXTK_x*m`hHz=)V+K6%d8OI%wLaQuqN6t#AsrX}CVD!>+LJiAj3^!)Eh~3VM9$uDq z!hb%HoiewOAy8Li9Eq<01;voJ+VR20Is4KS&dde14VjJ)pGtvF2w+o@pg4Yn9{dSh7agP))OEAnt7RF^J%5{0?i8gEFj?T$dTo+G%7B$)_` zkW~L5qcgZxQ9ktwmYH^c|@jK|ESWkAHU* zFM(|PzN$ypJ?|6C__(i=#%6n)PwF|qOVpJ^l?Vzbxd~v>L~7v|7}HxHUv-${cE_k~ zu&adVb|)?;L+=~Q_B1|R;kL901pQp81}ohXc}uW|Hfef3?l5qRt{?Obx--Nv zMZy)RZ0aZpf9@sn9?qsyTo(Zuw}11g9iGdETSHUAgM(RAVSrUIV&))v9{MJG`h*DW z9n}~pL;}*muuR*xs4Qs*l(`1`3(M^ZkLr9Ri_p9t#LNlb{^)(K*4tyc6C(Fyo~GqCR@w2oHHY~yv>NB|Cx7dahM8A= zSywM(nYI03jyjvenladyQdaw1T08D+5gH~PBfPQAJz1{u zuV-T`_5g2@uwYW+e4Sdc?V=737f{=`Y;R8XHo1Yo1Rx~7}WuZ?12K{>PdzkeCN`%qb1m{4oWQ}o=z*}Cu!w+;^I$~Z1<;UlQp^D^jz zbbj{)w@yxdUlpH8(^SZ@YC(Efgr-E^Z833P{E!bKmmNZ+@#kPE14!oB7vX7Sn#6}L z5+R*`SvAM|fy;td8k6j|I4}MX<;oqIw4@Yozt|%qfx(8zec-2l$bV;!r&*;uZ;lv_ zG3h!EtI;>1Rtrl-?!4>_>%Uaw==A{eS6Q12ES>-_L>lLKQ3E5f5Ty8onqo^C@VR6w zD1^d25RDuqG#vjD$@7Dmpyg!kRsYR*qe>D}qO}7+J|2(T&Uws8ltz<(b~p?}8S}qE zCQlPhSr5{|wVEZJ#easaNoWB+lmO&yIPab>h8xaET54%Tn zV?%n9Z0Sb5I~=C+8DgFPxCk;k4IqJPcpyNmdYjaBj%xmV_E zyRp1sdG{s+jdeDIxc{E#UnO+d&B(wt^i zY{u2sQjZ31+(%9Sji(i)V7O3qrA0kWO2k>Jp2w|}|YGE?zqkbBFxke)5k*L+l6 zk1kHMtQ9^Fb!Eatm}WNeo{PTwgBiu2_JEItuE}Ot7w5O<%Z(B|kzF)T7$Y<@#_*^H zQMYGio{$Jt8V>_~|4Rh+3%ot`_j(65#K3O}OWcsz1Bb%U0SJ2MVaPMzvhGrsd7CIE z8_w|vWPc(1?o3fIN*x5T2I%mVWS~!?Ul@-dS#_WOC=bM*bp7mBm6=E8L<}Gt>|)dv z;5eA9_`tlYL(a^`BLtyT9#fFNNfu>84k!I34gm-TG1-acI}?I8UK>g^V`k*dUCOk! za#a`A1Fv*GfvYuZJs>3Yapf_+X(Y6r&vs#x-hT;QemhvNl2)5^I8%@CN#RjSZ=EXf zUQ4P#DmoBvEd}) zrGL;GI-v8R-Y-ki9tc$JHjWp_cZh>~Hz;nQR*3)HqBmDga^E(T(U}o%^OaY?7+XPg z6RbROplW4prq(mg*)TeZoqw;`y@~tSCY|6^oO6=3*+UGIjIt&!`jo)m5UMaQvEBS_ zkO4Kwb(erWvMagEPh32nj+KwBR>wE;G=Dq`KZ0;%krW~IBSWk#ZvKcZiir!}AZunAKlcl#DHkA++2-XHPRN5L$|E|rrI9@2~H{Z-S!16+(J!!+kH6@Ld< z{hfOoAFC6)GIXBs2{J)vTPj|4Wd0YKH_IbBFEmPNSFm+gjM+zqZUg64HprRaLqdd|6L+kM zcv(1sV>WOVe=FVG7OS1v-ul+~mmGUnD1CF4k}wOFVd2-FgCLmM^Q)rPy;^Vq;?uCa z66gSN33<#c?Bn)WIZMF>aDRIwO4zH^Zmx~LUJibRB>Bt{ZVsbKRGtZ#%@;zD8W5wB z>nA~+2s}nq2N|%UZ3FQBqN8FfZf8wf^t|GDtjiWhTTAvH!-gtnFV_8l2B&iew)kG& z_J(*NtGuH}xUoA!yuzYbWPEA+sX5M3MM;?@gRj zTTX_{=C4=|zu}2GwGQ9NOX+0Cbj^NIYCTSbB4yI$7O$N{Nu$rI92u57zT{mZI#839 zQAjcTU~ZrU;sh-G*?$aBWm$qDc{b8uGO>IBhRw5)Fq64PaBzQJx#bvcT-to-u9{Iu z;||VK5(*!va$goKrC)pMuf8}$>k0&ZMH=ad^`6}JDxxy5299&ToIkf$lA-MYmr8sl zyMFezY-^}vl5DYPhJR9x#aH~iaoEVSD7}Mf z@^y`X49Y#`;4 z$AXhu|BZ0sMcdb(y~Q-dPlRbsX8IylVb&}6oQ1oiY3AYKmr2e;T8?T7r@0a;{}iG_ zT=^D{>-CslIe(Q!H%VHKUq8WjZmCle*ovjYNvsN%@DaLHC($RDeh3$OJZuY3Ch5s; zAOe%o;Z_G|cDiv9Ul8Ro;6B!5lKlIciX=h%-8k6ev#^? zl4#p>sIKTG^c6nr7H+VG5*iD@#Y2XsHDk{CP^w~e$)t?LgPEvw4=ia;Nj67yqF&@K&>PoQhM4h8} zEBNvmRluO->pd$iwl#gQb;ii$O%Gn3J|&L7z@4{~B9JgYS6}qHcvVq%i)%0CTvp3c5g&Kg?{x+-HKzCzr#@=hfPZ-u|0=M&5cD ziR>r5ap=60vzm5_9<1O58NGc%=6bD1p6%q-RevN|ejCmnQkmjl649}_1VMn2`FCTw zivYbvR-_{D6${XZ)n?gelG2mS)8)>(Wk#+;`-nD)Xa0f}-C9}fRgHR#kbQ9N$^YQa zcS)FRV)Wak8gfA=EaI{Pj`Fuko$P7=v_v#mD{`-+|0$zlg3cJ$2Q1XWUxJNwJ-D?_ z?SIPf3>~V-EMa1_r~PKalodmCaP_5>1IyMoO{} zm!2|TSRy*_lQ;$GZl7DrIS=mIBoamO!xvOOdSVCY!5B`zP5wqx0oTY=6=?&dxqo4t zWTEvaJcr+Sg?;>-wFVC4q%E|jQsGE|!U!T@*7My%l`)!#lPoNfq|Qd)bS#E)^GvA+0=oJKwFuUDJx{GQaX`n*^VX& zI&b2OU`!{WQ&8ou&LokxE{yPjm4AR*xX1J}nkx204@aVh)6Upl@}A@Z&L$@}F2W|p z3fY8BSBVUdd*aDDp}|}1I1a~nX_W%&mabpQbMnMa7|q%zBc6HTwBcRo4q@JF#BT&Q z0+ScMh`BAt_)I|tQVt}ws%AG>E1P9tpBImjai*ye!{+LaNsm8QGRdv>_pPNJ_C_Z%EGojtuj1F@>#mgd zV4s*%5;ToG&0xVTG1P*L^yU+v68d#LWFOS!<4;^>1Y}|D$&s1D;$;c$Z@T{9db6O+ z$DL~tdTf<1`(ZR?&6css{ks~g1^J(iGh09V%c`SsxYWJs56}hIWq_%C*cLST1LuAZ6j0@hSV)iki?$)VBQLp8sy z-1^2Hvx6nC#M?qh=B+2NKbp@x>!WS{r2Y(LXDOa8$ITuz`hP)WIIh%%kV^kDIFoW4 zK=I#L;DnGcen#0MxJZ>Y#@w{Y!lB38eQHad(fA5*51Ytd>z3|tp5FP6c|afvWrrlE zY3-1e&Sk=^g?NeEGY@stV?~8sK#35mNr#&EM=-Kv3B(*4uWf2>=Q0@3}@egfQ}&0;w82N zGsALAA?B42*wL?NpzH^%+97r+Poj0SWRZT7G=I_uxql~GT+P+G$19X`eX#LL7747n zbBP0gSH!^-?l_Uri*c;gEFjM$r2$wtyCF_6(*DUfstn~>S)dE z1>~f9E`LT#;ni*&kQq73X?EV zgf&oi$JHMMT1E%M91NCEXv_vUT(l!HiOc7Pm2ZbY>-+v+-;pi*O|&BqR;Ab^{5z!R zehspJeGuvuMwm~&rm5#=Q%OUyGRa1V$ZdCm&3~E0!1U#O0kRsLUmh;0hl6&H6?=*SR%MwQH!$5SdFU%AJ1rc=27%RiHEJ+O6;%Psce){^6l%+JLcfl zFdh|Z2Fvz}8GW>yIe$gVoB%-a+9HW*9O>bpT%dKJT?`*6D}sQ)RBjk#y$1UOT{Vuf zx_=25DuCOJ?qmOz)sMuANvznkS+{IO2dAaJ0nPVmf{e&FJw4c z6S-KH`wzd^M_mAr7mrkoCeIUIDmEeQAt3`6Hju<`Dv^!vT@20S=;gsVDl4NW1c;Md zjX`elOw!987Z`XpMFy=KtLVgy9yJ_bD6Uvd=e)d00u?s-T83%UttXi)o|fY`fPV)2 z*ckb|YC|#BMZGyJNd$e?u2es|J#s`_hLIyTh+XpoR@I%=ReQC69+t)O{CJK=`W!Ed zHPVo)DXv0rF%&_g1NlGAs%uj(KvU;>LfMS5H0qK|Dh&*!UM7ms8mEDiHg9jrUYaub z=VnF>TFHUjZ6Id!Z^t5CH|t-Vrhn-Z#?#nXV!U$Q1;Rlrso4^cwf0icBcoX_IgM!k z$8O=79J?cd4-im`4*>K`Ee@Evp^FCS9+Itay!gdeY!5a;J^DU!_EPLjqt9ZBtBW= z{@R&agPXi^TGna{6Ve)+N8`D3W;6OW6;&s>RT9r4NGC{Dhq#Pe&1e3C<@k>oR#oa2 zSls=7mA*Hk+`G zvIkp3n4K-mre!nF&nIrO;x0gj(hA{H7(5-mQ|AR>aP1RNV8TzFqqv^ejdA@#&k9Z- zd3Gp)Y07m3-4y2o?DuRd76uuWfrgS?0om`Il?zOn-HUVO?aBk%O31d!!7idi?c4x3#|`gQDGggF&>{AiDhJB6ep}#KCliE|*^0pKl0A z%LhEiZkC#x{<3ss4}YUz*1%f&ypN6YW>b2t+GZ6WAyRmaGMtl?jw&tXX>0sala@m~ zBB_&6gQ2U1wtWe0uC}yPb=IUHe96u8U9O!yg&|t%Y6s~k`oaH2Zu=T9%(^3Li; z&lw6t$8FW0C~s#&H>paN{%M@1Q6A+{(gahq9gf|(7bCa1!Inq`S)i8ssU%Yz?t{`d z9xzCYylgsYN`H^NzH&)fZmg?I>Kvrpc5XjzGpVqIYZ6EWc?U@JY~l`c(}&jZH=Tu&V`Iqu_$3v2rXj@hb^~V?7_Ta zf%pWRbL9BO@@y}i3zKlL;IKZMPJg8tpl0@|mB0wGrps*n18{Nv7?9R< zsc)^Ee1CT`*jI`zs~A=I;~i#a!et%tKs0rb#qn~R5FR%}g2`PuGQfIhZe7Ga6ngw; zEl|ez>_ELd-~Jv2HamA^@T2;G2l~QxRLg6C;a~#VfnSx6lhb<_@zse~%ZFUUFPyf|zIE5CXX8 z8h;ypwRrBT@U;okS@@qH=HNg|jC@ZblcVCsF3B(hVCCt9%%JIS#SukY1qG9I7Ki8T zWzofk!EVzBiU$@lnT*{on+De4tGUMVUf4GU7fcUYERVM+={dBMog`;DT><=uK=#LI)_oD@4u7MZ z_S)+{cP33a4UA0$$%itX+aFTv{vw9sJ0kD@0pR*G?3 zGL=-R_zKB59pf2;t#`h~w{RaTOMmyYhWEQWK~cR!Z;VKY7L7(AgQY4EbQgNQcC;Z)3Q7Cf~y^4d{cECCPpVZZb1;Q3*w zPjU!yX4W%H6d3i_krJFwVaA@AK6<9N3qZejrRyL4qb$m5o_EDQ#dwwu?|)BW)RoY| znQ$py&vn$+!??YJ^M@yUh~Gyvl)6N}ZC`OA81oJcC|F0GD$dEcTtZ0R1uhQ3x5M8U z3<4YHa~Sfa4MO+5Dbh-7Q_gfBG@g*y<4l}Wtrrlbkk(VH7;XIq zOu;zmWLQpZGazR zpbmRjqZ*C1Zt8wVJiF$ovPq&G_H<)7QK#S|d`dVe75O#4^RrTSjent@l*0dEw?@qI z8;x~mK6HHl2y0L9=5MIH(r&BVgcO{(x3D^6+^GDCxJ72srRno#8-6&z-?UUf>mnK> z{Vj<{Y~z>jpTB{qn=h1fWA`2T;{88nGL_@}O{PD5wA!j!<54JvmStaL)rjmSXmw}! z>fTMG5>xiaxX7jN3V(l&iTGj~eqMw;tnh|6JK2Ulf^3r^#f|T!ziq~JzMX|C64nwn z(6n2z%M_)CyjuhbY|iFIi9^qhc74YR7cecTg4a|<3+|qJ4nKP5BXZ`HMUM3^5rIXm z0qn|O=YpV@cwMaKVG5TKi>qM>m~r1@$VCDnQpN0m?aqM>5`WyH6sK!yl>7^j&poz8 z#8Pib>ahY<|2FarHz3zf)?&jWdV&~YD7`Lh;S|b5gmSXwp-aMzI4?OnZbV$6ysSxT zP=UqqUoRbm9X3l{6^Ng_Z~4$(HWwqm1zMA&B=c$FHC0$H?&QqA9Tbel8vQ!!%V$vz zQ(<$!BA|~;tAA#iCW`5v;DIB(G(T>rEX-zgB8ib+At`(3u(h$7&6T!3`brDyB1;7j zQ((j6z=ozEkuVktF_OFzMx6W`F_IlK8X|OWRO0DzXV$O=rf5cUH_FjS@B8k$2}@_XY!auB~j` z#hVM&j(?_(elJl`J2Cn1I~O&8{Ufr<2qmu)^?tf$7ugY$@VaQ@s1R-Or1HGZ zK0THN>rugU^j=-5ys_iBeIg@~DlD<uu|0zDy7&+X;KWc@foUu{RE^jwzty%-H_ePTGg{3?SE*M)&*(oA|mj zW{$$gd5Uc?K{vL><@jl7O+-2F4I*b{Y5A6~5_a&r_O2Ukw>lW^v8uONMY9ZkW!o&* z<9|Y2{Zlv_7Z=HK%Cc9lZ!6Ae` z5}Ie$72ZHD7oH(hCLtumaCJ}M$|i{y%YYfprqh}2*!eWG$z@s~0WYQD^RSNd}@59OF#xXrmEA&gV(^Dx}KTK<$ezGcSs|(Bcc6tFrQU;y{WCqjQTpNUfXax!QSmk1Up7u z&MA6eBF~W;HlkuH8wnnv5Pa#X*MC&i;rSrD4~vF^)D`hkJ+HSz#2v9hu$NG99HMCD z<{@CzR3Ys?S3o=k@2?m$0x*ife~kRM(BWHg~bWV$<5UO9vX7IxVs zIXE>nmvPMl6$CIeH8_*O4<~rKYa0 zpehGokWP=cM9wx3-$zAs)Jqs`fUZY`|Hy`d0o)IFGmGr33jvpcR%Q_ zDSxlk($T@r>wk~@JIg-@vg>LnE9xmR|91=iDa$xmI9h@otO1&?e+>mXTmCokPgxxZ z{`U&~N6dd#3c!E)f3XVC)fwywFyvtS*N$-f>-i5d{y&zaq@$+~E2jWIfR&qz1Hj2G z$N>-#;Pm@{>w-!mh2O9a0Aal{}vn_vx-!0U@1Q6Qc#AGa0r128T zLkUf#wSVo#lSaW~L!`+CoDQ+Qg(}=-)U|8I+G?;m(J}qRj2#z6(+B|-+}D}xO*HWKG)Yi#Rz5Knto~04 z*Oug+tJzMM@oEpyZXm3yKiBnDIoHvVDZd@_X|4oyf|_J2PqM73~8&$;o>02^!kt3MNR?pRsJECCc z%R&hP!jqB?5!uW3(O&l#Dy+gdv`a(Lzw*6@GMn#glS=1DyIZW~WD zdP+uJiNkZq9aUeCjZa4HdW3!ho2o4kPTr7xb3a)}98A2Xhp?>3{Jg;X1&R|vldM*@ z?0J8=iNk4u-~Q6|01b){tuBZ zdW?ShRA6RGXR|fGQKlVz|F(=5quU-#{c zn_m!wU}+~z`9W@m>3(7LwWv$5TBKn!xEsH4W2Ep*Uxh0GC8B-mO6{RWqf*BL&-Zi% zKpL=xJH|2MWX51~22?|oZrb`mMzwNMaS`K_`o0#-d*7vy7sziaEO*8!*Nhq?IWvFQ za;{tIcq^ggi__vJPpqt4Y7^5FAu*VZqO!ybV9b-yZPvWN?s*8%fp?{yr9Yk6Nm1Vx zP5(i<2V~)It;zdpZ+jQT8}@r^K$F!xNbFA$PKD6Y9c;1Whf1>=20K(~hj3351c6o4 z>23?A+HOo73qC+(L2T7xyNX>Z0M>syF}e#u@gRQ$Yw|3Y4V_YkQ7$-Ceimqf$$rmG z<9scPZ^9$jF+QqZgi)wef#?uc%GLdP(5*A}DT`a1`wuiIou^EOjKZkZmWpfbD-N^O zNft6t$d6}sd)F%fv%B2i>XqhGzZX+bo)i>9bHm~J9%iST%0e*=tfdDdo6~>sp60T6 zghAg+Jn;4xxl2g|Cy7{PK`9HezHKX0jDvf5_dNU>(8(#Z3F!W^r=Y>}m=2H`k9AQcC&ycz(ePNOXPxPXYm{}iRWHPA^`8`(Gikk29@KaW{ zXvS9iD7(h3jefSyqG=o9Ezf_QIW{+-;!h9wiMDlS@-~1PszmPcKkLk`CBJ1XIqskF zXaa}J!+x{CoOTNR$@Jx7-5{juMqwJh5KYoWU&raBiU_Nwz(CAEO^@tSUmIS&BDvv{ zF{z~NVf(4z^0qPddN2=-l?lim$;#9k!PJE86w8Gz6Wxko+eXsG6E1)0(Z$}GVwoCX z((@xirk`~AtP@(i8}uQdiUgL(ug(gisO7KZgsMbkP}yi(SE5EYAz!uZ$Y3--!yrk=rVxnZSUS!1dYunxFuPI5L-5vbMwGgXdlG2p523*c>t~8wj=!K< z4v)2eYtnydW{d12rS?jBr$&U&>Fd_6=0g%WD`u<~OirPQ9cO=%R;aybfGr zEqGeKBF8_-$1{I8n`t*}CKQNc>cUFU<5y$wLyJD%v6)!NB?ehvpUvH$WRqSwu{E8(pLo{r9$+sZ$Pstr2T%Wx1zb(dJ&IU9SZ?o}W{BAVr0~+}06@#^= ztb4-xD8O&yOEE_F^La&2mxq=mUD|y08=t#MFh7tL)PaANk2fp(GAQCC8Unm2A1=ZL zXqXW48JZUVL^~1@)^KKijBoYf?izX5t0kMc$0evtRHG7)6=(d}iui*Bmj89!snjsg zgz{v3-zA7-nr3D^CS;+8GwKe5O6D8ngYgJOr$t)M{HtVVWu5vB_oIu(bm8_orLM8l z^Ql8zH7S1tF&DKiDy7Kibr?5_em79`V<5OsH zwVc&b22Us)i(A~hZ=i)V)OGPJX4gj-?Rc@VJ5LV4hc~pdyjj~OdpAKltah_2)c*ET zdU17k4Cs>&dTrlzjo(-9%joubVjnLsIsno1t5bhcA1It<1f$y$HU-Jlo@!*ij!7X4 zRtcjC;jh^6rD_2(@Tzc8T`q6!_0%$#G-X+ZBDUg6GKOzG>Yh+m*X$~YnIvOSykV{% zl>&+4y0meUR;i~T2itd_Bv0p6o8$>Xs40S|7ZQKYDCM%7=NBDKk-I#6GyPDLNPuU< zhVFkV+%#Qy1qkG)f>A-dN1Kv6p4$+G@5EyX1i3`mHfdqdQ7Fp!r0o z#pIRAPoGa29HyYEH>)W#Ou+6#4q)9A5wE)Bh>_;MpG013g-?KX_@#7ekBD*P^T`hO zWfOO5;ym!u0%jj&!)r#EUse*A#QG1e+%11|weJVb1gG7ig|qr>y1N5($Zw<_`F{Z)lWnEeSDr=qe}~EfJ@eMV~Pl$BXK;V;Da47ivy)bzmN( zboUrs3QLpw~WM^r@n`|9o*%NUrBQrM6{q{y!DRygxJ+C)4B=XOxVNWoT@dVPQ2 zqYGuV2Lg(KfT=CHcKoa9 z7u()JNc568mKX2h)c8W_x(vUv<*nQWRiS46LhuCLHd7xD_wfQQ?(YtjL4|gtACpwq z(h3?j2IU^h^|!0UFDY)^oZD{$Ws-k?$Zx*@1S6nhInE!6qa<(|Tnc@)l1Lab6*OBI z5^yq0j-}%mhMhMaChv)#OJQ3d@6JezxPy8l-}B zhh3{D5yCKWN0H8|+lujJ8{&UP$M6_IUYFlqD@wYRy5?9gLlR6@;B_FX$8`GN>lxYA z0@J?X{z?&SU5`&!>GmGD%wcbf?JpYDzpR&eV@wUUlw2vMa?e&36(zF5yVY@8hw*|> z2AIoH1%VVcw>-%e6PJHl!^C`PsJB9}c-q~yAF!Qv_d_(>D77jz%3puFAm#4*{kg(F zwzi2I7hk-|#KwWwi>a9sq+1M~+ic1kufvH<`=wmxC z9U9q5tdA|)FySw7pSXVr1DE(5mEtHD0i$oV!qnCY#$F}e7e0ucA0uXTkRM|r%zd)b zNuPX5=nydC1xEG6`$9MSyy(sxSw3{HZ8ItjDoPia1-ildOunyByp5g5$gg8mid)2= zxZB91w}~5urwdDAh?joEM|Em5<^bUiu;@(h-L2Il6zIYjTnT?M$ZnVVcUC-Zz4kw` zR_#7{%|bS%TY$Y37BJJg#%}VT++1k)NSgHCuG6($h5U1*nyc(Ho zt58Qvc-!T)+_cis=T-F@HYlT9qe=BXqWcPb_x(1K!KT5BR)m?GH~DJe6KoXfxa`4= z73bkTece4=oaBF;E9){vGbxU4(X&>&fxZfJt4^Q5x?Wm^15s$zf;y%hK9sC2@mO1d z@C%B%+(4r!Hb!#&Fxny=A{Z^F@*K9uu3l{E{ByvSG<-y?Z_5`^CwlcvRe7i+JgS_? zg85~5R{gU@IT23T!mQ-X@rt+l2rZjQZ78AI0l@K1=AD0z*_|Awu4RQ7*6t8NiftF? z!D}i>w3~89wdRm6DF+r`=t3jd(=>e0jl#W%?3A8gqc~k&u*PA4PVT z_j=Me+yYjPfco{-f=Dv|71+>jyz6K#uC25g#Zk8hNzvQgtFEL{x%I*A(|}L)HO*cz zH{fDO%aebM@4!8Z&GufLWNB&|m!r2hGOeCNjyO%=9+$R`3Yn#u7^ZmH#qLXe<43noduEhmRersWt8(FlX zSr|nqhe{e56@hm=wj6qVyrbmlo^jvW9FBidOfgIB3H2w@A-%E&zw%G=I~ow@z>8%- z{eiQ#G+=^H%~jctw32lX&fpN4SrL4ZJ`GXb9(R$rwgSzZscce)ST5yPZJ_yv|A5-O z9iS&{nx2ID21RVG8fLbwXdk5WRCLF&goG`c-gb5G@Vlm_*Ethf-fuv=pQ$Ef;>dr8 z%TjKJy|dFvt$lEy%O!OjZfEqqPO4i{)3fhh)?k|}L8JLFEy+J5XjzRy5geiI5d0;D zzZz|lPToF+8FuY!EpL+m1_JCA4HCb*9kO^HT8}AWMu82#PS*@I`5`{UGjbC06nCNH zTJPR98hla>E6Lz2Ush5O3DqG##}j`wcq3ZYy(Bj)S{T7BTT=FLlkd5d@|61A^&lSP zY+oXz;Z9|oKBsomJRrp4UY*!6}tiZ^XhbOJ7M!|0-AFDI8}LXmYIn>#Q6`@ zfh}PaIwNT?;p-f7DPoex-N=(g`g$)+)hU(HRWZGPOFrqX!9$prWY?@R`dS9v^zky~ zdI~h9zRY|7F9u~Mcb%MR$gF=GnWf#nbLniOz|z!E1&;JGprPDAXsu0#0o?#+x9n0g z10=LK_Y%ic2pSM+u3~Wi`~8to1wWcl2d5qfag#PCH5KAzym~BJAPl4x%Oi~W0gJse z+*b@am~Jz|MC$&0Ohe^cUxre2(d6mH_kg*PI@2s%RQ7M_Da$sgRLc>~AELov=#e9odz15(c$-%0!6m$STwjHBq}>`h6iz#}WOP^IOKWFLK@F$_&}agTz+Nhes5h1!)TQ%8-}~D}8|xa%{YDird1*fZ2Bs z;cub`ReU=5mefyTRw;iIiq_rl(&)n%_W2pDJSWFS>Vd=#4g4OqD|T+E0mjb463+6; zA+?ZcSc+qnZlb)$KAxXK!VqWZdS5O8OHE4>+hN9tx=T2nBzfsd(7`UL}TN!P!@*y(A~KUqCuTkn|j1MU7w^<@k^D6l*qZ} z)sEA3dFG^{0~deyBkWYSX+ikZ1qzWf0dH95cV-()kqE?-uq+*Zy3E}jw?|gru)I() ze5+a!?1;^sm0C&?ef8T5_W?tx(OhW-(n`;J{a2Z+WKk=weVSNvV+qoTmwTM+b=Jh3 z&?H-S$BlvNEQ=%h!d^c)N{jq)h1#4{7XC`NS*(Paz>Fxn{Y?sYTa}dmBCLyDwsnA^ zGM~)0xxVb} z3)kYbr0NiyxzCRMgl!^AULSB}(IY8vmZu#I4Ay`7{&|uOTa#4mtS!NEuIN{{NN)tg zPu=p|Z7L)ZIj)3PykUOt61&+w=QJsck_>~-nzbC6qxD|>WS>Zqt5~G3E$l4#h7F-^?tTC2F%DDg)Q($B32%J)3_pp1w=h1}Ey5IdTa*_7i53A$0TyhEE3a z2oj6sq+CMS)0PARFkgFYt%pT^Sn1Fu(Jc>Yh=G102qrcvGi7MUSA~5B1z+&iH{szc zt-82rWXpZcSn`R0xT>L#_Y^JW5^>1NH`Se0eJ@JJav5Auc9oIjyE$Gz5rC*dzfXS< zj7sBfeML;&q)`1bS`{~*$sQZi^7jWYiqCEp?v8dr&0|f&!R#sJL}5(>+HO=Wxhd<~ z$-|7LrqeHxiC%Kx-9>xq%G=gL(_%c?8Dh7o<$#?Ka*e3vlQtB9kc%`Pt)q$!M)A~# zmgXM*z}%>QM7GVF&BDT-9*L83U9W#R2V;^Er94r1m+j=Q@Y4Co+63bec};1^Hri$) zI7#uBLWgEXP%Bo;i#mS zvS6>=w5Si1DQCw$%pdhT$zYP** z;LTPprnjCXK6YozEreI(oCFj*ieaQ>YKn#S+C?W~6`Z@ACc-cD>l2ns!4Nq#LCmbt z&QyHLVc$Mg^U70Q6rBy|9yHdC>2x-E1%m$H2&pkrny(KP!=~F=nTmhZCBC50>6Jf$ zkAbG<3nsrmViuuSt&pSF|ZdWG<`d_+ff zJ2?iOla!Pwk8xbcSZ8r}49tFy{@|hoU2ylZ966H>*)dKbOv}-q~m4mX@#J}XYJO^Aq z(ls~`F9t$<1T=r z+>EO%G5lFNnmcnb)GdQmE@u5t9?5ix=~e_ptdf!fwzF>9PEL-w-p*8i-n!X8lARSA zUKIPYuD{_B4jOD1WV?0*tVuxj%>rtMdTR#lU7_TL%TWko@oRQZ&`}Vcu$++N zKNgj)C=53d430y|CTTEzU&ejx90Xxeq)-!1KL(;a7*|O zY<3jKE2AXX3*aL-;zhTAqbYl~yiN6{<0A~cnwpeH*E@lOrYFi_-CNTA>T^(Ck`&pMo}pd7cF8-2Sh( zh0AD*W23T`O+R^ ziw8MGgCvgQ${Z(%+Ptx?q|0-`wKF~Nwhqt;It|TqXU6V&?6g&{j=SN=#T)U$Xw*15 z7#$vPimgFQ>r*U$8|mFJjoXus?2@@-^49qEt&>~;Ezhl>L9xxMMm=L$BnfxuWPOLY z$T12fd#ib6r&i6yy_`|*_B6N%7sZtv$puMslTxbp)!#Bms!S;IH-{S_Of9cZ5#$gu zA;Lwhu&yV8__@IxZelErBwgvke6-y5_B`a8!BswA!M#p@p^i)3PPV?preGY}(tH5g znZ?af85s;cg_Vui@Y9W$zH5Xj3T=uW?0BO_h75}BY?bt7HZg}A<>&Fw74G`>_jkci z4|Dt}daGBn@eFX?_Zf(1mQXlrNpeP~YwwH+At zt@SAj;tZC)w%-5wQu=(!oiP>0ZWR@Z8Sr5r5Rp9QWf(^lgU6nKT~!2T!IMOC+?^Ok6$wiiE0))C_XIn^Wv^FA+`cMhu@Ed!Uaxh^L#_Q#Gz9CTHqh}giXwsA#VNmlpO~O}I zBfkoN&i4!8pk;4l_!t^9G7E5fTv)i+#iH-)0i%EE*Trw-&kICO52zRb%LSNZcT)+n z{fFxrvne;VdokiUhPFsQL$2s%xpNzfq-Y8qkY}{8=LM+?1_V!d?LM#L-Qhx;AgidC zUamIV=g+9C9Xb!l5(QMv-6Su4>jIh}xZN`)=uvu{^DkIER(o#jUVVOus5{zE-v~pO?yI_?qbt-2^vFl|nh-pVrg%4i--u+-!xDuaF?I&z>cJ z$HcE#b;7rLLGn&ezY|&d)MUP-Cgt45nmH^>4|B$JTS9ppyD>rgP2qIMpo~fry~`;P z)P36hh)L{cym>mihdJ$8ztnXu#!>}EwASRCIeO^Cz! zk38Y)_{v1oJyks=1-{ffLto;3T&00kc@=b_M3BlbuXV67dj{yYlJjN*Kk(sUW;$Ib z8t>5o`2q<2^)iRTr**cu$YZL1`Qx3|-*$<7!Z*#GBe7zS?Aa62lVF;>6-1|ph^Q^~ zxAE}fQt?h3q4^jICJ zgro1vhg*{KLU4`7l2kcWM|xqN?i3yj6glb6WjZXHS%gz8ky2sev@ddh5a!v!{P63; zi5d>`V9G7>;G`Q#b5C%MoXW0JLq&P^T|8h3C2A)rr>?d}Jlq#X^YpJ>CiZbsB9iNhv}jDN2q-*#~k&w1Z#G(LZkJ@NpHcHZxKZ5ZTA?VQwDiL!|Fe&FFtqm! z7mZe5xMoHp!)~PY<3OQXoJ1|ckk}&W9I#=EHB>8N9X-K`972JyTpKA2k>)-uYamUu zp^(%v;Fq zqP4D0%#|buHa`TzDE*-iW<3``>amVxlW(m2x;m41mM+E$ ztW_KM0hEOuzuDW_K=#23n3q~k^eE$|N)PlYbqvyfZFJ-xs*TCIFfXUIaUz>n_ERw3)=GYda1zTmGutv~uT=@I1& zsTQj3weu#cz*Rm`G^oiG&NC+9M8)>-;ZQHSd!oSYn6h#m)wreQGwZ0W&`>;$BrY&X zY^1oW&#WD@&7&O#V!kvH8rnOxUK)v#ej&fe-K+!JHcKt%26|;;Y@Un(5?M{urC!~C z^V|0Q3I?q1=eUB(vd0sHx9RB=zmdcrh;YDlXAGJ@Y6OTK&^Gn@C_EF^61690K1%Ft zR|tvO@t?MdvUxL?ocECaY@UVL>i_2M(PB3bY9snq>~@i8fl!%Jp|Az|Fd>uQVQb-s z<^n%-DaM_P;n2{JjlTDE6jYX(tR>BV!1PD*ic*gstCeCFc`YS~P2qcTbh#--Bluke z8sfBZj)f6()S0xWCOgo8@v@ryN&dUS5i1o<_VLKtN^v`8<1k?)&u z`Gi{`ZqRjEer2$h@0EsHxK`Id29*R6F%BW@Q2vV~QkC3&J3R(|eSBP%#T}MiuBlI0 z7Q4LL8N3)$7a+X{F5jfDL0=k9J z7vh4kqBBm~4U;Ww+AA)l@}_-%b6Eo>7`u7=p>uZz6xPA{*q*$jf5^pPLb>&fg=0x0R9%+5Ni-{ z2OPjZKVKkv`>Zvt6K<>HeF`L0oJ)>&A2&J}sCA(@e*!UP!j;m#cnaiy4K=S**9z6} ztG4c(`lZV9vh8D;$uh9dDLW+{zasZ5dQ9Zy@%6`~`%2c_$D6R&vdE(f-f+oou)p>8 ziyK|ZjjdYF$bccD3Z^0q!6AE$h_0&`j8kY?3VsW$yuo=f6d}Z;e|{a!EDvVPnhLEq zPO}#b&}Bz43e^#%`}o-^YZAvir_jeYw3)d?e&2jvAR!Q8}Z?h{PT2T~)mt z&6wzz=oz^ID&i`dOpIJ?07iNi7&0;uXEP&LD+hZ~BUdwSfQFeVK*h`vz{Ct-W@Kc7 zAp?jwIC?o-Sy;LPC{2H;{;dS4+Zvf#*;zRQ)E#Uc+^tM30le<+?t<{Ph0> zshF7oTrJH2=2o_501*X6Eh%{k0HuVy8bHF#-ptv^7NF>6Y-?o#khL-~vv)D00+>5E z18o1Z0GK$~n_B$~lMDU70oc2nIlKM?%-q?*4j?C{DkQETuL^$<6Jbyl0T|hv0%Rrs z3AcB3;r_?l%*4g>U%R6Pxc*nNHTth){9oz6R%g%uNc1pFOaN0W6IXz-nT3@-48y;8 zld?B=0I>f@ZR+Ouzovfxx%`6$txrkeNnwctEx&FhxxsmNZto>WBVfLR={VUObqW?(+_@~6C4)(TQ|C8{aef>Kf zgNBrnxP~Ile>>veW-)sc2U9D13xJC2Kja!YoBmhvZ?k`*k=1|N>3^a8Z+iil{@+^8 z$ko}(6QILL|F3>w{MYxtlHULG5*Bvw^r2&B<^s^MurLFdIM~?$TuiKf{|By#o3pc- zz3aa#@XucUcm40qGBfiuGlAJybui%xwN7sfuk;ryp05I@nV&UOqgiDFUYqH=(LuHv zu{1R}yuyFESH&stfWw~)GUnU6+?Bd-B{qsTgFBv@{zVk2w~F&xN>XLvU$_0PRQT2y zsecWoj%{Zm4|WrE=bE{>5v)i(&6=HeUMKBT&W9|)^vkfKYY-f1Ct-c*(O!Z|j{+r2 z`y0+|pQaXR-ZHG{+F0QA?*>RjLC7B54H>q9Wl?`+kmF&5)&m=52iNB19Qqk?t!FJ3gt?}U10#!kb}DZqW~kVP^!%U%csgNV z_sZ$;GlIv!i*_yv&3Y}V5(Im9u=q|HYpB6e*I1zXb4Efk+SMIJ8ZIVokGfi1BZ$)aJ`IdjN zDP6P72409{r)cNLuW4_5&ORY6~l!61K891R)n z5z5|I#da@wqC}5?1+q@`m(bi@=)-LEDLEE`uYpDR6UD%;W=J`CnI_{x)rmhk!LW-0 zB)1@FOfYicw3W}>zQp=7a>QOKN$P*N&WV|qktO*~9&$FBs}CR2YX59>8gm8b6}>uC z-}-<(wb)Gp6~m*UHS=)#lstd8SK!&pUpnJr1Z_6dY5|;>yY}CpgOE39Ee_c>L|FT> zpCJf=_$z=?dDeReIZF=~f^G*pDj z_0d2$@gAAV*J4GG5rP`5RI{Q6cVYiLyaIJjT+;dp!WmU$?JM4=YZr> z#2e8>BG|&E)d$LGZPEk)Rl69B%aF%HY9E+w)V3!*k!8;Pj{jC8D*b;+wV*Knkv-U_ zp6C#_LBu-0HB)E1(@jqAbWSRa*u|;z^BV?tMN{J2-Vq$C3dUTQug2LMLGLaFK@jtq z^h>ek^*(4M{&Vi5Eme!9jdof&Fkwr>aL+F;f3Dm$bYxF9_h3fe7o}ILwJNrrZ2qwD4HA7QIVS3jlL!SloZbf>U15n8ZLp*=}qPlhDEDDz0%OBNaD_622c4=9?!lo|9dsY?Mh7avRWUPHJ-}|s9 z+2A{Z-wTqmGnj^E2mYcX3`LoWf&4i70eACYX<-3ZgYb28p2p@#T#gtH7+r_$g(=vnReH&Z{ zs3{Ym7xRAy=Vv9l%u&Vj-G|E2ajiU?BNkn0IkTkgw`xAc{-J?g>r!~|8l~Dgnhlip zBO#R_v2*qr9dNw%CK?)VkzPZN=<_o@*#G){l`Myq`zJw<=E5(`*k`xbjsK7Faw{uo zHvCL$Y!t7OeoNH`%5N2NtT-C=e$XHQ+=MqgG=hHtM{9R&lG#eV_>_Itx5yyqg-L4^ zUY9S)C^kWoEp7n*NBnm!>}@E!zNsB122n|lUtDOFBI_irZAf+t$J`J;r`bzDmKQYY ztlBHcM1KI47TP>LF)m@O%+(G&O8j@8qTv@n!!>Vsi~Euw0$(=10=6 zcsqa6R@CkE>J4$FCqD=JnNhfeY(Q40F#aV#OWCtu$z13r*};N^J$}D-zLok`jL|W6 zg_KjfcxN$i^=qy%Rmh?5JeeHo1P4{H8&MrEY44PQ$epdL!q&>88j+_y z=7(IGH;1r`r3+rEPbhv?Hxx7L^H?DNf4 zSmfyBE@K`oBrZRqwhOgtOT@QDxYHRXPw*fgwVv#Elb#sc6`1Jou4+@?iv1rRp7XFf=A zVh`lL+sFYG&4x;bPZX|~(_%KiFd%?*>!LPhB+jk~ij~6*meAg$( z4OF%M8UjCV9A=Req$tSfWtOZ@PkL^14YfQ&Che?MV|>0Qq*=^PY%hP{J=FQii;bz+ z7v00L8S3X0gb93JioER}6xBRq;y+jX3WTRkH4&@npsrNZWgs||-6iWHpd_@~*ZYJFrQGrQKlmB}o{6z+ zOfHIVtI?m!v6CzuhKcmuMy3s_7LXf>s8_-xur~q2CD(MB0tL4l@9W+ZgPVV zLBC>bv2n+QN`J_{n^@<3)OBX3anD$?&oG@Ux3mz^epT{DXr=jyiW|QDVBanw5~+A36OS~T^B*1{>*`#v zQcsIV-MNS)yLz$P>F)<^Trau&9o{fkQ)aKraIS1a9CR`2gRi;Gwu$f+4!-(We*>{h z0oBKZLS{e$d;O`R7=FNEAKQdmIj8Jg*MEBQSpk1qN*}8S-s(z`Nr_9(Nu_^88yN7X zOow2vk~waKUNgX!v6u<&@MthkSN?WtYN%$cZYzXLEeMqUyxn!Pvf`q=9yx$pUIh{+ z<5m}^X2_oKTVUi4Y@z`q=IAs1{E%}XzH#hO=gj22@P*Bht;dxYuB(s~pRXp3?Pqr9^^WDb^GOktHL^*|XbTF=m8qJS1 zoc}L{2?fcqUF(zGi{k6TPo&oh$D)5hd;X>xGsl6`)FK+VOy#Eok6qdCAeYQCraPS$ z@%^oMT9$^1-oJR_FhGf<0wh-cfB28>@*Gom%ne*#D?%wEN-W>G8q&b8@4szEHnDdN z)G5hlD=O4fS`Hu@4Bxh*GL%=@6z#Y?HyzoMUm08^^$W%}qVN700<|0(*iwInq97E1 z!$1cnU648)j`cjV^yFHzEJc6lh+bk-*9M;IlbVjyJqfc+;3z!b)ymm4uppKQigP8G zXt^ZoCeGl7heEs=SGq{}07Rb0!25fE+%BBok8oh054>Rm&YG((H9rouJH7#b13jFI z#(&2hsF?fIh6@sj1$ZuD({FzyWxm1ax2SYk=h}?EdS2R-W_y@LNPnQ{PO6;gpl#%c z+bX(PJv^h!4}cRozN3yHy}yszP3@VhMLd+I?*-(m7umDGm+G-}c*d#Prx&z8P;tPC zdo`r-#IY>rI3V43S(gC{N|MrpZ*{1S*)>=u?EESN?APT8N$@nmk?DVb&>&b04ar@z z(Ad8lbh6tb8|@S|pKHMM>6BNq&+o`l6J9g$}A}D8&-Azw3%(Bo7=-q7o9Zx%m``<%^EPM1rey%W!}cF<~T4)ox~cXO@Ki z3WNcCX4|L9VIP*zc0hkmk00s%vhS}F$h0am>w72^A#3}XkCxy=c62`LxfLtfiacL1 zDw*T}Dsg=MT(n{fas*p#o9+RRs*e{)c7x`{EBFfz@kOcQ>=uw1_3x`{yw;Z>H6@`J zGIb_o4!~BcD}?NSkhoU%?)+Oh>VJe(`ovNJoIZHljk|IB;c<30#?Ec^`6fmZ zMf1)2!bwXwn*ZW(|8@wMvVkS8mlLHxBp3v#0@FQ%t+awEl-ep`I7GfUEf-o0GXe+u zC=}4Rr;Ht+bXb4i(KifEbld`xRYf|*Kie=4MQL;vWjbwQnwgu-*RcEeWh?H_?`~fL zSSQI|g|A17I$_CSSG3)sfK`!5?vK}`7Dz&I7zSH*DB?Upr*T_~6fazboc%@RFAp1^ zH)y&3aJvv)tGAwpnh6MVKt9=XU+l?9v*=S+shtp?`%Hgscvlhu>UcLXg+yAiDt0X; zc5;)XCJXxjc^#~dq}WtaRZ7J#C;lT#uhPGxO-Te>E+u;CD$GwCve$2IR$@?4PsA<_ z2CrI(vTHExi1T(?s6o6efybDX!s+It_wIX`tuC;2^!)TzRlJn1jpN+HcmuT8>4Nfl z9)O~k=u3q>MU&(RK7GiONZl9zB zQVEQ~S2-_z>DZP8_^wAVAaC#>Vfe_!$xW)tXQ~OAt*CQ~6mcl<*RxbkV@v|gC z>S$|IO1wdYk#9BK6ox25!Rmo#`xY2h+QG%55FGvaJFbtA(ZN_?Qm-~Z_8B|`-ZK%{w1uipf9U_*yhYaqGs(fec68qq5|r{-L~$^mzijpCL?$sWxlw?R(enQ zn0t5TGm@{c@bXqqZm>jcEQM2vcV%Q?MF>{+hgu#^KDi$o4y=*6ap6gp?PVH_3M)X; zO81P_gMa4xhk!^1c;ri>K~h+g?1A}g+FA*nMsS7xIEU`L^rKZVury?%C{jIr6+?eR zSXH%Y?R5Sw8LWSE!r5Z1H^|ipoo}-)7%n#I2)Cl*uD(p^wS$K>_p-@gC5)B&U zX})NmGtro?u#n@Eg0&`N(k41L#ioym1s>_fIlC-6o`$c`Z5SNk7D_b*nL5u@aEB~4 z{oK35%`2rMW^skGs>g(UKW4pqaom50${ExSh6<3kYVWC^Ms1b}zcrSP??tgUrbD1B zl`gP~bG|q-11ac|K8nW;|{!*r7w17EZc^-&qYnG9I$7^$Y}oon4^qAJt;e>;cp4mzqwBv6RrO$-~S7Gv%jnDk@?IW|}2{ct|}MUPlm4vKZm^A>tn z-(2`I1?REJqn-(+7=vNHuW)}uV=>*kcQvJPseluJ!hyk?-RxZHuOa+(9;D-L=dnBx z@V=tZmNjAWm*}_|RIhEXkoK`j67QIHS0RPf;KPWBGJ9o_w9QSYh2<#5RA8tdmLeIk^AO#sz+U?Wy3M~-EJiM8RDb$@?m+rizj(sy?A z#4P7w#3lzvH^NtY{g;QjWzPsI0Tt4R^g+2c)>Ox)Cn0kbpYesg9Hd==L=NBBvUr9A zZUe8Y6f;1nd;y=WHyN>tqKE8IYrT6~29@cR{C?-^k>O>b96h1K`5adGoQVUqN}ESq zWRD?}0fqCFR$n9r^LB=rh=+fmUeCL@u!%c6#KMZ*i&g*J47LUrF&B=>AGb zzqXfRK8}tpr}U3jj@~tUw&}5ry?pKzFE(npq?0dVzu}#Q zM&*F)l$$k5n>r}USrH@>?h+t_hb0ARv0l6_E-rn#q9WK5#94n8S`^y=SVi(ofn zRiYLzl5YZ}t$BRPZ(<4v;*JlO?&Xm%Ed&l!M&%usInpR-SoEWp)%6k|zrSHfqC!$R zk1q}FQQTB;B=~7IQ4l3P6ITy}cC=G$OxMTbcXurQb`XV~Qz_&Q-Q_Z}XbWR16p<)* z1ztbc7_+j)FLZy``dAB_wmExzld$JbNxg+)MxA^3nO$x??th9(?q^XnBO}|GSKHJ)F6=TSIWgvB;iD-XQ z(iZ+iX?^B5^ElaKJjc%^mx}04Ig0MQ!$ju!497*-)y;p@S4C9JG|x#T|KOZtEx#2z zox^nJiLg->UXm?^{Jl1o+XWi%3!Xok>2Xj7lmnAsoG440fI)=UlY8?LT!pC*cS z?vCF~Oc<;BS{VOC9%GQr76_V(#w?w>GB|(@Z_PUtBCWuRcABKU(N@DqF{*n<_(mp; z0YAvyjf&HKmuAS<=Th>KOOA>)i#7V@dGtrzCb_eeI-Z<6l1AUCl z;je%HQY?D@fP3cMHaG$7Q@Nax+vaj;CL%ux8(e^;S({0Hx+@k`%0A2tfv76jQtf)6 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 delta 149061 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

    ub@D@#FxhGKnJP3%4MG!ML8(@Z~Io#0i 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

    B3X07Y;ANnyOUTh-G@j2i5kvQln^JUu^ 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%0DhI4Y}ivvLlam+iFN|H6XlMJmYi50 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Ȣ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 delta 164947 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 ?i);Z38ZG;u+)s6AEBYb^}E> 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 >P}JX}zDf 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 n$. The resulting $(n \times p)$-dimensional data matrix $\mathbf{X}$: -\begin{align*} -\mathbf{X} & = -\left( -X_{\ast,1} \, | \, \ldots \, | \, X_{\ast,p} -\right) -\, \, \, = \, \, \, -\left( -\begin{array}{c} -X_{1,\ast} \\ \vdots \\ X_{n,\ast} -\end{array} \right) -\, \, \, = \, \, \, -\left( -\begin{array}{ccc} -X_{1,1} & \ldots & X_{1,p} -\\ -\vdots & \ddots & \vdots -\\ -X_{n,1} & \ldots & X_{n,p} -\end{array} \right) -\end{align*} -from such a study contains a larger number of covariates than samples. When $p > n$ the data matrix $\mathbf{X}$ is said to be *high-dimensional*. - -In this chapter we adopt the traditional statistical notation of the -data matrix. An alternative notation would be $\mathbf{X}^{\top}$ -(rather than $\mathbf{X}$), which is employed in the field of -(statistical) bioinformatics. In $\mathbf{X}^{\top}$ the rows comprise -the samples rather than the covariates. The case for the -bioinformatics notation stems from practical arguments. A spreadsheet -is designed to have more rows than columns. In case $p > n$ the -traditional notation yields a spreadsheet with more columns than -rows. When $p > 10000$ the conventional display is impractical. In -this chapter we stick to the conventional statistical notation of the -data matrix as all mathematical expressions involving $\mathbf{X}$ are -then in line with those of standard textbooks on regression. - -The information contained in $\mathbf{X}$ is often used to explain a -particular property of the samples involved. In applications in -molecular biology $\mathbf{X}$ may contain microRNA expression data -from which the expression levels of a gene are to be described. When -the gene's expression levels are denoted by $\mathbf{Y} = (Y_{1}, -\ldots, Y_n)^{\top}$, the aim is to find the linear relation $Y_i = -\mathbf{X}_{i, \ast} \beta$ from the data at hand by means of -regression analysis. Regression is however frustrated by the -high-dimensionality of $\mathbf{X}$ (illustrated in Section -ref{sect.ridgeRegression} and at the end of Section -ref{sect.constrainedEstimation}). These notes discuss how regression -may be modified to accommodate the high-dimensionality of -$\mathbf{X}$. First, however, `standard' linear regression is -recaputilated. - - -======= Linear regression ======= - -Consider an experiment in which $p$ characteristics of $n$ samples are -measured. The data from this experiment are denoted $\mathbf{X}$, with -$\mathbf{X}$ as above. The matrix $\mathbf{X}$ is called the *design -matrix*. Additional information of the samples is available in the -form of $\mathbf{Y}$ (also as above). The variable $\mathbf{Y}$ is -generally referred to as the *response variable*. The aim of -regression analysis is to explain $\mathbf{Y}$ in terms of -$\mathbf{X}$ through a functional relationship like $Y_i = -f(\mathbf{X}_{i,\ast})$. When no prior knowledge on the form of -$f(\cdot)$ is available, it is common to assume a linear relationship -between $\mathbf{X}$ and $\mathbf{Y}$. This assumption gives rise to -the *linear regression model*: - - -!bt -\begin{align} -Y_{i} & = \mathbf{X}_{i,\ast} \, \beta + \varepsilon_i label{form.linRegressionModel} -\\ -\nonumber -& = \beta_1 \, X_{i,1} + \ldots + \beta_{p} \, X_{i, p} + \varepsilon_i. -\end{align} -!et - -In model (ref{form.linRegressionModel}) $\beta = (\beta_1, \ldots, -\beta_p)^{\top}$ is the *regression parameter*. The parameter -$\beta_j$, $j=1, \ldots, p$, represents the effect size of covariate -$j$ on the response. That is, for each unit change in covariate $j$ -(while keeping the other covariates fixed) the observed change in the -response is equal to $\beta_j$. The second summand on the right-hand -side of the model, $\varepsilon_i$, is referred to as the error. It -represents the part of the response not explained by the functional -part $\mathbf{X}_{i,\ast} \, \beta$ of the model -(ref{form.linRegressionModel}). In contrast to the functional part, -which is considered to be systematic (i.e. non-random), the error is -assumed to be random. Consequently, $Y_{i_1,\ast}$ need not equal -$Y_{i_2,\ast}$ for $i_1 \not= i_2$, even if $\mathbf{X}_{i_1,\ast}= -\mathbf{X}_{i_2,\ast}$. To complete the formulation of model -(ref{form.linRegressionModel}) we need to specify the probability -distribution of $\varepsilon_i$. It is assumed that $\varepsilon_i -\sim \mathcal{N}(0, \sigma^2)$ and the $\varepsilon_{i}$ are -independent, i.e.: \begin{align*} \mbox{Cov}(\varepsilon_{i_1}, -\varepsilon_{i_2}) & = \left\{ \begin{array}{lcc} \sigma^2 & \mbox{if} -& i_1 = i_2, \\ 0 & \mbox{if} & i_1 \not= i_2. \end{array} \right. -\end{align*} The randomness of $\varepsilon_i$ implies that -$\mathbf{Y}_i$ is also a random variable. In particular, -$\mathbf{Y}_i$ is normally distributed, because $\varepsilon_i \sim -\mathcal{N}(0, \sigma^2)$ and $\mathbf{X}_{i,\ast} \, \beta$ is a -non-random scalar. To specify the parameters of the distribution of -$\mathbf{Y}_i$ we need to calculate its first two moments. Its -expectation equals: \begin{align*} \mathbb{E}(Y_i) & = -\mathbb{E}(\mathbf{X}_{i, \ast} \, \beta) + \mathbb{E}(\varepsilon_i) -\, \, \, = \, \, \, \mathbf{X}_{i, \ast} \, \beta, \end{align*} while -its variance is: \begin{align*} \mbox{Var}(Y_i) & = \mathbb{E} \{ [Y_i -- \mathbb{E}(Y_i)]^2 \} \, \, \, = \, \, \, \mathbb{E} ( Y_i^2 ) - -[\mathbb{E}(Y_i)]^2 # \\ # & = \mathbb{E} [ ( \mathbf{X}_{i, \ast} \, -\beta + \varepsilon_i )^2] - ( \mathbf{X}_{i, \ast} \, \beta)^2 \\ & -= \mathbb{E} [ ( \mathbf{X}_{i, \ast} \, \beta)^2 + 2 \varepsilon_i -\mathbf{X}_{i, \ast} \, \beta + \varepsilon_i^2 ] - ( \mathbf{X}_{i, -\ast} \, \beta)^2 \\ # & = ( \mathbf{X}_{i, \ast} \, \beta)^2 + 2 -\mathbb{E}(\varepsilon_i) \mathbf{X}_{i, \ast} \, \beta + -\mathbb{E}(\varepsilon_i^2 ) - ( \mathbf{X}_{i, \ast} \, \beta)^2 # -\\ & = \mathbb{E}(\varepsilon_i^2 ) \, \, \, = \, \, \, -\mbox{Var}(\varepsilon_i) \, \, \, = \, \, \, \sigma^2. \end{align*} -Hence, $Y_i \sim \mathcal{N}( \mathbf{X}_{i, \ast} \, \beta, -\sigma^2)$. This formulation (in terms of the normal distribution) is -equivalent to the formulation of model (ref{form.linRegressionModel}), -as both capture the assumptions involved: the linearity of the -functional part and the normality of the error. - -Model (ref{form.linRegressionModel}) is often written in a more condensed matrix form: - - -!bt -\begin{align} -\mathbf{Y} & = \mathbf{X} \, \beta + \vvarepsilon, label{form.linRegressionModelinMatrix} -\end{align} -!et -where $\vvarepsilon = (\varepsilon_1, \varepsilon_2, \ldots, \varepsilon_n)^{\top}$ and distributed as $\vvarepsilon \sim \mathcal{N}(\mathbf{0}_{p}, \sigma^2 \mathbf{I}_{nn})$. As above model (ref{form.linRegressionModelinMatrix}) can be expressed as a multivariate normal distribution: $\mathbf{Y} \sim \mathcal{N}(\mathbf{X} \, \beta, \sigma^2 \mathbf{I}_{nn})$. - -Model (ref{form.linRegressionModelinMatrix}) is a so-called -hierarchical model. This terminology emphasizes that $\mathbf{X}$ and -$\mathbf{Y}$ are not on a par, they play different roles in the -model. The former is used to explain the latter. In model -(ref{form.linRegressionModel}) $\mathbf{X}$ is referred as the -*explanatory* or *independent* variable, while the variable -$\mathbf{Y}$ is generally referred to as the *response* or *dependent* -variable. - -The covariates, the columns of $\mathbf{X}$, may themselves be -random. To apply the linear model they are temporarily assumed -fixed. The linear regression model is then to be interpreted as -$\mathbf{Y} \, | \, \mathbf{X} \sim \mathcal{N}(\mathbf{X} \, \beta, -\sigma^2 \mathbf{I}_{nn})$ - - -The linear regression model (ref{form.linRegressionModel}) involves the unknown parameters: $\beta$ and $\sigma^2$, which need to be learned from the data. The parameters of the regression model, $\beta$ and $\sigma^2$ are estimated by means of likelihood maximization. Recall that $Y_i \sim \mathcal{N}( \mathbf{X}_{i,\ast} \, \beta, \sigma^2)$ with corresponding density: $ f_{Y_i}(y_i) = (2 \, \pi \, \sigma^2)^{-1/2} \, \exp[ - (y_i - \mathbf{X}_{i\ast} \, \beta)^2 / 2 \sigma^2 ]$. The likelihood thus is: - - -!bt -\begin{align*} -L(\mathbf{Y}, \mathbf{X}; \beta, \sigma^2) & = -# f_{\mathbf{Y}}(\mathbf{y}) \, \, \, = \, \, \, \prod_{i=1}^n f_{Y_i}(y_i) \, \, \, = \, \, \, -\prod_{i=1}^n \frac{1}{\sqrt{2 \, \pi} \, \sigma} \, \exp[ - (Y_i - \mathbf{X}_{i, \ast} \, \beta)^2 / 2 \sigma^2 ], -\end{align*} -!et - -in which the independence of the observations has been used. Because -of the concavity of the logarithm, the maximization of the likelihood -coincides with the maximum of the logarithm of the likelihood (called -the log-likelihood). Hence, to obtain maximum likelihood (ML) -estimates of the parameter it is equivalent to find the maximum of the -log-likelihood. The log-likelihood is: - -!bt -\begin{align*} -\mathcal{L}(\mathbf{Y}, \mathbf{X}; \beta, \sigma^2) & = -\log[ L(\mathbf{Y}, \mathbf{X}; \beta, \sigma^2) ] -\, \, \, = \, \, \, % \log \Big[ \prod_{i=1}^n f_{Y_i}(y_i) \Big] -# \, \, \, = \, \, \, \sum_{i=1}^n \log[ f_{Y_i}(y_i) ] -# \\ -# & = \sum_{i=1}^n [ -\log(\sqrt{2 \, \pi} \, \sigma) - (y_i - \mathbf{X}_{i\ast} \, \beta)^2 / 2 \sigma^2 ] -# \\ -# & = --n \, \log(\sqrt{2 \, \pi} \, \sigma) - \frac{1}{ 2 \sigma^2} \sum_{i=1}^n (y_i - \mathbf{X}_{i, \ast} \, \beta)^2. -\end{align*} -After noting that $\sum_{i=1}^n (Y_i - \mathbf{X}_{i, \ast} \, \beta)^2 = \| \mathbf{Y} - \mathbf{X} \, \beta \|^2_2 \, \, \, = \, \, \, (\mathbf{Y} - \mathbf{X} \, \beta)^{\top} \, (\mathbf{Y} - \mathbf{X} \, \beta)$, the log-likelihood can be written as: -\begin{align*} -\mathcal{L}(\mathbf{Y}, \mathbf{X}; \beta, \sigma^2) & = -n \, \log(\sqrt{2 \, \pi} \, \sigma) - \frac{1}{ 2 \sigma^2} \, \| \mathbf{Y} - \mathbf{X} \, \beta \|^2_2. -\end{align*} -!et - -In order to find the maximum of the log-likelihood, take its derivate with respect to $\beta$: -!bt -\begin{align*} -\frac{\partial }{\partial \, \beta} \mathcal{L}(\mathbf{Y}, \mathbf{X}; \beta, \sigma^2) & = - \frac{1}{ 2 \sigma^2} \, \frac{\partial }{\partial \, \beta} \| \mathbf{Y} - \mathbf{X} \, \beta \|^2_2 \, \, \, = \, \, \, \frac{1}{\sigma^2} \, \mathbf{X}^{\top} (\mathbf{Y} - \mathbf{X} \, \beta). -\end{align*} -!et - -Equate this derivative to zero gives the estimating equation for $\beta$: - -!bt -\begin{align} label{form.normalEquation} -\mathbf{X}^{\top} \mathbf{X} \, \beta & = \mathbf{X}^{\top} \mathbf{Y}. -\end{align} -!et - -Equation (ref{form.normalEquation}) is called to the *normal equation*. Pre-multiplication of both sides of the normal equation by $(\mathbf{X}^{\top} \mathbf{X})^{-1}$ now yields the ML estimator of the regression parameter: $\hat{\beta} = (\mathbf{X}^{\top} \mathbf{X})^{-1} \, \mathbf{X}^{\top} \mathbf{Y}$, in which it is assumed that $(\mathbf{X}^{\top} \mathbf{X})^{-1}$ is well-defined. - -Along the same lines one obtains the ML estimator of the residual variance. Take the partial derivative of the log-likelihood with respect to $\sigma^2$: - -!bt -\begin{align*} -\frac{\partial }{\partial \, \sigma} \mathcal{L}(\mathbf{Y}, \mathbf{X}; \beta, \sigma^2) & = - \frac{n}{\sigma} + \frac{1}{\sigma^3} \| \mathbf{Y} - \mathbf{X} \, \beta \|^2_2. -\end{align*} -!et - - -Equate the right-hand side to zero and solve for $\sigma^2$ to find -$\hat{\sigma}^2 = \tfrac{1}{n} \| \mathbf{Y} - \mathbf{X} \, \beta -\|^2_2$. In this expression $\beta$ is unknown and the ML estimate of -$\beta$ is plugged-in. \\ \\ With explicit expressions of the ML -estimators at hand, we can study their properties. The expectation of -the ML estimator of the regression parameter $\beta$ is: - -!bt -\begin{align*} -\mathbb{E}(\hat{\beta}) & = \mathbb{E}[ -(\mathbf{X}^{\top} \mathbf{X})^{-1} \, \mathbf{X}^{\top} \mathbf{Y}] -\, \, \, = \, \, \, (\mathbf{X}^{\top} \mathbf{X})^{-1} \, -\mathbf{X}^{\top} \mathbb{E}[ \mathbf{Y}] # \\ \, \, \, = \, \, \, -(\mathbf{X}^{\top} \mathbf{X})^{-1} \, \mathbf{X}^{\top} \mathbf{X} \, -\beta \, \, \, \, \, = \, \, \, \beta. -\end{align*} -!et - -Hence, the ML -estimator of the regression coefficients is unbiased. - -The variance of the ML estimator of $\beta$ is: - -!bt -\begin{align*} -\mbox{Var}(\hat{\beta}) & = \mathbb{E} \{ [\hat{\beta} - \mathbb{E}(\hat{\beta})] [\hat{\beta} - \mathbb{E}(\hat{\beta})]^{\top} \} -\\ -& = \mathbb{E} \{ [(\mathbf{X}^{\top} \mathbf{X})^{-1} \, \mathbf{X}^{\top} \mathbf{Y} - \beta] \, [(\mathbf{X}^{\top} \mathbf{X})^{-1} \, \mathbf{X}^{\top} \mathbf{Y} - \beta]^{\top} \} -\\ -# & = \mathbb{E} \{ [(\mathbf{X}^{\top} \mathbf{X})^{-1} \, \mathbf{X}^{\top} \mathbf{Y}] \, [(\mathbf{X}^{\top} \mathbf{X})^{-1} \, \mathbf{X}^{\top} \mathbf{Y}]^{\top} \} - \beta \, \beta^{\top} -# \\ -# & = \mathbb{E} \{ (\mathbf{X}^{\top} \mathbf{X})^{-1} \, \mathbf{X}^{\top} \mathbf{Y} \, \mathbf{Y}^{\top} \, \mathbf{X} \, (\mathbf{X}^{\top} \mathbf{X})^{-1} \} - \beta \, \beta^{\top} -# \\ -& = (\mathbf{X}^{\top} \mathbf{X})^{-1} \, \mathbf{X}^{\top} \, \mathbb{E} \{ \mathbf{Y} \, \mathbf{Y}^{\top} \} \, \mathbf{X} \, (\mathbf{X}^{\top} \mathbf{X})^{-1} - \beta \, \beta^{\top} -\\ -& = (\mathbf{X}^{\top} \mathbf{X})^{-1} \, \mathbf{X}^{\top} \, \{ \mathbf{X} \, \beta \, \beta^{\top} \, \mathbf{X}^{\top} + \SSigma \} \, \mathbf{X} \, (\mathbf{X}^{\top} \mathbf{X})^{-1} - \beta \, \beta^{\top} -# \\ -# & = (\mathbf{X}^T \mathbf{X})^{-1} \, \mathbf{X}^T \, \mathbf{X} \, \beta \, \beta^T \, \mathbf{X}^T \, \mathbf{X} \, (\mathbf{X}^T % \mathbf{X})^{-1} -# \\ -# & & + \, \, \sigma^2 \, (\mathbf{X}^T \mathbf{X})^{-1} \, \mathbf{X}^T \, \mathbf{X} \, (\mathbf{X}^T \mathbf{X})^{-1} - \beta \beta^T -\\ -& = \beta \, \beta^{\top} + \sigma^2 \, (\mathbf{X}^{\top} \mathbf{X})^{-1} - \beta \, \beta^{\top} -\, \, \, = \, \, \, \sigma^2 \, (\mathbf{X}^{\top} \mathbf{X})^{-1}, -\end{align*} -!et - -in which we have used that $\mathbb{E} (\mathbf{Y} \mathbf{Y}^{\top}) -= \mathbf{X} \, \beta \, \beta^{\top} \, \mathbf{X}^{\top} + \sigma^2 -\, \mathbf{I}_{nn}$. From $\mbox{Var}(\hat{\beta}) = \sigma^2 \, -(\mathbf{X}^{\top} \mathbf{X})^{-1}$, one obtains an estimate of the -variance of the estimate of the $j$-th regression coefficient: -$\hat{\sigma}^2 (\hat{\beta}_j ) = \hat{\sigma}^2 \sqrt{ -[(\mathbf{X}^{\top} \mathbf{X})^{-1}]_{jj} }$. This may be used to -construct a confidence interval for the estimates or test the -hypothesis $H_0: \beta_j = 0$. In the latter $\hat{\sigma}^2$ should -not be the maximum likelihood estimator, as it is biased. It is then -to be replaced by the residual sum-of-squares divided by $n-p$ rather -than $n$. - - -The prediction of $Y_i$, denoted $\widehat{Y}_i$, is the expected -value of $Y_i$ according the linear regression model (with its -parameters replaced by their estimates). The prediction of $Y_i$ thus -equals $\mathbb{E}(Y_i; \hat{\beta}, \hat{\sigma}^2) = \mathbf{X}_{i, -\ast} \hat{\beta}$. In matrix notation the prediction is: - -!bt -\begin{align*} -\widehat{\mathbf{Y}} & = \mathbf{X} \, \hat{\beta} \, \, \, = \, \, \, \mathbf{X} \, (\mathbf{X}^{\top} \mathbf{X})^{-1} \mathbf{X}^{\top} \mathbf{Y} \, \, \, := \, \, \, \mathbf{H} \mathbf{Y}, -\end{align*} -!et - -where $\mathbf{H}$ is the *hat matrix*, as it `puts the hat' on -$\mathbf{Y}$. Note that the hat matrix is a projection matrix, -i.e. $\mathbf{H}^2 = \mathbf{H}$ for - -!bt -\begin{align*} -\mathbf{H}^2 & = \mathbf{X} \, (\mathbf{X}^{\top} \mathbf{X})^{-1} \mathbf{X}^{\top} \mathbf{X} \, (\mathbf{X}^{\top} \mathbf{X})^{-1} \mathbf{X}^{\top} \, \, \, = \, \, \, \mathbf{X} \, (\mathbf{X}^{\top} \mathbf{X})^{-1} \mathbf{X}^{\top}. -\end{align*} -!et - -Thus, the prediction $\widehat{\mathbf{Y}}$ is an orthogonal -projection of $\mathbf{Y}$ onto the space spanned by the columns of -$\mathbf{X}$. - -With $\widehat{\beta}$ available, an estimate of the errors -$\hat{\varepsilon}_i$, dubbed the *residuals* are obtained via: - -!bt -\begin{align*} -\hat{\vvarepsilon} & = \mathbf{Y} - \widehat{\mathbf{Y}} \, \, \, = \, \, \, \mathbf{Y} - \mathbf{X} \, \hat{\beta} \, \, \, = \, \, \, \mathbf{Y} - \mathbf{X} \, (\mathbf{X}^{\top} \mathbf{X})^{-1} \mathbf{X}^{\top} \mathbf{Y} \, \, \, = \, \, \, [ \mathbf{I} - \mathbf{X} \, (\mathbf{X}^{\top} \mathbf{X})^{-1} \mathbf{X}^{\top} ] \, \mathbf{Y}. -\end{align*} -!et - -Thus, the residuals are a projection of $\mathbf{Y}$ onto the -orthogonal complement of the space spanned by the columns of -$\mathbf{X}$. The residuals are to be used in diagnostics, -e.g. checking of the normality assumption by means of a normal -probability plot. - - - -======= Ridge regression ======= - -When the design matrix is high-dimensional, the covariates (the -columns of $\mathbf{X}$) are super-collinear. Recall *collinearity* in -regression analysis refers to the event of two (or multiple) -covariates being highly linearly related. Consequently, the subspace -spanned by collinear covariates may not be (or close to not being) of -full rank. When the subspace (onto which $\mathbf{Y}$ is projected) -is (close to) rank deficient, it is (almost) impossible to separate -the contribution of the individual covariates. The uncertainty with -respect to the covariate responsible for the variation explained in -$\mathbf{Y}$ is often reflected in the fit of the linear regression -model to data by a large error of the estimates of the regression -parameters corresponding to the collinear covariates. - - -Consider the design matrix: - -!bt -\begin{align*} -\mathbf{X} & = \left( -\begin{array}{rrr} -1 & -1 & 2 -\\ -1 & 0 & 1 -\\ -1 & 2 & -1 -\\ -1 & 1 & 0 -\end{array} \right) -\end{align*} -!et - -The columns of $\mathbf{X}$ are linearly dependent: the first column -is the row-wise sum of the other two columns. The rank (more correct, -the column rank) of a matrix is the dimension of space spanned by the -column vectors. Hence, the rank of $\mathbf{X}$ is equal to the number -of linearly independent columns: $\mbox{rank}(\mathbf{X}) = 2$. - - - - -Super-collinearity of an $(n \times p)$-dimensional design matrix $\mathbf{X}$ implies[^footnote1][^footnote1]: If the (column) rank of $\mathbf{X$ is smaller than $p$, there exists a non-trivial $\mathbf{v} \in \mathbb{R}^p$ such that $\mathbf{X} \mathbf{v} = \mathbf{0}_{p}$. Multiplication of this inequality by $\mathbf{X}^{\top}$ yields $\mathbf{X}^{\top} \mathbf{X} \mathbf{v} = \mathbf{0}_{p}$. As $\mathbf{v} \not= \mathbf{0}_{p}$, this implies that $\mathbf{X}^{\top} \mathbf{X}$ is not invertible.} that the rank of the $(p \times p)$-dimensional matrix $\mathbf{X}^{\top} \mathbf{X}$ is smaller than $p$, and, consequently, it is singular. A square matrix that does not have an inverse is called *singular*. A matrix $\mathbf{A}$ is singular if and only if its determinant is zero: $\mbox{det}(\mathbf{A}) = 0$. - - - -Consider the matrix $\mathbf{A}$ given by: -!bt -\begin{align*} -\mathbf{A} & = \left( -\begin{array}{rr} -1 & 2 -\\ -2 & 4 -\end{array} \right) -\end{align*} -!et -Clearly, $\mbox{det}(\mathbf{A}) = a_{11} a_{22} - a_{12} a_{21} = 1 \times 4 - 2 \times 2 = 0$. Hence, $\mathbf{A}$ is singular and its inverse is undefined. - -As $\mbox{det}(\mathbf{A})$ is equal to the product of the eigenvalues -$\nu_j$ of $\mathbf{A}$, the matrix $\mathbf{A}$ is singular if one -(or more) of the eigenvalues of $\mathbf{A}$ is zero. To see this, -consider the spectral decomposition of $\mathbf{A}$: - -!bt -\begin{align*} -\mathbf{A} & = \sum_{j=1}^p \nu_j \, \mathbf{v}_j \, \mathbf{v}_j^{\top}, -\end{align*} -!et -where $\mathbf{v}_j$ is the eigenvector corresponding to $\nu_j$. The inverse of $\mathbf{A}$ is then: -!bt -\begin{align*} -\mathbf{A}^{-1} & = \sum_{j=1}^p \nu_j^{-1} \, \mathbf{v}_j \, \mathbf{v}_j^{\top}. -\end{align*} -!et - -The right-hand side is undefined if $\nu_j =0$ for any $j$. - - -Matrix $\mathbf{A}$ has eigenvalues $\nu_1 =5$ and $\nu_2=0$. According to the spectral decomposition, the inverse of $\mathbf{A}$ is: -!bt -\begin{align*} -\mathbf{A}^{-1} & = \frac{1}{5} \, \mathbf{v}_1 \, \mathbf{v}_1^{\top} + \frac{1}{0} \, \mathbf{v}_2 \, \mathbf{v}_2^{\top}. -\end{align*} -!et - -This expression is undefined as we divide by zero in the second summand on the right-hand side. - - - -In summary, the columns of a high-dimensional design matrix -$\mathbf{X}$ are linearly dependent and this super-collinearity causes -$\mathbf{X}^{\top} \mathbf{X}$ to be singular. Now recall the ML -estimator of the parameter of the linear regression model: - -!bt -\begin{align} -\hat{\beta} & = (\mathbf{X}^{\top} \mathbf{X})^{-1} \mathbf{X}^{\top} \mathbf{Y}. -\end{align} -!et - - -This estimator is only well-defined if $(\mathbf{X}^{\top} -\mathbf{X})^{-1}$ exits. Hence, when $\mathbf{X}$ is high-dimensional -the regression parameter $\beta$ cannot be estimated. - - -Above only the practical consequence of high-dimensionality is presented: the expression $( \mathbf{X}^{\top} \mathbf{X})^{-1} \mathbf{X}^{\top} \mathbf{Y}$ cannot be evaluated numerically. But the problem arising from the high-dimensionality of the data is more fundamental. To appreciate this, consider the normal equations: - -!bt -\begin{align*} -\mathbf{X}^{\top} \mathbf{X} \beta & = \mathbf{X}^{\top} \mathbf{Y}. -\end{align*} -!et - -The matrix $\mathbf{X}^{\top} \mathbf{X}$ is of rank $n$, while $\beta$ is a vector of length $p$. Hence, while there are $p$ unknowns, the system of linear equations from which these are to be solved effectively comprises $n$ degrees of freedom. If $p > n$, the vector $\beta$ cannot uniquely be determined from this system of equations. To make this more specific let $U$ be the $n$-dimensional space spanned by the columns of $\mathbf{X}$ and the $p-n$-dimensional space $V$ be orthogonal complement of $U$, i.e. $V = U^{\perp}$. Then, $\mathbf{X} \mathbf{v} = \mathbf{0}_{p}$ for all $\mathbf{v} \in V$. So, $V$ is the non-trivial null space of $\mathbf{X}$. Consequently, as $\mathbf{X}^{\top} \mathbf{X} \mathbf{v} = -\mathbf{X}^{\top} \mathbf{0}_{p} = \mathbf{0}_{n}$, the solution of the normal equations is: - -!bt -\begin{align*} -\hat{\beta} & = ( \mathbf{X}^{\top} \mathbf{X})^{-} \mathbf{X}^{\top} \mathbf{Y} + \mathbf{v} \qquad \mbox{for all } \mathbf{v} \in V, -\end{align*} -!et - -where $\mathbf{A}^{-}$ denotes the Moore-Penrose inverse of the matrix $\mathbf{A}$, which is defined as: - -!bt -\begin{align*} -\mathbf{A}^{-} & = \sum_{j=1}^p \nu_j^{-1} \, I_{\{ \nu_j \not= 0 \} } \, \mathbf{v}_j \, \mathbf{v}_j^{\top}. -\end{align*} -!et - -The solution of the normal equations is thus only determined up to an -element from a non-trivial space $V$, and there is no unique estimator -of the regression parameter. - -To obtain an estimate of the regression parameter $\beta$ when -$\mathbf{X}$ is (close to) super-collinearity, cite{Hoer1970} proposed -an ad-hoc fix to resolve the (almost) singularity of -$\mathbf{X}^{\top} \mathbf{X}$. Simply replace $\mathbf{X}^{\top} -\mathbf{X}$ by $\mathbf{X}^{\top} \mathbf{X} + \lambda -\mathbf{I}_{pp}$ with $\lambda \in [0, \infty)$. The scalar $\lambda$ -is a tuning parameter, henceforth called the *penalty parameter*. - - - -Recall the super-collinear design matrix $\mathbf{X}$ of Example ref{example.supercollinearity}. Then, for (say) $\lambda = 1$: -!bt -\begin{align*} -\mathbf{X}^{\top} \mathbf{X} + \lambda \mathbf{I}_{pp} & = \left( -\begin{array}{rrr} -5 & 2 & 2 -\\ -2 & 7 & -4 -\\ -2 & -4 & 7 -\end{array} \right). -\end{align*} -!et -The eigenvalues of this matrix are 11, 7, and 1. Hence, $\mathbf{X}^{\top} \mathbf{X} + \lambda \mathbf{I}_{pp}$ has no zero eigenvalue and its inverse is well-defined. - -With the ad-hoc fix for the singularity of $\mathbf{X}^{\top} \mathbf{X}$, cite{Hoer1970} proceed to define the *ridge regression estimator*: - - -!bt -\begin{align} label{form.ridgeRegressionEstimator} -\hat{\beta}(\lambda) & = (\mathbf{X}^{\top} \mathbf{X} + \lambda \mathbf{I}_{pp})^{-1} \mathbf{X}^{\top} \mathbf{Y}, -\end{align} -!et - -for $\lambda \in [0, \infty)$. Clearly, this is - for $\lambda$ -strictly positive - a well-defined estimator, even if $\mathbf{X}$ is -high-dimensional. However, each choice of $\lambda$ leads to a -different ridge regression estimate. The set of all ridge regression -estimates $\{ \hat{\beta}(\lambda) \, : \, \lambda \in [0, \infty) \}$ -is called the *solution* or *regularization path* of the ridge -estimator. - - - - -Recall the super-collinear design matrix $\mathbf{X}$ of Example ref{example.supercollinearity}. Suppose that the corresponding response vector is $\mathbf{Y} = (1.3, -0.5, 2.6, 0.9)^{\top}$. -The ridge regression estimates for, e.g. $\lambda = 1, 2$, and $10$ are then: -\begin{align*} -\hat{\beta}(1) & = (0.614, 0.548, 0.066)^{\top}, -\\ -\hat{\beta}(2) & = (0.537, 0.490, 0.048)^{\top}, -\\ -\hat{\beta}(10) & = (0.269, 0.267, 0.002)^{\top}. -\end{align*} -The full solution path of the ridge estimator is plotted in Figure ref{fig.ridgeSolPathPlusVar}. - - -Having obtained an estimate of the regression parameter $\beta$, one can define the fit $\widehat{\mathbf{Y}}$. It is defined analogous to the standard case: - -!bt -\begin{align*} -\widehat{\mathbf{Y}}(\lambda) & = \mathbf{X} \hat{\beta}(\lambda) -\, \, \, = \, \, \, \mathbf{X} (\mathbf{X}^{\top} \mathbf{X} + \lambda \mathbf{I}_{pp})^{-1} \mathbf{X}^{\top} \mathbf{Y} -\, \, \, := \, \, \, \mathbf{H}(\lambda) \mathbf{Y}. -\end{align*} -!et - -Previously, when using the ML estimator, the fit could be understood as a projection of $\mathbf{Y}$ onto the subspace spanned by the columns of $\mathbf{X}$. The fit $\widehat{\mathbf{Y}}(\lambda)$ corresponding to the ridge estimator is not a projection of $\mathbf{Y}$ onto $\mathbf{X}$ (confer Exercise ref{question.ridgeResidualsProjection} $\!$a). Consequently, the `ridge residuals' $\mathbf{Y} - \widehat{\mathbf{Y}}(\lambda)$ are not orthogonal to the fit $\widehat{\mathbf{Y}}(\lambda)$ (confer Exercise ref{question.ridgeResidualsProjection} $\!$b). - - -======= Eigenvalue shrinkage ======= - -The effect of the ridge penalty may also studied from the perspective of singular values. Let the singular value decomposition of the $(n \times p)$-dimensional design matrix $\mathbf{X}$ be: - -!bt -\begin{align*} -\mathbf{X} & = \mathbf{U}_x \mathbf{D}_x \mathbf{V}_x^{\top}, -\end{align*} -!et - -where $\mathbf{D}_x$ an $(n \times n)$-dimensional diagonal matrix -with the singular values, $\mathbf{U}_x$ an $(n \times n)$-dimensional -matrix with columns containing the left singular vectors (denoted -$\mathbf{u}_i$), and $\mathbf{V}_x$ a $(p \times n)$-dimensional -matrix with columns containing the right singular vectors (denoted -$\mathbf{v}_i$). The columns of $\mathbf{U}_x$ and $\mathbf{V}_x$ are -orthogonal: $\mathbf{U}_x^{\top} \mathbf{U}_x = \mathbf{I}_{nn} = -\mathbf{V}_x^{\top} \mathbf{V}_x$. - -The OLS estimator can then be rewritten in terms of the SVD-matrices as: - - -\begin{align*} -\hat{\beta} & = (\mathbf{X}^{\top} \mathbf{X})^{-1} \mathbf{X}^{\top} \mathbf{Y} -\\ -& = (\mathbf{V}_x \mathbf{D}_x \mathbf{U}_x^{\top} \mathbf{U}_x \mathbf{D}_x \mathbf{V}_x^{\top})^{-1} \mathbf{V}_x \mathbf{D}_x \mathbf{U}_x^{\top} \mathbf{Y} -\\ -& = (\mathbf{V}_x \mathbf{D}_x^2 \mathbf{V}_x^{\top})^{-1} \mathbf{V}_x \mathbf{D}_x \mathbf{U}_x^{\top} \mathbf{Y} -\\ -& = \mathbf{V}_x \mathbf{D}_x^{-2} \mathbf{V}_x^{\top} \mathbf{V}_x \mathbf{D}_x \mathbf{U}_x^{\top} \mathbf{Y} -\\ -& = \mathbf{V}_x \mathbf{D}_x^{-2} \mathbf{D}_x \mathbf{U}_x^{\top} \mathbf{Y}, -\end{align*} -where $\mathbf{D}_x^{-2} \mathbf{D}_x$ is not simplified further to emphasize the effect of the ridge penalty. Similarly, the ridge estimator can be rewritten in terms of the SVD-matrices as: -\begin{align*} -\hat{\beta} & = (\mathbf{X}^{\top} \mathbf{X} + \lambda \mathbf{I}_{pp})^{-1} \mathbf{X}^{\top} \mathbf{Y} -\\ -& = (\mathbf{V}_x \mathbf{D}_x \mathbf{U}_x^{\top} \mathbf{U}_x \mathbf{D}_x \mathbf{V}_x^{\top} + \lambda \mathbf{I}_{pp})^{-1} \mathbf{V}_x \mathbf{D}_x \mathbf{U}_x^{\top} \mathbf{Y} -\\ -& = (\mathbf{V}_x \mathbf{D}_x^2 \mathbf{V}_x^{\top} + \lambda \mathbf{V}_x \mathbf{V}_x^{\top})^{-1} \mathbf{V}_x \mathbf{D}_x \mathbf{U}_x^{\top} \mathbf{Y} -\\ -& = \mathbf{V}_x (\mathbf{D}_x^{2} + \lambda \mathbf{I}_{nn})^{-1} \mathbf{V}_x^{\top} \mathbf{V}_x \mathbf{D}_x \mathbf{U}_x^{\top} \mathbf{Y} -\\ -& = \mathbf{V}_x (\mathbf{D}_x^{2} + \lambda \mathbf{I}_{nn})^{-1} \mathbf{D}_x \mathbf{U}_x^{\top} \mathbf{Y}. -\end{align*} -Combining the two results and writing $(\mathbf{D}_x)_{jj} = d_{x,jj}$ we have: -\begin{align*} -d_{x,jj}^{-1} & \geq & \frac{d_{x,jj}}{d_{x,jj}^2 + \lambda} \qquad \mbox{ for all } \lambda > 0. -\end{align*} -Thus, the ridge penalty shrinks the singular values. -\\ -\\ -Return to the problem of the super-collinearity of $\mathbf{X}$ in the high-dimensional setting ($p > n$). The super-collinearity implies the singularity of $\mathbf{X}^{\top} \mathbf{X}$ and prevents the calculation of the OLS estimator of the regression coefficients. However, $\mathbf{X}^{\top} \mathbf{X} + \lambda \mathbf{I}_{pp}$ is non-singular, with inverse: -\begin{align*} -(\mathbf{X}^{\top} \mathbf{X} + \lambda \mathbf{I}_{pp})^{-1} & = \sum_{j=1}^p (d_{x,jj}^2 + \lambda)^{-1} \mathbf{v}_j \mathbf{v}_j^{\top}. -\end{align*} -The right-hand side is well-defined for $\lambda > 0$. - - -===== Principal components regression ===== - -Principal component regression is a close relative to ridge regression that can also be applied in a high-dimensional context. Principal components regression explains the response not by the covariates themselves but by linear combinations of the covariates as defined by the principal components of $\mathbf{X}$. Let $\mathbf{U} \mathbf{D} \mathbf{V}^{\top}$ be the singular value decomposition of $\mathbf{X}$. The $i$-th principal component of $\mathbf{X}$ is then $\mathbf{X} \mathbf{v}_i$, henceforth denoted $\mathbf{z}_i$. Let $\mathbf{Z}_k$ be the matrix of the first $k$ principal components, i.e. $\mathbf{Z}_k = \mathbf{X} \mathbf{V}_k$ where $\mathbf{V}_k$ contains the first $k$ right singular vectors as columns. Principal components regression then amounts to regressing the response $\mathbf{Y}$ onto $\mathbf{Z}_{k}$, that is, it fits the model $\mathbf{Y} = \mathbf{Z}_k \ggamma + \vvarepsilon$. The least squares estimator of $\ggamma$ then is (with some abuse of notation): -\begin{align*} -\hat{\ggamma} & = (\mathbf{Z}_k^{\top} \mathbf{Z}_k)^{-1} \mathbf{Z}_k^{\top} \mathbf{Y} \, \, \, = \, \, \, (\mathbf{V}_k^{\top} \mathbf{X}^{\top} \mathbf{X} \mathbf{V}_k)^{-1} \mathbf{V}_k^{\top} \mathbf{X}^{\top} \mathbf{Y} -\\ -& = (\mathbf{V}_k^{\top} \mathbf{V} \mathbf{D} \mathbf{U}^{\top} \mathbf{U} \mathbf{D} \mathbf{V}^{\top} \mathbf{V}_k)^{-1} \mathbf{V}_k^{\top} \mathbf{V} \mathbf{D} \mathbf{U}^{\top} \mathbf{Y} -\\ -& = (\mathbf{I}_{kn} \mathbf{D}^2 \mathbf{I}_{nk})^{-1} \mathbf{I}_{kn} \mathbf{D} \mathbf{U}^{\top} \mathbf{Y} -\\ -& = \mathbf{D}_k^{-2} \widetilde{\mathbf{D}}_k \mathbf{U}^{\top} \mathbf{Y} \, \, \, = \, \, \ \widetilde{\mathbf{D}}_k^{-1} \mathbf{U}^{\top} \mathbf{Y}, -\end{align*} -where $\mathbf{D}_k$ and $\widetilde{\mathbf{D}}_k$ are submatrices of $\mathbf{D}$. The matrix $\mathbf{D}_k$ is obtained from $\mathbf{D}$ by removal of the last $n-p$ rows and columsn, while for $\widetilde{\mathbf{D}}_k$ only the last $n-k$ rows are dropped. Similarly, $\mathbf{I}_{kn}$ and $\mathbf{I}_{nk}$ are obtained from $\mathbf{I}_{nn}$ by removal of the last $n-k$ rows and columns, respectively. The principal component regression estimator of $\beta$ then is $\hat{\beta}_{\mbox{{\tiny pcr}}} = \mathbf{V}_k \widetilde{\mathbf{D}}_k^{-1} \mathbf{U}^{\top} \mathbf{Y}$. When $k$ is set equal to the column rank of $\mathbf{X}$, and thus to the rank of $\mathbf{X}^{\top} \mathbf{X}$, the -principal component regression estimator $\hat{\beta}_{\mbox{{\tiny pcr}}} = (\mathbf{X}^{\top} \mathbf{X})^- \mathbf{X}^{\top} \mathbf{Y}$, where $\mathbf{A}^-$ denotes the Moore-Penrose inverse of matrix $\mathbf{A}$. - -The relation between ridge and principal component regression becomes clear when their corresponding estimators are written in terms of the singular value decomposition of $\mathbf{X}$: -\begin{align*} -\hat{\beta}_{\mbox{{\tiny pcr}}} & = \mathbf{V}_x (\mathbf{I}_{nk} \mathbf{D}_x \mathbf{I}_{kn})^{-1} \mathbf{U}_x^{\top} \mathbf{Y}, -\\ -\hat{\beta} (\lambda) & = \mathbf{V}_x (\mathbf{D}_x^2 + \lambda \mathbf{I}_{nn})^{-1} \mathbf{D}_x \mathbf{U}_x^{\top} \mathbf{Y}. -\end{align*} -Both operate on the singular values of the design matrix. But where principal component regression thresholds the singular values of $\mathbf{X}$, ridge regression shrinks them (depending on their size). Hence, one applies a discrete map on the singular values while the other a continuous one. - - - - - -======= Moments ======= - -The first two moments of the ridge regression estimator are derived. Next the performance of the ridge regression estimator is studied in terms of the mean squared error, which combines the first two moments. - - -===== Expectation ===== - -The left panel of Figure ref{fig.ridgeSolPathPlusVar} shows ridge estimates of the regression parameters converging to zero as the penalty parameter tends to infinity. This behaviour of the ridge estimator does not depend on the specifics of the data set. To see this study the expectation of the ridge estimator: -\begin{align*} -\mathbb{E} \big[ \hat{\beta}(\lambda) \big] & = \mathbb{E} \big[ (\mathbf{X}^{\top} \mathbf{X} + \lambda \mathbf{I}_{pp})^{-1} \mathbf{X}^{\top} \mathbf{Y} \big] -\\ -& = \mathbb{E} \big[ (\mathbf{X}^{\top} \mathbf{X} + \lambda \mathbf{I}_{pp})^{-1} (\mathbf{X}^{\top} \mathbf{X}) (\mathbf{X}^{\top} \mathbf{X})^{-1} \, \mathbf{X}^{\top} \mathbf{Y} \big] -\\ -& = \mathbb{E} \big[ (\mathbf{X}^{\top} \mathbf{X} + \lambda \mathbf{I}_{pp})^{-1} (\mathbf{X}^{\top} \mathbf{X}) \, \hat{\beta} \big] -\\ -& = (\mathbf{X}^{\top} \mathbf{X} + \lambda \mathbf{I}_{pp})^{-1} (\mathbf{X}^{\top} \mathbf{X}) \, \mathbb{E} ( \hat{\beta} ) -\\ -& = (\mathbf{X}^{\top} \mathbf{X} + \lambda \mathbf{I}_{pp})^{-1} (\mathbf{X}^{\top} \mathbf{X}) \, \beta. -\end{align*} -Clearly, $\mathbb{E} \big[ \hat{\beta}(\lambda) \big] \not= \beta$ for any $\lambda > 0$. Hence, the ridge estimator is biased. - -From the expression above it is clear that the expectation of the ridge estimator vanishes as $\lambda$ tends to infinity: -\begin{align*} -\lim_{\lambda \rightarrow \infty} \mathbb{E} \big[ \hat{\beta}(\lambda) \big] & = \lim_{\lambda \rightarrow \infty} (\mathbf{X}^{\top} \mathbf{X} + \lambda \mathbf{I}_{pp})^{-1} (\mathbf{X}^{\top} \mathbf{X}) \, \beta \, \, \, = \, \, \, \mathbf{0}_{p}. -\end{align*} -Hence, all regression coefficients are shrunken towards zero as the penalty parameter increases. This also holds for $\mathbf{X}$ with $p > n$. Furthermore, this behaviour is not strictly monotone in $\lambda$: $\lambda_{a} > \lambda_b$ does not necessarily imply $|\hat{\beta}_j (\lambda_a) | < |\hat{\beta}_j (\lambda_b) |$. Upon close inspection this can be witnessed from the ridge solution path of $\beta_3$ in Figure ref{fig.ridgeSolPathPlusVar}. - - -\begin{example} *Orthonormal design matrix* label{example.orthoronormalDesign} -\\ -Consider an orthonormal design matrix $\mathbf{X}$, i.e.: -\begin{align*} -\mathbf{X}^{\top} \mathbf{X} & = \mathbf{I}_{pp} \, \, \, = \, \, \, (\mathbf{X}^{\top} \mathbf{X})^{-1}. -\end{align*} -An example of an orthonormal design matrix would be: -\begin{align*} -\mathbf{X} & = \frac{1}{2} \left( -\begin{array}{rr} --1 & -1 -\\ --1 & 1 -\\ -1 & -1 -\\ -1 & 1 -\end{array} \right). -\end{align*} -This design matrix is orthonormal as $\mathbf{X}^{\top} \mathbf{X} = \mathbf{I}_{22}$, which is easily verified: -\begin{align*} -\mathbf{X}^{\top} \mathbf{X} & = \frac{1}{4} -\left( -\begin{array}{rrrr} --1 & -1 & 1 & 1 -\\ --1 & 1 & -1 & 1 -\end{array} \right) -\left( -\begin{array}{rr} --1 & -1 -\\ --1 & 1 -\\ -1 & -1 -\\ -1 & 1 -\end{array} \right) \, \, \, = \, \, \, -\frac{1}{4} -\left( -\begin{array}{rr} -4 & 0 -\\ -0 & 4 -\end{array} \right) \, \, \, = \, \, \, \mathbf{I}_{22}. -\end{align*} -In case of an orthonormal design matrix the relation between the OLS and ridge estimator is: -\begin{align*} -\hat{\beta}(\lambda) & = (\mathbf{X}^{\top} \mathbf{X} + \lambda \mathbf{I}_{pp})^{-1} \mathbf{X}^{\top} \mathbf{Y} -\, \, \, = \, \, \, (\mathbf{I}_{pp} + \lambda \mathbf{I}_{pp})^{-1} \mathbf{X}^{\top} \mathbf{Y} -\\ -& = (1 + \lambda)^{-1} \mathbf{I}_{pp} \mathbf{X}^{\top} \mathbf{Y} -\qquad \, \, = \, \, \, (1 + \lambda)^{-1} (\mathbf{X}^{\top} \mathbf{X})^{-1} \mathbf{X}^{\top} \mathbf{Y} -\\ -& = (1 + \lambda)^{-1} \hat{\beta}. -\end{align*} -Hence, the ridge estimator scales the OLS estimator by a factor. When taking the expectation on both sides, it is evident that the ridge estimator converges to zero as $\lambda \rightarrow \infty$. -\end{example} - - - -===== Variance ===== - -As for the ML estimate of the regression parameter $\beta$ of model (ref{form.linRegressionModelinMatrix}), we derive the second moment of the ridge estimator. Hereto define: -\begin{align*} -\mathbf{W}_{\lambda} & = (\mathbf{X}^{\top} \mathbf{X} + \lambda \mathbf{I}_{pp})^{-1} \mathbf{X}^{\top} \mathbf{X}. -\end{align*} -Using $\mathbf{W}_{\lambda}$ the ridge estimator $\hat{\beta}(\lambda)$ can be expressed as $\mathbf{W}_{\lambda} \hat{\beta}$ for: -\begin{align*} -\mathbf{W}_{\lambda} \hat{\beta} & = \mathbf{W}_{\lambda} (\mathbf{X}^{\top} \mathbf{X})^{-1} \mathbf{X}^{\top} \mathbf{Y} -\\ -& = \{ (\mathbf{X}^{\top} \mathbf{X})^{-1} [ \mathbf{X}^{\top} \mathbf{X} + \lambda \mathbf{I}_{pp} ] \}^{-1} (\mathbf{X}^{\top} \mathbf{X})^{-1} \mathbf{X}^{\top} \mathbf{Y} -\\ -& = [ \mathbf{X}^{\top} \mathbf{X} + \lambda \mathbf{I}_{pp} ]^{-1} \mathbf{X}^{\top} \mathbf{X} (\mathbf{X}^{\top} \mathbf{X})^{-1} \mathbf{X}^{\top} \mathbf{Y} -\\ -& = [ \mathbf{X}^{\top} \mathbf{X} + \lambda \mathbf{I}_{pp} ]^{-1} \mathbf{X}^{\top} \mathbf{Y} -\\ -& = \hat{\beta}(\lambda). -\end{align*} -The linear operator $\mathbf{W}_{\lambda}$ thus transforms the ML estimator of the regression parameter into the ridge estimator. - -It is now easily seen that: -\begin{align*} -\mbox{Var}[ \hat{\beta}(\lambda) ] & = \mbox{Var}[ \mathbf{W}_{\lambda} \hat{\beta} ] \qquad \qquad \, \, \, \, \, \, = \, \, \, \mathbf{W}_{\lambda} \mbox{Var}[\hat{\beta} ] \mathbf{W}_{\lambda}^{\top} -\\ -& = \sigma^2 \mathbf{W}_{\lambda} (\mathbf{X}^{\top} \mathbf{X})^{-1} \mathbf{W}_{\lambda}^{\top} \, \, \, = \, \, \, \sigma^2 [ \mathbf{X}^{\top} \mathbf{X} + \lambda \mathbf{I}_{pp} ]^{-1} \mathbf{X}^{\top} \mathbf{X} \{ [ \mathbf{X}^{\top} \mathbf{X} + \lambda \mathbf{I}_{pp} ]^{-1}\}^{\top}, -\end{align*} -in which we have used $\mbox{Var}(\mathbf{A} \mathbf{Y}) = \mathbf{A} \mbox{Var}( \mathbf{Y}) \mathbf{A}^{\top}$ for a non-random matrix $\mathbf{A}$, the fact that $\mathbf{W}_{\lambda}$ is non-random, and $ \mbox{Var}[\hat{\beta} ] = \sigma^2 (\mathbf{X}^{\top} \mathbf{X})^{-1}$. - - -Like the expectation the variance of the ridge estimator vanishes as $\lambda$ tends to infinity: -\begin{align*} -\lim_{\lambda \rightarrow \infty} \mbox{Var} \big[ \hat{\beta}(\lambda) \big] & = \lim_{\lambda \rightarrow \infty} \sigma^2 \mathbf{W}_{\lambda} (\mathbf{X}^{\top} \mathbf{X})^{-1} \mathbf{W}_{\lambda}^{\top} \, \, \, = \, \, \, \mathbf{0}_{pp}. -\end{align*} -Hence, the variance of the ridge regression coefficient estimates decreases towards zero as the penalty parameter becomes large. This is illustrated in the right panel of Figure ref{fig.ridgeSolPathPlusVar} for the data of Example ref{example.supercollinearity}. - - -With an explicit expression of the variance of the ridge estimator at hand, we can compare it to that of the OLS estimator: -\begin{align*} -\mbox{Var}[ \hat{\beta} ] - \mbox{Var}[ \hat{\beta}(\lambda) ] & = \sigma^2 [(\mathbf{X}^{\top} \mathbf{X})^{-1} - \mathbf{W}_{\lambda} (\mathbf{X}^{\top} \mathbf{X})^{-1} \mathbf{W}_{\lambda}^{\top} ] -\\ -& = \sigma^2 \mathbf{W}_{\lambda} \{ [\mathbf{I} + \lambda (\mathbf{X}^{\top} \mathbf{X})^{-1} ] (\mathbf{X}^{\top} \mathbf{X})^{-1} [\mathbf{I} + \lambda (\mathbf{X}^{\top} \mathbf{X})^{-1} ]^{\top} - (\mathbf{X}^{\top} \mathbf{X})^{-1} \} \mathbf{W}_{\lambda}^{\top} -\\ -& = \sigma^2 \mathbf{W}_{\lambda} [ 2 \, \lambda \, (\mathbf{X}^{\top} \mathbf{X})^{-2} + \lambda^2 (\mathbf{X}^{\top} \mathbf{X})^{-3} ] \mathbf{W}_{\lambda}^{\top} -\\ -& = \sigma^2 [ \mathbf{X}^{\top} \mathbf{X} + \lambda \mathbf{I}_{pp} ]^{-1} [ 2 \, \lambda \, \mathbf{I}_{pp} + \lambda^2 (\mathbf{X}^{\top} \mathbf{X})^{-1} ] \{ [ \mathbf{X}^{\top} \mathbf{X} + \lambda \mathbf{I}_{pp} ]^{-1}\}^{\top}. -\end{align*} -The difference is non-negative definite as each component in the matrix product is non-negative definite. Hence, the variance of the ML estimator exceeds (in the positive definite ordering) that of the ridge estimator: - -!bt - -!bt -\begin{align} label{form.VarInequalityMLandRidge} -\mbox{Var}[ \hat{\beta} ] & \succeq & \mbox{Var}[ \hat{\beta}(\lambda) ], -\end{align} -!et -!et -with the inequality being strict if $\lambda > 0$. In other words, the variance of the ML estimator is larger than that of the ridge estimator (in the sense that their difference is non-negative definite). The variance inequality (ref{form.VarInequalityMLandRidge}) can be interpreted in terms of the stochastic behaviour of the estimator. This is illustrated by the next example. - -# original latex figure with scale=0.45, angle=0 - -FIGURE: [varMLellipses.eps, width=400 frac=1.0] Level sets of the distribution of the ML (left panel) and ridge (right panel) regression estimators.} label{fig.varOLSandRidge -# \afterpage{} - - -\begin{example} *Variance comparison* -\\ -Consider the design matrix: -\begin{align*} -\mathbf{X} & = \left( -\begin{array}{rr} --1 & 2 -\\ -0 & 1 -\\ -2 & -1 -\\ -1 & 0 -\end{array} \right). -\end{align*} -The variances of the ML and ridge (with $\lambda=1$) estimates of the regression coefficients then are: -\begin{align*} -\mbox{Var}(\hat{\beta}) & = \sigma^2 \left( -\begin{array}{rr} -0.3 & 0.2 -\\ -0.2 & 0.3 -\end{array} \right) -\qquad \mbox{and} \qquad -\mbox{Var}[\hat{\beta}(\lambda)] \, \, \, = \, \, \, \sigma^2 \left( -\begin{array}{rr} -0.1524 & 0.0698 -\\ -0.0698 & 0.1524 -\end{array} \right). -\end{align*} -These variances can be used to construct levels sets of the distribution of the estimates. The level sets that contain 50\%, 75\% and 95\% of the distribution of the ML and ridge estimates are plotted in Figure ref{fig.varOLSandRidge}. In line with inequality (ref{form.VarInequalityMLandRidge}) the level sets of the ridge estimate are smaller than that of the ML estimate: it thus varies less. -\end{example} - - - - -\begin{contexample}_ref{example.orthoronormalDesign_} *Orthonormal design matrix (continued)* -\\ -Assume the design matrix $\mathbf{X}$ is orthonormal. Then, $\mbox{Var}[ \hat{\beta} ] = \sigma^2 \mathbf{I}_{pp}$ and -\begin{align*} -\mbox{Var}[ \hat{\beta}(\lambda) ] & = \sigma^2 \mathbf{W}_{\lambda} (\mathbf{X}^{\top} \mathbf{X})^{-1} \mathbf{W}_{\lambda}^{\top} -\, \, \, = \, \, \, \sigma^2 [\mathbf{I}_{pp} + \lambda \mathbf{I}_{pp} ]^{-1} \mathbf{I}_{pp} \{ [\mathbf{I}_{pp} + \lambda \mathbf{I}_{pp} ]^{-1} \}^{\top} -\, \, \, = \, \, \, \sigma^2 (1 + \lambda )^{-2} \mathbf{I}_{pp} . -\end{align*} -As the penalty parameter $\lambda$ is non-negative the former exceeds the latter. In particular, this expression vanishes as $\lambda \rightarrow \infty$. -\end{contexample} - -# #if FORMAT in ("latex", "pdflatex") -\noindent -# #endif -The full distribution of the ridge regression estimator is now known. The estimator, $\hat{\beta}(\lambda) = (\mathbf{X}^{\top} \mathbf{X} + \lambda \mathbf{I}_{pp})^{-1} \mathbf{X}^{\top} \mathbf{Y}$ is a linear estimator, linear in $\mathbf{Y}$. As $\mathbf{Y}$ is normally distributed, so is $\hat{\beta}(\lambda)$. Moreover, the normal distribution is fully characterized by its first two moments, which are available. Hence: -\begin{align*} -\hat{\beta}(\lambda) & \sim & \mathcal{N} \big( (\mathbf{X}^{\top} \mathbf{X} + \lambda \mathbf{I}_{pp})^{-1} \mathbf{X}^{\top} \mathbf{X} \, \beta, \sigma^2 [ \mathbf{X}^{\top} \mathbf{X} + \lambda \mathbf{I}_{pp} ]^{-1} \mathbf{X}^{\top} \mathbf{X} \{ [ \mathbf{X}^{\top} \mathbf{X} + \lambda \mathbf{I}_{pp} ]^{-1}\}^{\top} \big). -\end{align*} -Given $\lambda$ and $\beta$, the random behavior of the estimator is thus known. - - - -===== Mean squared error} label{sect:ridgeMSE ===== -Previously, we motivated the ridge estimator as an ad hoc solution to collinearity. An alternative motivation comes from studying the Mean Squared Error (MSE) of the ridge regression estimator: for a suitable choice of $\lambda$ the ridge regression estimator may outperform the ML regression estimator in terms of the MSE. Before we prove this, we first derive the MSE of the ridge estimator and quote some auxiliary results. - -Recall that (in general) for any estimator of a parameter $\theta$: -\begin{align*} -\mbox{MSE}( \hat{\theta} ) & = \mathbb{E} [ ( \hat{\theta} - \theta)^2 ] -\, \, \, = \, \, \, \mbox{Var}( \hat{ \theta} ) + [\mbox{Bias} ( \hat{\theta} )]^2. -\end{align*} -Hence, the MSE is a measure of the quality of the estimator. - -The MSE of the ridge estimator is: - -!bt - -!bt -\begin{align} -\mbox{MSE}[\hat{\beta}(\lambda)] & = \mathbb{E} [ (\mathbf{W}_{\lambda} \, \hat{\beta} - \beta)^{\top} \, (\mathbf{W}_{\lambda} \, \hat{\beta} - \beta) ] \nonumber -\\ -& = \mathbb{E} ( \hat{\beta}^{\top} \mathbf{W}_{\lambda}^{\top} \,\mathbf{W}_{\lambda} \, \hat{\beta} ) - \mathbb{E} ( \beta^{\top} \, \mathbf{W}_{\lambda} \, \hat{\beta}) - \mathbb{E} ( \hat{\beta}^{\top} \mathbf{W}_{\lambda}^{\top} \, \beta) + \mathbb{E} ( \beta^{\top} \beta) \nonumber -\\ -& = \mathbb{E} ( \hat{\beta}^{\top} \mathbf{W}_{\lambda}^{\top} \,\mathbf{W}_{\lambda} \, \hat{\beta} ) - \mathbb{E} ( \beta^{\top} \, \mathbf{W}_{\lambda}^{\top} \mathbf{W}_{\lambda} \, \hat{\beta}) - \mathbb{E} ( \hat{\beta}^{\top} \mathbf{W}_{\lambda}^{\top} \, \mathbf{W}_{\lambda} \beta) + \mathbb{E} ( \beta^{\top} \mathbf{W}_{\lambda}^{\top} \,\mathbf{W}_{\lambda} \, \beta ) \nonumber -\\ -& & - \mathbb{E} ( \beta^{\top} \mathbf{W}_{\lambda}^{\top} \,\mathbf{W}_{\lambda} \, \beta ) + \mathbb{E} ( \beta^{\top} \, \mathbf{W}_{\lambda}^{\top} \mathbf{W}_{\lambda} \, \hat{\beta}) + \mathbb{E} ( \hat{\beta}^{\top} \mathbf{W}_{\lambda}^{\top} \, \mathbf{W}_{\lambda} \beta) \nonumber -\\ -& & - \mathbb{E} ( \beta^{\top} \, \mathbf{W}_{\lambda} \, \hat{\beta}) - \mathbb{E} ( \hat{\beta}^{\top} \mathbf{W}_{\lambda}^{\top} \, \beta) + \mathbb{E} ( \beta^{\top} \beta) \nonumber -\\ -& = \mathbb{E} [ ( \hat{\beta} - \beta )^{\top} \mathbf{W}_{\lambda}^{\top} \, \mathbf{W}_{\lambda} \, (\hat{\beta} - \beta) ] \nonumber -\\ -& & - \beta^{\top} \mathbf{W}_{\lambda}^{\top} \,\mathbf{W}_{\lambda} \, \beta + \beta^{\top} \, \mathbf{W}_{\lambda}^{\top} \mathbf{W}_{\lambda} \, \beta + \beta^{\top} \mathbf{W}_{\lambda}^{\top} \, \mathbf{W}_{\lambda} \beta \nonumber -\\ -& & - \beta^{\top} \, \mathbf{W}_{\lambda} \, \beta - \beta^{\top} \mathbf{W}_{\lambda}^{\top} \, \beta + \beta^{\top} \beta \nonumber -\\ -& = \mathbb{E} \big\{ ( \hat{\beta} - \beta )^{\top} \mathbf{W}_{\lambda}^{\top} \, \mathbf{W}_{\lambda} \, (\hat{\beta} - \beta) \big\} + \beta^{\top} (\mathbf{W}_{\lambda} - \mathbf{I}_{pp})^{\top} (\mathbf{W}_{\lambda} - \mathbf{I}_{pp}) \, \beta \nonumber -\\ -& = \sigma^2 \, \mbox{tr}\big\{ \mathbf{W}_{\lambda} \, (\mathbf{X}^{\top} \mathbf{X})^{-1} \, \mathbf{W}_{\lambda}^{\top} \big\} + \beta^{\top} (\mathbf{W}_{\lambda} - \mathbf{I}_{pp})^{\top} (\mathbf{W}_{\lambda} - \mathbf{I}_{pp}) \, \beta. label{form.ridgeMSE} -\end{align} -!et -!et -In the last step we have used $\hat{\beta} \sim \mathcal{N}( \beta, \sigma^2 \, [\mathbf{X}^{\top} \mathbf{X}]^{-1} )$ and the expectation of the quadratic form of a multivariate random variable $\vvarepsilon \sim \mathcal{N}(\mmu_{\varepsilon}, \SSigma_{\varepsilon})$ for some nonrandom symmetric positive definite matrix $\LLambda$ is (cf. \citealt{Math1992}): -\begin{align*} -\mathbb{E} ( \vvarepsilon^{\top} \, \LLambda \, \vvarepsilon) & = \mbox{tr} ( \LLambda \, \SSigma_{\varepsilon}) + \mmu_{\varepsilon}^{\top} \, \LLambda \, \mmu_{\varepsilon}, -\end{align*} -of course replacing $\vvarepsilon$ by $\hat{\beta}$ in this expectation. The first summand in the final derived expression for $\mbox{MSE}[\hat{\beta}(\lambda)]$ is the sum of the variances of the ridge estimator, while the second summand can be thought of the ``squared bias'' of the ridge estimator. In particular, $\lim_{\lambda \rightarrow \infty} \mbox{MSE}[\hat{\beta}(\lambda)] = \beta^{\top} \beta$, which is the squared biased for an estimator that equals zero (as does the ridge estimator in the limit). - - - -\begin{example} *Orthonormal design matrix* -\\ -Assume the design matrix $\mathbf{X}$ is orthonormal. Then, $\mbox{MSE}[ \hat{\beta} ] = p \, \sigma^2$ and -\begin{align*} -\mbox{MSE}[ \hat{\beta}(\lambda) ] & = \frac{p \, \sigma^2}{ (1+ \lambda)^{2}} + \frac{\lambda^2}{ (1+ \lambda)^{2}} \beta^{\top} \beta. -\end{align*} -The latter achieves its minimum at: $\lambda = p \sigma^2 / \beta^{\top} \beta$. -\end{example} - - - -The following theorem and proposition are required for the proof of the main result. - -\begin{theorem} *(Theorem 1 of \citealp{Theo1974*}) label{theo.Theobald1} -\\ -Let $\hat{\ttheta}_1$ and $\hat{\ttheta}_2$ be (different) estimators of $\ttheta$ with second order moments: -\begin{align*} -\mathbf{M}_k & = \mathbb{E} [ (\hat{\ttheta}_k - \ttheta) (\hat{\ttheta}_k - \ttheta)^{\top} ] \qquad \mbox{for } k=1,2, -\end{align*} -and -\begin{align*} -\mbox{MSE}(\hat{\ttheta}_k) & = \mathbb{E} [ (\hat{\ttheta}_k - \ttheta)^{\top} \mathbf{A} (\hat{\ttheta}_k - \ttheta) ] \qquad \mbox{for } k=1,2, -\end{align*} -where $\mathbf{A} \succeq 0$. Then, $\mathbf{M}_1 - \mathbf{M}_2 \succeq 0$ if and only if $\mbox{MSE}(\hat{\ttheta}_1) - \mbox{MSE}(\hat{\ttheta}_2) \geq 0$ for all $\mathbf{A} \succeq 0$. -\end{theorem} - - -\begin{proposition} *(\citealp{Fare1976*}) label{prop.Farebrother} -\\ -Let $\mathbf{A}$ be a $(p \times p)$-dimensional, positive definite matrix, $\mathbf{b}$ be a nonzero $p$ dimensional vector, and $c \in \mathbb{R}_+$. Then, $c \mathbf{A} - \mathbf{b} \mathbf{b}^{\top} \succ 0$ if and only if $\mathbf{b}^{\top} \mathbf{A}^{-1} \mathbf{b} > c$. -\end{proposition} - -We are now ready to proof the main result, formalized as Theorem ref{theo.Theobald2}, that for some $\lambda$ the ridge regression estimator yields a lower MSE than the ML regression estimator. - -\begin{theorem} *(Theorem 2 of \citealp{Theo1974*}) label{theo.Theobald2} -\\ -There exists $\lambda > 0$ such that $\mbox{MSE}[\hat{\beta}(\lambda)] < \mbox{MSE}[\hat{\beta}(0)] = \mbox{MSE}[\hat{\beta}]$. -\end{theorem} - -\begin{proof} -The second order moment matrix of the ridge estimator is: -\begin{align*} -\mathbf{M} (\lambda) & := & \mathbb{E} [ (\hat{\beta}(\lambda) - \beta) (\hat{\beta} (\lambda) - \beta)^{\top} ] -\\ -& = \mathbb{E} \{ \hat{\beta}(\lambda) [\hat{\beta}(\lambda)]^{\top} \} - \mathbb{E} [ \hat{\beta}(\lambda) ] \{ \mathbb{E} [ \hat{\beta}(\lambda) ] \}^{\top} + \mathbb{E} [\hat{\beta} (\lambda) - \beta)] \{ \mathbb{E} [\hat{\beta} (\lambda) - \beta)] \}^{\top} -\\ -& = \mbox{Var}[ \hat{\beta}(\lambda) ] + \mathbb{E} [\hat{\beta} (\lambda) - \beta)] \{ \mathbb{E} [\hat{\beta} (\lambda) - \beta)] \}^{\top}. -\end{align*} -Then: -\begin{align*} -\mathbf{M} ( 0 ) - \mathbf{M}(\lambda) & = \sigma^2 (\mathbf{X}^{\top} \mathbf{X})^{-1} - \sigma^2 \mathbf{W}_{\lambda} (\mathbf{X}^{\top} \mathbf{X})^{-1} \mathbf{W}_{\lambda}^{\top} ] -\\ -& & - (\mathbf{W}_{\lambda} - \mathbf{I}_{pp}) \beta \beta^{\top} (\mathbf{W}_{\lambda} -\mathbf{I}_{pp})^{\top} -\\ -& = \sigma^2 \mathbf{W}_{\lambda} [ 2 \, \lambda \, (\mathbf{X}^{\top} \mathbf{X})^{-2} + \lambda^2 (\mathbf{X}^{\top} \mathbf{X})^{-3} ] \mathbf{W}_{\lambda}^{\top} -\\ -& & - \lambda^2 [ \mathbf{X}^{\top} \mathbf{X} + \lambda \mathbf{I}_{pp}]^{-1} \beta \beta^{\top} \{ [ \mathbf{X}^{\top} \mathbf{X} + \lambda \mathbf{I}_{pp}]^{-1} \}^{\top} -\\ -& = \sigma^2 [ \mathbf{X}^{\top} \mathbf{X} + \lambda \mathbf{I}_{pp}]^{-1} [ 2 \, \lambda \, \mathbf{I}_{pp} + \lambda^2 (\mathbf{X}^{\top} \mathbf{X})^{-1} ] \{ [ \mathbf{X}^{\top} \mathbf{X} + \lambda \mathbf{I}_{pp}]^{-1} \}^{\top} -\\ -& & - \lambda^2 [ \mathbf{X}^{\top} \mathbf{X} + \lambda \mathbf{I}_{pp}]^{-1} \beta \beta^{\top} \{ [ \mathbf{X}^{\top} \mathbf{X} + \lambda \mathbf{I}_{pp}]^{-1} \}^{\top} -\\ -& = \lambda [ \mathbf{X}^{\top} \mathbf{X} + \lambda \mathbf{I}_{pp}]^{-1} [ 2 \, \sigma^2 \, \mathbf{I}_{pp} + \lambda \sigma^2 (\mathbf{X}^{\top} \mathbf{X})^{-1} - \lambda \beta \beta^{\top} ] \{ [ \mathbf{X}^{\top} \mathbf{X} + \lambda \mathbf{I}_{pp}]^{-1} \}^{\top}. -\end{align*} -This is positive definite if and only if $ 2 \, \sigma^2 \, \mathbf{I}_{pp} + \lambda \sigma^2 (\mathbf{X}^{\top} \mathbf{X})^{-1} - \lambda \beta \beta^{\top} \succ 0$. Hereto it suffices to show that $2 \, \sigma^2 \, \mathbf{I}_{pp} - \lambda \beta \beta^{\top} \succ 0$. By Proposition ref{prop.Farebrother} this holds for $\lambda$ such that $2 \sigma^2 (\beta^{\top} \beta)^{-1} > \lambda$. For these $\lambda$, we thus have $\mathbf{M} ( 0 ) - \mathbf{M}(\lambda)$. Application of Theorem ref{theo.Theobald1} now concludes the proof. -\end{proof} -This result of cite{Theo1974} is generalized by cite{Fare1976} to the class of design matrices $\mathbf{X}$ with $\mbox{rank}(\mathbf{X}) < p$. -\\ -\\ -Theorem ref{theo.Theobald2} can be used to illustrate that the ridge regression estimator strikes a balance between the bias and variance. This is illustrated in the left panel of Figure ref{fig.MSEridge}. For small $\lambda$, the variance of the ridge estimator dominates the MSE. This may be understood when realizing that in this domain of $\lambda$ the ridge estimator is close to the unbiased ML regression estimator. For large $\lambda$, the variance vanishes and the bias dominates the MSE. For small enough values of $\lambda$, the decrease in variance of the ridge regression estimator exceeds the increase in its bias. As the MSE is the sum of these two, the MSE first decreases as $\lambda$ moves away from zero. In particular, as $\lambda = 0$ corresponds to the ML regression estimator, the ridge regression estimator yields a lower MSE for these values of $\lambda$. In the right panel of Figure ref{fig.MSEridge} $\mbox{MSE}[ \hat{\beta}(\lambda)] < \mbox{MSE}[ \hat{\beta}(0)]$ for $\lambda < 7$ (roughly) and the ridge estimator outperforms the ML estimator. -# original latex figure with scale=0.45, angle=0 - -FIGURE: [MSE_ridge.eps, width=400 frac=1.0] Left panel: mean squared error, and its `bias' and `variance' parts, of the ridge regression estimator (for artificial data). Right panel: mean squared error of the ridge and ML estimator of the regression coefficient vector (for the same artificial data).} label{fig.MSEridge -# \afterpage{} -\\ -\\ -# #if FORMAT in ("latex", "pdflatex") -\noindent -# #endif -Besides another motivation behind the ridge regression estimator, the use of Theorem ref{theo.Theobald2} is limited. The optimal choice of $\lambda$ depends on the quantities $\beta$ and $\sigma^2$. These are unknown in practice. Then, the penalty parameter is chosen in a data-driven fashion by means of cross-validation (see Section ref{subsect.crossvalidation}). -\\ -\\ -\begin{remark} \mbox{ } -\\ -Theorem ref{theo.Theobald2} can also be used to conclude on the biasedness of the ridge regression estimator. The Gauss-Markov theorem \citep{Rao1973} states (under some assumptions) that the ML regression estimator is the best linear unbiased estimator (BLUE) with the smallest MSE. As the ridge regression estimator is a linear estimator and outperforms (in terms of MSE) this ML estimator, it must be biased (for it would otherwise refute the Gauss-Markov theorem). -\end{remark} - - - - -======= Constrained estimation} label{sect.constrainedEstimation ======= -The ad-hoc fix of cite{Hoer1970} to super-collinearity of the design matrix (and, consequently the singularity of the matrix $\mathbf{X}^{\top} \mathbf{X}$) has been motivated post-hoc. -The ridge estimator minimizes the *ridge loss function*, which is defined as: - -!bt - -!bt -\begin{align} -\mathcal{L}_{\mbox{{\footnotesize ridge}}}(\beta; \lambda) & = \| \mathbf{Y} - \mathbf{X} \, \beta \|^2_2 + \lambda \| \beta \|^2_2 -\, \, \, = \, \, \, \sum_{i=1}^n (Y_i - \mathbf{X}_{i\ast} \, \beta)^2 + \lambda \sum_{j=1}^p \beta_j^2. label{form.ridgeLossFunction} -\end{align} -!et -!et -This loss function is the traditional sum-of-squares augmented with a *penalty*. The particular form of the penalty, $\lambda \| \beta \|^2_2$ is referred to as the *ridge penalty* and $\lambda$ as the *penalty parameter*. For $\lambda=0$, minimization of the ridge loss function yields the ML estimator. For any $\lambda > 0$, the ridge penalty contributes to the loss function, affecting its minimum and its location. The minimum of the sum-of-squares is well-known. The minimum of the ridge penalty is attained at $\beta = \mathbf{0}_{p}$ whenever $\lambda > 0$. The $\beta$ that minimizes $\mathcal{L}_{\mbox{{\footnotesize ridge}}}(\beta; \lambda)$ then balances the sum-of-squares and the penalty. The effect of the penalty in this balancing act is to shrink the regression coefficients towards zero, its minimum. In particular, the larger $\lambda$, the larger the contribution of the penalty to the loss function, the stronger the tendency to shrink non-zero regression coefficients to zero (and decrease the contribution of the penalty to the loss function). This motivates the name `penalty' as non-zero elements of $\beta$ increase (or penalize) the loss function. - - -To verify that the ridge estimator indeed minimizes the ridge loss function, proceed as usual. Take the derivative with respect to $\beta$: -\begin{align*} -\frac{\partial}{\partial \beta} \mathcal{L}_{\mbox{{\footnotesize ridge}}}(\beta; \lambda) & = -2 \, \mathbf{X}^{\top} (\mathbf{Y} - \mathbf{X} \beta) + 2 \, \lambda \, \mathbf{I}_{pp} \, \beta \, \, \, = \, \, \, -2 \, \mathbf{X}^{\top} \mathbf{Y} + 2 \, ( \mathbf{X}^{\top} \mathbf{X} + \lambda \, \mathbf{I}_{pp}) \beta. -\end{align*} -Equate the derivative to zero and solve for $\beta$. This yields the ridge regression estimator. - -The ridge estimator is thus a stationary point of the ridge loss function. A stationary point corresponds to a minimum if the Hessian matrix with second order partial derivatives is positive definite. The Hessian of the ridge loss function is -\begin{align*} -\frac{\partial^2}{\partial \beta \, \partial \beta^{\top}} \mathcal{L}_{\mbox{{\footnotesize ridge}}}(\beta; \lambda) & = 2 \, ( \mathbf{X}^{\top} \mathbf{X} + \lambda \, \mathbf{I}_{pp}). -\end{align*} -This Hessian is the sum of the semi-positive definite matrix $\mathbf{X}^{\top} \mathbf{X}$ and the positive definite matrix $\lambda \, \mathbf{I}_{pp}$. Lemma 14.2.4 of cite{Harv2008} then states that the sum of these matrices is itself a positive definite matrix. Hence, the Hessian is positive definite and the ridge loss function has a stationary point at the ridge estimator, which is a minimum. - -The ridge regression estimator minimizes the ridge loss function. It rests to verify that it is a global minimum. To this end we introduce the concept of a convex function. As a prerequisite, a set $\mathcal{S} \subset \mathbb{R}^p$ is called *convex* if for all $\beta_1, \beta_2 \in \mathcal{S}$ their weighted average $\beta_{\theta} = (1 - \theta) \beta_1 + \theta \beta_2$ for all $\theta \in [0, 1]$ is itself an element of $\mathcal{S}$, thus $\beta_{\theta} \in \mathcal{S}$. If for all $\theta \in (0, 1)$, the weighted average $\beta_{\theta}$ is inside $\mathcal{S}$ and not on its boundary, the set is called *strict convex*. Examples of (strict) convex and nonconvex sets are depicted in Figure ref{fig.ridgeAsConstrainedEst}. A function $f(\cdot)$ is *(strict) convex* if the set $\{ y \, : \, y \geq f(\beta) \mbox{ for all } \beta \in \mathcal{S} \mbox{ for any convex } \mathcal{S} \}$, called the epigraph of $f(\cdot)$, is (strict) convex. Examples of (strict) convex and nonconvex functions are depicted in Figure ref{fig.ridgeAsConstrainedEst}. The ridge loss function is the sum of two parabola's: one at least convex and the other a strict convex function in $\beta$. The sum of convex and strict convex function is itself strict convex (confer Lemma 9.4.2 of \citealt{Flet2008}). The ridge loss function is thus strict convex. Theorem 9.4.1 of \citealt{Flet2008} then warrants, by the strict convexity of the ridge loss function, that the ridge estimator is a global minimum. -\\ -\\ -From the ridge loss function the limiting behavior of the variance of the ridge regression estimator can be understood. The ridge penalty with its minimum $\beta = \mathbf{0}_{p}$ does not involve data and, consequently, the variance of its minimum equals zero. With the ridge regression being a compromise between the ML estimator and the minimum of the penalty, so is its variance a compromise of their variances. As $\lambda$ tends to infinity, the ridge estimator and its variance converge to the minimum and the variance of the minimum, respectively. Hence, in the limit (large $\lambda$) the variance of the ridge regression estimator vanishes. Understandably, as the penalty now fully dominates the loss function and, consequently, it does no longer involve data (i.e. randomness). -# original latex figure with scale=0.38, angle=0 - -FIGURE: [convexSets.eps, width=400 frac=1.0] Top panels show examples of convex (left) and nonconvex (right) sets. Middle panels show examples of convex (left) and nonconvex (right) functions. The left bottom panel illustrates the ridge estimation as a constrained estimation problem. The ellipses represent the contours of the ML loss function, with the blue dot at the center the ML estimate. The circle is the ridge parameter constraint. The red dot is the ridge estimate. It is at the intersection of the ridge constraint and the smallest contour with a non-empty intersection with the constraint. The right bottom panel shows the data corresponding to Example ref{exam.overfitting}. The grey line represents the `true' relationship, while the black line the fitted one. } label{fig.ridgeAsConstrainedEst -\afterpage{} -\\ -\\ -Above it has been shown that the ridge estimator can be defined as: - -!bt - -!bt -\begin{align} label{form.ridgeEstViaPenEst} -\hat{\beta}(\lambda) & = \arg \min_{\beta} \| \mathbf{Y} - \mathbf{X} \, \beta \|^2_2 + \lambda \| \beta \|^2_2. -\end{align} -!et -!et -This minimization problem can be reformulated into the following constrained optimization problem (illustrated in Figure ref{fig.ridgeAsConstrainedEst}): - -!bt - -!bt -\begin{align} label{form.constrEstProblemRidge} -\hat{\beta}(\lambda) & = \arg \min_{\| \beta \|_2^2 \leq c} \| \mathbf{Y} - \mathbf{X} \, \beta \|^2_2, -\end{align} -!et -!et -for some suitable $c > 0$. The constrained optimization problem (ref{form.constrEstProblemRidge}) can be solved by means of the Karush-Kuhn-Tucker (KKT) multiplier method, which minimizes a function subject to inequality constraints. The KKT multiplier method states that, under some regularity conditions (all met here), there exists a constant $\nu \geq 0$, called the *multiplier*, such that the solution $\hat{\beta}(\nu)$ of the constrained minimization problem (ref{form.constrEstProblemRidge}) satisfies the so-called KKT conditions. The first KKT condition (referred to as the stationarity condition) demands that the gradient (with respect to $\beta$) of the Lagrangian associated with the minimization problem equals zero at the solution $\hat{\beta}(\nu)$. The Lagrangian for problem (ref{form.constrEstProblemRidge}) is: -\begin{align*} -\| \mathbf{Y} - \mathbf{X} \, \beta \|^2_2 + \nu ( \| \beta \|^2_2 - c). -\end{align*} -The second KKT condition (the complementarity condition) requires that $\nu (\| \hat{\beta}(\nu) \|_2^2 - c) = 0$. If $\nu = \lambda$ and $c = \| \hat{\beta}(\lambda) \|_2^2$, the ridge estimator $\beta (\lambda)$ satisfies both KKT conditions. Hence, both problems have the same solution when $c = \| \hat{\beta}(\lambda) \|_2^2$. -\\ -\\ -The relevance of viewing the ridge regression estimator as the solution to a constrained estimation problem becomes obvious when considering a typical threat to high-dimensional data analysis: overfitting. *Overfitting* refers to the phenomenon of modelling the noise rather than the signal. In case the true model is parsimonious (few covariates driving the response) and data on many covariates are available, it is likely that a linear combination of all covariates yields a higher likelihood than a combination of the few that are actually related to the response. As only the few covariates related to the response contain the signal, the model involving all covariates then cannot but explain more than the signal alone: it also models the error. Hence, it overfits the data. In high-dimensional settings overfitting is a real threat. The number of explanatory variables exceeds the number of observations. It is thus possible to form a linear combination of the covariates that perfectly explains the response, including the noise. - -Large estimates of regression coefficients are often an indication of overfitting. Augmentation of the estimation procedure with a constraint on the regression coefficients is a simple remedy to large parameter estimates. As a consequence it decreases the probability of overfitting. Overfitting is illustrated in the next example. - - -\begin{example} *(Overfitting)* label{exam.overfitting} -\\ -Consider an artificial data set comprising of ten observations on a response $Y_i$ and nine covariates $X_{i,j}$. All covariate data are sampled from the standard normal distribution: $X_{i,j} \sim \mathcal{N}(0, 1)$. The response is generated by $Y_i = X_{i,1} + \varepsilon_i$ with $\varepsilon_{i} \sim \mathcal{N}(0, 1/4)$. Hence, only the first covariate contributes to the response. - -The regression model $Y_i = \sum_{j=1}^9 X_{i,j} \beta_j+ \varepsilon_i$ is fitted to the artificial data using `R`. This yields the regression parameter estimates: -\begin{align*} -\hat{\beta}^{\top} & = (0.048, -2.386, -5.528, 6.243, -4.819, 0.760, -3.345, -4.748, 2.136). -\end{align*} -As $\beta^{\top} = (1, 0, \ldots, 0)$, many regression coefficient are clearly over-estimated. - -The fitted values $\widehat{Y}_i = \mathbf{X}_i \hat{\beta}$ are plotted against the values of the first covariates in the right bottom panel of Figure ref{fig.ridgeAsConstrainedEst}. As a reference the line $x=y$ is added, which represents the `true' model. The fitted model follows the `true' relationship. But it also captures the deviations from this line that represent the errors. -\end{example} - - - -======= Bayesian regression} label{sect:Bayes ======= -Ridge regression has a close connection to Bayesian linear regression. Bayesian linear regression assumes the parameters $\beta$ and $\sigma^2$ to be the random variables, while at the same time considering $\mathbf{X}$ and $\mathbf{Y}$ as fixed. Within the regression context, the conjugate priors of $\beta$ and $\sigma^2$ are: -\begin{align*} -\beta \, | \, \sigma^2 \sim \mathcal{N}(\mathbf{0}_p, \sigma^2 \lambda^{-1} \mathbf{I}_{pp}) \qquad \mbox{and} \qquad \sigma^2 \sim \mathcal{IG}(\alpha_0, \beta_0), -\end{align*} -where $\mathcal{IG}$ denotes the inverse Gamma distribution with shape parameter $\alpha_0$ and scale parameter $\beta_0$. The penalty parameter can be interpreted as the precision of the prior, determining how informative the prior should be. A smaller penalty (i.e. precision) corresponds to a wider prior, and a larger penalty to a more informative, concentrated prior (Figure ref{fig.ridgePriorOfBeta}). -# original latex figure with scale=0.45, angle=0 - -FIGURE: [ridgePriorOfBeta.eps, width=400 frac=1.0] Conjugate prior of the regression parameter $\beta$ for various choices of $\lambda$, the penalty parameters c.q. precision.} label{fig.ridgePriorOfBeta - -Under the assumption of the conjugate priors above, the joint posterior distribution of $\beta$ and $\sigma^2$ is then: -\begin{align*} -f_{\beta, \sigma^2} (\beta, \sigma^2 \, | \, \mathbf{Y}, \mathbf{X}) & = f_Y (\mathbf{Y} \, | \, \mathbf{X}, \beta, \sigma^2) \, f_{\beta}(\beta | \sigma^2) \, f_{\sigma}(\sigma^2) -\\ -& \propto & \sigma^{-n} \exp \Big[ - \frac{1}{2\sigma^2} ( \mathbf{Y} - \mathbf{X} \beta)^{\top} ( \mathbf{Y} - \mathbf{X} \beta) \Big] -\\ -& & \times \, \, \sigma^{-p} \exp \Big[ - \frac{1}{2\sigma^2} \lambda \beta^{\top} \beta \Big] \, \times \, \, [\sigma^2]^{-\alpha_0-1} \exp \Big[ - \frac{\beta_0}{2\sigma^2} \Big]. -\end{align*} -As -\begin{align*} -& & \hspace{-1.5cm} ( \mathbf{Y} - \mathbf{X} \beta)^{\top} ( \mathbf{Y} - \mathbf{X} \beta) + \lambda \beta^{\top} \beta -\\ -& = \mathbf{Y}^{\top} \mathbf{Y} - -\beta^{\top} \mathbf{X}^{\top} \mathbf{Y} - \mathbf{Y}^{\top} \mathbf{X} \beta + \beta^{\top} \mathbf{X}^{\top} \mathbf{X} \beta + \lambda \beta^{\top} \beta -\\ -& = \mathbf{Y}^{\top} \mathbf{Y} - \beta^{\top} (\mathbf{X}^{\top} \mathbf{X} + \lambda \mathbf{I}_{pp}) (\mathbf{X}^{\top} \mathbf{X} + \lambda \mathbf{I}_{pp})^{-1} \mathbf{X}^{\top} \mathbf{Y} -\\ -& & - \, \mathbf{Y}^{\top} \mathbf{X} (\mathbf{X}^{\top} \mathbf{X} + \lambda \mathbf{I}_{pp})^{-1} (\mathbf{X}^{\top} \mathbf{X} + \lambda \mathbf{I}_{pp}) \beta + \beta^{\top} (\mathbf{X}^{\top} \mathbf{X} + \lambda \mathbf{I}_{pp}) \beta -\\ -& = \mathbf{Y}^{\top} \mathbf{Y} - \beta^{\top} (\mathbf{X}^{\top} \mathbf{X} + \lambda \mathbf{I}_{pp}) -\hat{\beta} (\lambda) -\\ -& & - \, [ \hat{\beta} (\lambda) ]^{\top} (\mathbf{X}^{\top} \mathbf{X} + \lambda \mathbf{I}_{pp}) \beta + \beta^{\top} (\mathbf{X}^{\top} \mathbf{X} + \lambda \mathbf{I}_{pp}) \beta -\\ -& = \mathbf{Y}^{\top} \mathbf{Y} - \mathbf{Y}^{\top} \mathbf{X} (\mathbf{X}^{\top} \mathbf{X} + \lambda \mathbf{I}_{pp})^{-1} \mathbf{X}^{\top} \mathbf{Y} -\\ -& & + \, \big[ \beta - \hat{\beta}(\lambda) \big]^{\top} (\mathbf{X}^{\top} \mathbf{X} + \lambda \mathbf{I}_{pp}) \big[ \beta - \hat{\beta}(\lambda) \big], -\end{align*} -the posterior distribution can be rewritten to: -\begin{align*} -f_{\beta, \sigma^2} (\beta, \sigma^2 \, | \, \mathbf{Y}, \mathbf{X}) -& \propto & g_{\beta} (\beta \, | \, \sigma^2, \mathbf{Y}, \mathbf{X}) \, -g_{\sigma^2} (\sigma^2 \, | \, \mathbf{Y}, \mathbf{X}) -\end{align*} -with -\begin{align*} -g_{\beta} (\beta \, | \, \sigma^2, \mathbf{Y}, \mathbf{X}) -& \propto & \exp \Big\{ - \frac{1}{2\sigma^2} \big[ \beta - \hat{\beta}(\lambda) \big]^{\top} (\mathbf{X}^{\top} \mathbf{X} + \lambda \mathbf{I}_{pp}) \big[ \beta - \hat{\beta}(\lambda) \big] \Big\}. -\end{align*} -Then, clearly the conditional posterior mean of $\beta$ is $\mathbb{E}(\beta \, | \, \sigma^2, \mathbf{Y}, \mathbf{X}) = \hat{\beta}(\lambda)$. Hence, the ridge regression estimator can be viewed as the Bayesian posterior mean estimator of $\beta$ when imposing a Gaussian prior on the regression parameter. - -With little extra work we may also obtain the conditional posterior of $\sigma^2$ from the joint posterior distribution: -\begin{align*} -f_{\sigma^2} (\sigma^2 \, | \, \beta, \mathbf{Y}, \mathbf{X}) & \propto & (\sigma^2)^{-[(n+p)/2 + \alpha_0 + 1]} -\exp [ - \frac{1}{2\sigma^2} ( \| \mathbf{Y} - \mathbf{X} \beta \|_2^2 + -\lambda \| \beta \|_2^2 + \beta_0) ], -\end{align*} -in which one can recognize the shape of an inverse gamma distribution. -\\ -\\ -A Bayesian estimator of a parameter $\ttheta$ is the estimator that minimizes the Bayes risk over a prior distribution of the parameter $\ttheta$. The Bayes risk is defined as $\int_{\ttheta} \mathbb{E} [(\hat{\ttheta} - \ttheta)^{\top} (\hat{\ttheta} - \ttheta)] \pi_{\ttheta}(\ttheta; \aalpha) d\ttheta$, where $\pi_{\ttheta}(\ttheta; \aalpha)$ is the prior distribution of $\ttheta$ with hyperparameter $\aalpha$. It is thus a weighted average of the Mean Squared Error, with weights specified through the prior. The Bayes risk is minimized by the mean posterior $\mathbb{E}_{\ttheta}(\ttheta \, | \, \mbox{data})$ (cf., e.g., \citealp{Bijm2017}). The Bayesian estimator of $\ttheta$ thus yields the smallest possible expected MSE, under the assumption of the employed prior. - -The Bayes risk of the ridge estimator over the normal prior $\beta \sim \mathcal{N}(\mathbf{0}_p, \sigma^2 \lambda^{-1} \mathbf{I}_{pp})$ is: -\begin{align*} -\mathbb{E}_{\beta} \{\mbox{MSE}[\hat{\beta}(\lambda)] -\, | \, \sigma^2, \mathbf{Y}, \mathbf{X} \} & = \sigma^2 \, \mbox{tr}\big\{ \mathbf{W}_{\lambda} \, (\mathbf{X}^{\top} \mathbf{X})^{-1} \, \mathbf{W}_{\lambda}^{\top} \big\} + \mathbb{E}_{\beta} [ \beta^{\top} (\mathbf{W}_{\lambda} - \mathbf{I}_{pp})^{\top} (\mathbf{W}_{\lambda} - \mathbf{I}_{pp}) \, \beta] -\\ -& = \sigma^2 \, \big\{ \mbox{tr} \big[ \mathbf{W}_{\lambda} \, (\mathbf{X}^{\top} \mathbf{X})^{-1} \, \mathbf{W}_{\lambda}^{\top} \big] + -\lambda^{-1} \mbox{tr} [(\mathbf{W}_{\lambda} - \mathbf{I}_{pp})^{\top} (\mathbf{W}_{\lambda} - \mathbf{I}_{pp})] \big\} -\\ -& = \sigma^2 \sum_{j=1}^p (d_{jj}^2 + \lambda)^{-1}, -\end{align*} -in which we have used *i)* the previously derived explicit expression (ref{form.ridgeMSE}) of the ridge estimator's MSE, *ii)* the expectation of the quadratic form of a multivariate random variable \citep{Math1992}, *iii)* the singular value decomposition of $\mathbf{X}$ with singular values $d_{jj}$, and *iv)* the fact that the trace of a square matrix equals the sum of its eigenvalues. As the ridge estimator coincides with the posterior mean, this is the minimal achievable MSE under a zero-centered normal prior with an uncorrelated and equivariant covariance matrix. - -Above the Bayes risk of the ridge estimator factorizes with respect to $\sigma^2$ and $\lambda$. Hence, the larger the hyperparameter $\lambda$ the lower the Bayes risk of the ridge estimator. In particular, its Bayes risk converges to zero as $\lambda \rightarrow \infty$. This can be understood as follows. The limit corresponds to an infinite precision of the prior, thus reducing the variance contribution to the MSE. Moreover, as the ridge estimator shrinks towards zero and the prior distribution of $\beta$ has a zero mean, the bias too vanishes as $\lambda \rightarrow \infty$. - -The calculation of the Bayes risk above relates the Bayesian and frequentist statements on the MSE of the ridge estimator. For the latter revisit Theorem ref{theo.Theobald2} of Section ref{sect:ridgeMSE}, which states the existence of a $\lambda$ such that the resulting ridge estimator has a superior MSE over that of the ML estimator. This result made no assumption on (the distribution of) $\beta$. In fact, it can be viewed as a statement of the MSE conditional on $\beta$. The Bayesian result integrates out the uncertainty - specified by the prior - in $\beta$ from the (frequentist's) conditional MSE to arrive at the unconditional MSE. - - - -# The Bayesian result states that the ridge regression estimator minimizes the weighted MSE (over a normal prior on the parameter $\beta$). It thus integrates out the uncertainty in $\beta$ from the (frequentist's) conditional MSE to arrive at the unconditional MSE. - -======= Degrees of freedom ======= - -The degrees of freedom consumed by ridge regression is calculated. The degrees of freedom may be used in combination with an information criterion to decide on the value of the penalty parameter. Recall from ordinary regression that: -\begin{align*} -\widehat{\mathbf{Y}} & = \mathbf{X} (\mathbf{X}^{\top} \mathbf{X})^{-1} \mathbf{X}^{\top} \mathbf{Y} \, \, \, = \, \, \, \mathbf{H} \mathbf{Y}, -\end{align*} -where $\mathbf{H}$ is the hat matrix. The degrees of freedom used in the regression is then equal to $\mbox{tr}(\mathbf{H})$, the trace of $\mathbf{H}$. In particular, if $ \mathbf{X}$ is of full rank, i.e. $\mbox{rank}(\mathbf{X}) = p$, then $\mbox{tr}(\mathbf{H}) = p$. - -By analogy, the ridge-version of the hat matrix is: -\begin{align*} -\mathbf{H}(\lambda) & = \mathbf{X} (\mathbf{X}^{\top} \mathbf{X} + \lambda \mathbf{I}_{pp})^{-1} \mathbf{X}^{\top}. -\end{align*} -Continuing this analogy, the degrees of freedom of ridge regression is given by the trace of the ridge hat matrix $\mathbf{H}(\lambda)$: -\begin{align*} -\mbox{tr}[ \mathbf{H}(\lambda)] & = \mbox{tr}[ \mathbf{X} (\mathbf{X}^{\top} \mathbf{X} + \lambda \mathbf{I}_{pp})^{-1} \mathbf{X}^{\top} ] \, \, \, = \, \, \, \sum_{j=1}^p \frac{d_{jj}^2}{d_{jj}^2 + \lambda}. -\end{align*} -The degrees of freedom consumed by ridge regression is monotone decreasing in $\lambda$. In particular: -\begin{align*} -\lim_{\lambda \rightarrow \infty} \mbox{tr}[ \mathbf{H}(\lambda)] & = 0. -\end{align*} -That is, in the limit no information from $\mathbf{X}$ is used. Indeed, $\beta$ is forced to equal $\mathbf{0}_{p}$ which is not derived from data. - - - -======= Efficient calculation ======= - -In the high-dimensional setting the number of covariates $p$ is large compared to the number of samples $n$. In a microarray experiment $p = 40000$ and $n= 100$ is not uncommon. To perform ridge regression in this context, the following expression needs to be evaluated numerically: -\begin{align*} -(\mathbf{X}^{\top} \mathbf{X} + \lambda \mathbf{I}_{pp})^{-1} \mathbf{X}^{\top} \mathbf{Y}. -\end{align*} -For $p=40000$ this requires the inversion of a $40000 \times 40000$ dimensional matrix. This is not feasible on most desktop computers. However, there is a workaround. - -Revisit the singular value decomposition of $\mathbf{X} = \mathbf{U}_x \mathbf{D}_x \mathbf{V}_x^{\top}$ and write $\mathbf{R}_x = \mathbf{U}_x \mathbf{D}_x$. As both $\mathbf{U}_x$ and $\mathbf{D}_x$ are $(n \times n)$-dimensional matrices, so is $\mathbf{R}_x$. Consequently, $\mathbf{X}$ is now decomposed as $\mathbf{X} = \mathbf{R}_x \mathbf{V}_x^{\top}$. The ridge estimator can be rewritten in terms of $\mathbf{R}_x$ and $\mathbf{V}_x$: -\begin{align*} -\hat{\beta}(\lambda) & = (\mathbf{X}^{\top} \mathbf{X} + \lambda \mathbf{I}_{pp})^{-1} \mathbf{X}^{\top} \mathbf{Y} -\\ -& = (\mathbf{V}_x \mathbf{R}_x^{\top} \mathbf{R}_x \mathbf{V}_x^{\top} + \lambda \mathbf{I}_{pp})^{-1} \mathbf{V}_x \mathbf{R}_x^{\top} \mathbf{Y} -\\ -& = (\mathbf{V}_x \mathbf{R}_x^{\top} \mathbf{R}_x \mathbf{V}_x^{\top} + \lambda \mathbf{V}_x \mathbf{V}_x^{\top})^{-1} \mathbf{V}_x \mathbf{R}_x^{\top} \mathbf{Y} -\\ -& = \mathbf{V}_x (\mathbf{R}_x^{\top} \mathbf{R}_x + \lambda \mathbf{I}_{nn})^{-1} \mathbf{V}_x^{\top} \mathbf{V}_x \mathbf{R}_x^{\top} \mathbf{Y} -\\ -& = \mathbf{V}_x (\mathbf{R}_x^{\top} \mathbf{R}_x + \lambda \mathbf{I}_{nn})^{-1} \mathbf{R}_x^{\top} \mathbf{Y}. -\end{align*} -Hence, the reformulated ridge estimator involves the inversion of an $(n \times n)$-dimensional matrix. With $n= 100$ this is feasible on most standard computers. - -cite{Hast2004} point out that the number of computation operations reduces from $\mathcal{O}(p^3)$ to $\mathcal{O}(p n^2)$. In addition, they point out that this computational short-cut can be used in combination with other loss functions, for instance that of standard generalized linear models. -\\ -\\ -Avoidance of the inversion of the $(p \times p)$-dimensional matrix may be achieved in an other way. Hereto one needs the Woodbury identity. Let $\mathbf{A}$, $\mathbf{U}$ and $\mathbf{V}$ be $(p \times p)$-, $(p \times n)$- and $(n \times p)$-dimensional matrices, respectively. -The (simplified form of the) Woodbury identity then is: -\begin{align*} -(\mathbf{A} + \mathbf{U} \mathbf{V})^{-1} & = \mathbf{A}^{-1} - \mathbf{A}^{-1} \mathbf{U} (\mathbf{I}_{nn} + \mathbf{V} \mathbf{A}^{-1} \mathbf{U})^{-1} \mathbf{V} \mathbf{A}^{-1}. -\end{align*} -Application of the Woodbury identity to the matrix inverse in the ridge estimator of the regression parameter gives: -\begin{align*} -(\lambda \mathbf{I}_{pp} + \mathbf{X}^{\top} \mathbf{X})^{-1} & = \lambda^{-1} \mathbf{I}_{pp} - \lambda^{-2} \mathbf{X}^{\top} (\mathbf{I}_{nn} + \lambda^{-1} \mathbf{X} \mathbf{X}^{\top})^{-1} \mathbf{X}. -\end{align*} -This gives: -\begin{align*} -(\lambda \mathbf{I}_{pp} + \mathbf{X}^{\top} \mathbf{X})^{-1} \mathbf{X}^{\top} \mathbf{Y} & = \lambda^{-1} \mathbf{X}^{\top} \mathbf{Y} - \lambda^{-2} \mathbf{X}^{\top} (\mathbf{I}_{nn} + \lambda^{-1} \mathbf{X} \mathbf{X}^{\top})^{-1} \mathbf{X} \mathbf{X}^{\top} \mathbf{Y} -\\ -& = \lambda^{-1} \mathbf{X}^{\top} \left[ \mathbf{Y} - \lambda^{-1} \mathbf{X}^{\top} (\mathbf{I}_{nn} + \lambda^{-1} \mathbf{X} \mathbf{X}^{\top})^{-1} \mathbf{X} \mathbf{Y} \right]. -\end{align*} -The inversion of the $(p \times p)$-dimensional matrix $\lambda \mathbf{I}_{pp} + \mathbf{X}^{\top} \mathbf{X}$ is thus replaced by that of the $(n \times n)$-dimensional matrix $\mathbf{I}_{nn} + \lambda^{-1} \mathbf{X} \mathbf{X}^{\top}$. In addition, this expression of the ridge regression estimator avoids the singular value decomposition of $\mathbf{X}$, which may in some cases introduce additional numerical errors (e.g. at the level of machine precision). - - - -======= Choice of the penalty parameter ======= - -Throughout the introduction of ridge regression and the subsequent discussion of its properties the penalty parameter is considered known or `given'. In practice, it is unknown and the user needs to make an informed decision on its value. Several strategies to facilitate such a decision are presented. - -===== Information criterion ===== - -A popular strategy is to choose a penalty parameter that yields a good but parsimonious model. Information criteria measure the balance between model fit and model complexity. Here we present the Aikaike's information criterion (AIC), but many other criteria have been presented in the literature (e.g. \citealp{Akai1974}, \citealp{Schw1978}). The AIC measures model fit by the log-likelihood and model complexity is measured by the number of parameters used by the model. The number of model parameters in regular regression simply corresponds to the number of covariates in the model. Or, by the degrees of freedom consumed by the model, which is equivalent to the trace of the hat matrix. For ridge regression it thus seems natural to define model complexity -analogously by the trace of the ridge hat matrix. This yields the AIC for the linear regression model with ridge estimates: -\begin{align*} -\mbox{AIC}(\lambda) & = 2 \, p - 2 \log(\hat{L}) -\\ -& = 2 \, \mbox{tr} [\mathbf{H}(\lambda)] - 2 \log\{L[\hat{\beta}(\lambda), \hat{\sigma}^2(\lambda)]\} -\\ -& = 2 \, \sum_{j=1}^p \frac{d_{jj}^2}{d_{jj}^2 + \lambda} -+ 2 n \, \log[\sqrt{2 \, \pi} \, \hat{\sigma}(\lambda)] + \frac{1}{\hat{\sigma}^2(\lambda)} \sum_{i=1}^n [y_i - \mathbf{X}_{i, \ast} \, \hat{\beta}(\lambda)]^2. -\end{align*} -The value of $\lambda$ which minimizes $\mbox{AIC}(\lambda)$ corresponds to the `optimal' balance of model complexity and overfitting. - -Information criteria guide the decision process when having to decide among various different models. Different models use different sets of explanatory variables to explain the behaviour of the response variable. In that sense, the use of information criteria for the deciding on the ridge penalty parameter may be considered inappropriate: ridge regression uses the same set of explanatory variables irrespective of the value of the penalty parameter. Moreover, often ridge regression is employed to predict a response and not to provide an insightful explanatory model. The latter need not yield the best predictions. Finally, empirically we observe that the AIC often does not show an optimum *inside* the domain of the ridge penalty parameter. Henceforth, we refrain from the use of the AIC (or any of its relatives) in determining the optimal ridge penalty parameter. - - -===== Cross-validation} label{subsect.crossvalidation ===== -Instead of choosing the penalty parameter to balance model fit with model complexity, cross-validation requires it (i.e. the penalty parameter) to yield a model with good prediction performance. Commonly, this performance is evaluated on novel data. Novel data need not be easy to come by and one has to make do with the data at hand. The setting of `original' and novel data is then mimicked by sample splitting: the data set is divided into two (groups of samples). One of these two data sets, called the *training set*, plays the role of `original' data on which the model is built. The second of these data sets, called the *test set*, plays the role of the `novel' data and is used to evaluate the prediction performance (often operationalized as the log-likelihood or the prediction error) of the model built on the training data set. This procedure (model building and prediction evaluation on training and test set, respectively) is done for a collection of possible penalty parameter choices. The penalty parameter that yields the model with the best prediction performance is to be preferred. The thus obtained performance evaluation depends on the actual split of the data set. To remove this dependence the data set is split many times into a training and test set. For each split the model parameters are estimated for all choices of $\lambda$ using the training data and estimated parameters are evaluated on the corresponding test set. The penalty parameter that on average over the test sets performs best (in some sense) is then selected. - -When the repetitive splitting of the data set is done randomly, samples may accidently end up in a fast majority of the splits in either training or test set. Such samples may have an unbalanced influence on either model building or prediction evaluation. To avoid this $k$-fold cross-validation structures the data splitting. The samples are divided into $k$ more or less equally sized exhaustive and mutually exclusive subsets. In turn (at each split) one of these subsets plays the role of the test set while the union of the remaining subsets constitutes the training set. Such a splitting warrants a balanced representation of each sample in both training and test set over the splits. Still the division into the $k$ subsets involves a degree of randomness. This may be fully excluded when choosing $k=n$. This particular case is referred to as leave-one-out cross-validation (LOOCV). For illustration purposes the LOOCV procedure is detailed fully below: -\begin{compactitem} -\item[0)] Define a range of interest for the penalty parameter. - -\item[1)] Divide the data set into training and test set comprising samples $\{1, \ldots, n\} \setminus i$ and $\{ i \}$, respectively. - -\item[2)] Fit the linear regression model by means of ridge estimation for each $\lambda$ in the grid using the training set. This yields: -\begin{align*} -\hat{\beta}_{-i}(\lambda) & = ( \mathbf{X}_{-i, \ast}^{\top} -\mathbf{X}_{-i, \ast} + \lambda \mathbf{I}_{pp})^{-1} -\mathbf{X}_{-i, \ast}^{\top} \mathbf{Y}_{-i} -\end{align*} -and the corresponding estimate of the error variance $\hat{\sigma}_{-i}^2(\lambda)$. - -\item[3)] Evaluate the prediction performance of these models on the test set by $\log\{L[Y_i, \mathbf{X}_{i, \ast}; \hat{\beta}_{-i}(\lambda), \hat{\sigma}_{-i}^2(\lambda)]\}$. Or, by the prediction error $|Y_i - \mathbf{X}_{i, \ast} \hat{\beta}_{-i}(\lambda)|$, possibly squared. - -\item[4)] Repeat steps 1) to 3) such that each sample plays the role of the test set once. - -\item[5)] Average the prediction performances of the test sets at each grid point of the penalty parameter: -\begin{align*} -\frac{1}{n} \sum_{i = 1}^n \log\{L[Y_i, \mathbf{X}_{i, \ast}; \hat{\beta}_{-i}(\lambda), \hat{\sigma}_{-i}^2(\lambda)]\}. -\end{align*} -The quantity above is called the *cross-validated log-likelihood*. It is an estimate of the prediction performance of the model corresponding to this value of the penalty parameter on novel data. - -\item[6)] The value of the penalty parameter that maximizes the cross-validated log-likelihood is the value of choice. -\end{compactitem} -The procedure is straightforwardly adopted to $k$-fold cross-validation, a different criterion, and different estimators. - -In the LOOCV procedure above resampling can be avoided when the prediction performance is measured by Allen's PRESS (Predicted Residual Error Sum of Squares) statistic \citep{Alle1974}. For then, the LOOCV prediction performance can be expressed analytically in terms of the known quantities derived from the design matrix and response (as pointed out but not detailed in \citealt{Golu1979}). Define the optimal penalty parameter to minimize Allen's PRESS statistic: -\begin{align*} -\lambda_{\mbox{{\tiny opt}}} = \arg \min_{\lambda} \frac{1}{n} \sum_{i=1}^n [Y_i - \mathbf{X}_{i, \ast} \hat{\beta}_{-i}(\lambda)]^2. -\end{align*} -To derive an analytic expression for the right-hand side first -rewrite $(\mathbf{X}_{- i, \ast}^{\top} \mathbf{X}_{- i, \ast} + \lambda \mathbf{I}_{pp})^{-1}$ by means of the Woodbury identity as: -\begin{align*} -(\mathbf{X}_{- i, \ast}^{\top} \mathbf{X}_{- i, \ast} + \lambda \mathbf{I}_{pp})^{-1} & = (\mathbf{X}^{\top} \mathbf{X} + \lambda \mathbf{I}_{pp} - \mathbf{X}_{i, \ast}^{\top} \mathbf{X}_{i, \ast})^{-1} -\\ -& = (\mathbf{X}^{\top} \mathbf{X} + \lambda \mathbf{I}_{pp})^{-1} -+ (\mathbf{X}^{\top} \mathbf{X} + \lambda \mathbf{I}_{pp})^{-1} -\mathbf{X}_{i, \ast}^{\top} [ 1 - \mathbf{X}_{i, \ast} (\mathbf{X}^{\top} \mathbf{X} + \lambda \mathbf{I}_{pp})^{-1} \mathbf{X}_{i, \ast}^{\top}]^{-1} -\\ -& & \qquad \qquad \qquad \qquad \qquad \qquad \qquad \qquad \qquad \mathbf{X}_{i, \ast} (\mathbf{X}^{\top} \mathbf{X} + \lambda \mathbf{I}_{pp})^{-1} -\\ -& = (\mathbf{X}^{\top} \mathbf{X} + \lambda \mathbf{I}_{pp})^{-1} -+ (\mathbf{X}^{\top} \mathbf{X} + \lambda \mathbf{I}_{pp})^{-1} -\mathbf{X}_{i, \ast}^{\top} [ 1 - \mathbf{H}_{ii}(\lambda)]^{-1} \mathbf{X}_{i, \ast} (\mathbf{X}^{\top} \mathbf{X} + \lambda \mathbf{I}_{pp})^{-1} -\end{align*} -with $\mathbf{H}_{ii}(\lambda) = \mathbf{X}_{i, \ast} (\mathbf{X}^{\top} \mathbf{X} + \lambda \mathbf{I}_{pp})^{-1} \mathbf{X}_{i, \ast}^{\top}$. -Furthermore, $\mathbf{X}_{-i}^{\top} \mathbf{Y}_{-i} = \mathbf{X}^{\top} \mathbf{Y} - \mathbf{X}_{i, \ast}^{\top} Y_i$. Substitute both in the leave-one-out ridge regression estimator and manipulate: -\begin{align*} -\hat{\beta}_{- i}(\lambda) & = (\mathbf{X}_{- i, \ast}^{\top} \mathbf{X}_{- i, \ast} + \lambda \mathbf{I}_{pp})^{-1} \mathbf{X}_{- i, \ast}^{\top} \mathbf{Y}_{- i} -\\ -& = \{(\mathbf{X}^{\top} \mathbf{X} + \lambda \mathbf{I}_{pp})^{-1} -+ (\mathbf{X}^{\top} \mathbf{X} + \lambda \mathbf{I}_{pp})^{-1} -\mathbf{X}_{i, \ast}^{\top} [ 1 - \mathbf{H}_{ii}(\lambda)]^{-1} \mathbf{X}_{i, \ast} (\mathbf{X}^{\top} \mathbf{X} + \lambda \mathbf{I}_{pp})^{-1}\} -\\ -& & \times (\mathbf{X}^{\top} \mathbf{Y} - \mathbf{X}_{i, \ast}^{\top} Y_i ) -\\ -& = (\mathbf{X}^{\top} \mathbf{X} + \lambda \mathbf{I}_{pp})^{-1} \mathbf{X}^{\top} \mathbf{Y} - (\mathbf{X}^{\top} \mathbf{X} + \lambda \mathbf{I}_{pp})^{-1} \mathbf{X}_{i, \ast}^{\top} Y_i -\\ -& & + (\mathbf{X}^{\top} \mathbf{X} + \lambda \mathbf{I}_{pp})^{-1} -\mathbf{X}_{i, \ast}^{\top} [ 1 - \mathbf{H}_{ii} (\lambda)]^{-1} \mathbf{X}_{i, \ast} (\mathbf{X}^{\top} \mathbf{X} + \lambda \mathbf{I}_{pp})^{-1} -\mathbf{X}^{\top} \mathbf{Y} -\\ -& & - (\mathbf{X}^{\top} \mathbf{X} + \lambda \mathbf{I}_{pp})^{-1} -\mathbf{X}_{i, \ast}^{\top} [ 1 - \mathbf{H}_{ii}(\lambda)]^{-1} \mathbf{X}_{i, \ast} (\mathbf{X}^{\top} \mathbf{X} + \lambda \mathbf{I}_{pp})^{-1} -\mathbf{X}_{i, \ast}^{\top} Y_i -\\ -& = \hat{\beta}(\lambda) - (\mathbf{X}^{\top} \mathbf{X} + \lambda \mathbf{I}_{pp})^{-1} \mathbf{X}_{i, \ast}^{\top} [ 1 - \mathbf{H}_{ii}(\lambda)]^{-1} [ 1 - \mathbf{H}_{ii}(\lambda)] Y_i -\\ -& & + (\mathbf{X}^{\top} \mathbf{X} + \lambda \mathbf{I}_{pp})^{-1} \mathbf{X}_{i, \ast}^{\top} [ 1 - \mathbf{H}_{ii}(\lambda)]^{-1} \mathbf{X}_{i, \ast} \hat{\beta}(\lambda) -\\ -& & - (\mathbf{X}^{\top} \mathbf{X} + \lambda \mathbf{I}_{pp})^{-1} \mathbf{X}_{i, \ast}^{\top} [ 1 - \mathbf{H}_{ii}(\lambda)]^{-1} \mathbf{H}_{ii} (\lambda) Y_i -\\ -& = \hat{\beta}(\lambda) - (\mathbf{X}^{\top} \mathbf{X} + \lambda \mathbf{I}_{pp})^{-1} \mathbf{X}_{i, \ast}^{\top} [ 1 - \mathbf{H}_{ii}(\lambda)]^{-1} \{ [ 1 - \mathbf{H}_{ii}(\lambda)] Y_i - \mathbf{X}_{i, \ast} \hat{\beta}(\lambda) + \mathbf{H}_{ii}(\lambda) Y_i \} -\\ -& = \hat{\beta}(\lambda) - (\mathbf{X}^{\top} \mathbf{X} + \lambda \mathbf{I}_{pp})^{-1} \mathbf{X}_{i, \ast}^{\top} [ 1 - \mathbf{H}_{ii}(\lambda)]^{-1} [ Y_i - \mathbf{X}_{i, \ast} \hat{\beta}(\lambda) ]. -\end{align*} -The latter enables the reformulation of the prediction error as: -\begin{align*} -Y_i - \mathbf{X}_{i, \ast} \hat{\beta}_{-i}(\lambda) & = Y_i - \mathbf{X}_{i, \ast} \{ \hat{\beta}(\lambda) - (\mathbf{X}^{\top} \mathbf{X} + \lambda \mathbf{I}_{pp})^{-1} \mathbf{X}_{i, \ast}^{\top} [ 1 - \mathbf{H}_{ii}(\lambda)]^{-1} [ Y_i - \mathbf{X}_{i, \ast} \hat{\beta}(\lambda)] \} -\\ -& = Y_i - \mathbf{X}_{i, \ast} \hat{\beta}(\lambda) + \mathbf{X}_{i, \ast} (\mathbf{X}^{\top} \mathbf{X} + \lambda \mathbf{I}_{pp})^{-1} \mathbf{X}_{i, \ast}^{\top} [ 1 - \mathbf{H}_{ii}(\lambda)]^{-1} [ Y_i - \mathbf{X}_{i, \ast} \hat{\beta}(\lambda) ] -\\ -& = Y_i - \mathbf{X}_{i, \ast} \hat{\beta}(\lambda) + \mathbf{H}_{ii} (\lambda)[ 1 - \mathbf{H}_{ii}(\lambda)]^{-1} [ Y_i - \mathbf{X}_{i, \ast} \hat{\beta}(\lambda) ] -\\ -& = [ 1 - \mathbf{H}_{ii}(\lambda)]^{-1} [ Y_i - \mathbf{X}_{i, \ast}^{\top} \hat{\beta}(\lambda) ], -\end{align*} -which in turn results in the re-expression of Allen's PRESS statistic: -\begin{align*} -\lambda_{\mbox{{\tiny opt}}} & = \arg \min_{\lambda} \frac{1}{n} \sum_{i=1}^n [Y_i - \mathbf{X}_{i, \ast} \hat{\beta}_{-i}(\lambda)]^2 -\, \, \, = \, \, \, \arg \min_{\lambda} \tfrac{1}{n} \| \mathbf{B}(\lambda) [\mathbf{I}_{nn} - \mathbf{H}(\lambda)] \mathbf{Y} \|_ F^2, -\end{align*} -where $\mathbf{B}(\lambda)$ is diagonal with $[\mathbf{B}(\lambda)]_{ii} = [ 1 - \mathbf{H}_{ii}(\lambda)]^{-1}$. Hence, the prediction performance for a given $\lambda$ can be assessed directly from the ridge hat matrix and the response vector without the recalculation of the $n$ leave-one-out ridge estimators. Computationally, this is a considerable gain. - - - -======= Simulations ======= - -Simulations are presented that illustrate properties of the ridge estimator not discussed explicitly in the previous sections of this chapter. - -===== Role of the variance of the covariates} label{ridge:covariateVariances ===== -In many applications of high-dimensional data the covariates are standardized prior to the execution of the ridge regression. Before we discuss whether this is appropriate, we first illustrate the effect of ridge penalization on covariates with distinct variances using simulated data. - -The simulation involves one response to be (ridge) regressed on fifty covariates. Data (with $n=1000$) for the covariates, denoted $\mathbf{X}$, are drawn from a multivariate normal distribution: $\mathbf{X} \sim \mathcal{N}(\mathbf{0}_{50}, \mathbf{\Sigma})$ with $\mathbf{\Sigma}$ diagonal and $(\mathbf{\Sigma})_{jj} = j / 10$. From this the response is generated through $\mathbf{Y} = \mathbf{X} \beta + \vvarepsilon$ with $\beta = \mathbf{1}_{50}$ and $\vvarepsilon \sim \mathcal{N}(\mathbf{0}_{50}, \mathbf{I}_{50 \times 50})$. - -With the simulated data at hand the ridge regression estimates of $\beta$ are evaluated for a large grid of the penalty parameter $\lambda$. The resulting ridge regularization paths of the regression coefficients are plotted (Figure ref{fig.effectOfRidge_effectOfVariances}). All paths start ($\lambda=0$) close to one and vanish as $\lambda \rightarrow \infty$. However, ridge regularization paths of regression coefficients corresponding to covariates with a large variance dominate those with a low variance. - - -# original latex figure with scale=0.45, angle=0 - -FIGURE: [covariatesWithDifferentVariance.eps, width=400 frac=1.0] Top panel: Ridge regularization paths for coefficients of the 50 uncorrelated covariates with distinct variances. Color and line type indicated the grouping of the covariates by their variance. Bottom panels: Graphical illustration of the effect of a covariate's variance on the ridge estimator. The grey circle depicts the ridge parameter constraint. The dashed black ellipsoids are the level sets of the least squares loss function. The red dot is the ridge regression estimate. Left and right panels represent the cases with equal and unequal, respectively, variances of the covariates.} label{fig.effectOfRidge_effectOfVariances - - - - - -Ridge regression's preference of covariates with a large variance can intuitively be understood as follows. First note that the ridge regression estimator now can be written as: -\begin{align*} -\beta (\lambda) & = [ \mbox{Var}(\mathbf{X}) + \lambda \mathbf{I}_{50 \times 50}]^{-1} \mbox{Cov}(\mathbf{X}, \mathbf{Y}) -\\ -& = ( \SSigma + \lambda \mathbf{I}_{50 \times 50})^{-1} \SSigma [ \mbox{Var}(\mathbf{X}) ]^{-1} \mbox{Cov}(\mathbf{X}, \mathbf{Y}) -\\ -& = ( \SSigma + \lambda \mathbf{I}_{50 \times 50})^{-1} \SSigma \beta. -\end{align*} -Plug in the employed parametrization of $\mathbf{\Sigma}$, which gives: -\begin{align*} -[\beta (\lambda)]_j & = \frac{j}{j + 50 \lambda} \, (\beta)_j. -\end{align*} -Hence, the larger the covariate's variance (corresponding to the larger $j$), the larger its ridge regression coefficient estimate. Ridge regression thus prefers (among a set of covariates with comparable effect sizes) those with larger variances. - - - -The reformulation of ridge penalized estimation as a constrained estimation problem offers a geometrical interpretation of this phenomenon. Let $p=2$ and the design matrix $\mathbf{X}$ be orthogonal, while both covariates contribute equally to the response. Contrast the cases with $\mbox{Var}(X_1) \approx \mbox{Var}(X_2)$ and $\mbox{Var}(X_1) \gg \mbox{Var}(X_2)$. The level sets of the least squares loss function associated with the former case are circular, while that of the latter are strongly ellipsoidal (see Figure ref{fig.effectOfRidge_effectOfVariances}). The diameters along the principal axes (that - due to the orthogonality of $\mathbf{X}$ - are parallel to that of the $\beta_1$- and $\beta_2$-axes) of both circle and ellipsoid are reciprocals of the variance of the covariates. When the variances of both covariates are equal, the level sets of the loss function expand equally fast along both axis. With the two covariates having the same regression coefficient, the point of these level sets closest to the parameter constraint is to be found on the line $\beta_1 = \beta_2$ (Figure ref{fig.effectOfRidge_effectOfVariances}, left panel). Consequently, the ridge regression estimate satisfies $\hat{\beta}_1 (\lambda) \approx \hat{\beta}_2(\lambda)$. With unequal variances between the covariates, the ellipsoidal level sets of the loss function have diameters of rather different sizes. In particular, along the $\beta_1$-axis it is narrow (as $\mbox{Var}(X_1)$ is large), and - vice versa - wide along the $\beta_2$-axis. Consequently, the point of these level sets closest to the circular parameter constraint will be closer to the $\beta_1$- than to the $\beta_2$-axis (Figure ref{fig.effectOfRidge_effectOfVariances}, left panel). For the ridge estimates of the regression parameter this implies $0 \ll \hat{\beta}_1 (\lambda) < 1$ and $0 < \hat{\beta}_2 (\lambda) \ll 1$. Hence, the covariate with a larger variance yields the larger ridge regression estimate. - - -Should one thus standardize the covariates prior to ridge regression analysis? When dealing with gene expression data from microarrays, the data have been subjected to a series of pre-processing steps (e.g. quality control, background correction, within- and between-normalization). The purpose of these steps is to make the expression levels of genes comparable both within and between hybridizations. The preprocessing should thus be considered an inherent part of the measurement. As such it is to be done independently of whatever down-stream analysis is to follow and further tinkering with the data is preferably to be avoided (as it may mess up the `comparable-ness' of the expression levels as achieved by the preprocessing). For other data types different considerations may apply. - -Among the considerations to decide on standardization of the covariates, one should also include the fact that ridge estimates prior and posterior to scaling do not simply differ by a factor. To see this assume that the covariates have been centered. Scaling of the covariates amounts to post-multiplication of the design matrix by a $(p \times p)$-dimensional diagonal matrix $\mathbf{A}$ with the reciprocals of the covariates' scale estimates on its diagonal \citep{Sard2008}. Hence, the ridge estimator (for the rescaled data) is then given by: -\begin{align*} -\min_{\beta} \| \mathbf{Y} - \mathbf{X} \mathbf{A} \beta \|_2^2 + \lambda \| \beta \|_ 2^2. -\end{align*} -Apply the change-of-variable $\ggamma = \mathbf{A} \beta$ and obtain: -\begin{align*} -\min_{\ggamma} \| \mathbf{Y} - \mathbf{X} \gamma \|_2^2 + \lambda \| \mathbf{A}^{-1} \ggamma \|_ 2^2 & = \min_{\beta} \| \mathbf{Y} - \mathbf{X} \gamma \|_2^2 + \sum_{j=1}^p \lambda [(\mathbf{A})_{jj}]^{-2} \gamma_j^2. -\end{align*} -Effectively, the scaling is equivalent to covariate-wise penalization. The `scaled' ridge estimator may then be derived along the same lines as before in Section ref{sect.constrainedEstimation}: -\begin{align*} -\hat{\beta}^{\mbox{{\tiny (scaled)}}} (\lambda) & = \mathbf{A}^{-1} \hat{\ggamma} (\lambda) -\, \, \, = \, \, \, \mathbf{A}^{-1} (\mathbf{X}^{\top} \mathbf{X} + \lambda \mathbf{A}^{-2})^{-1} \mathbf{X}^{\top} \mathbf{Y}. -\end{align*} -In general, this is unequal to the ridge estimator without the rescaling of the columns of the design matrix. Moreover, it should be clear that $\hat{\beta}^{\mbox{{\tiny (scaled)}}} (\lambda) \not= \mathbf{A} \hat{\beta}(\lambda)$. - -===== Ridge regression and collinearity} label{sect:collinearCovariates ===== -Initially, ridge regression was motivated as an ad-hoc fix of (super)-collinear covariates in order to obtain a well-defined estimator. We now study the effect of this ad-hoc fix on the regression coefficient estimates of collinear covariates. In particular, their ridge regularization paths are contrasted to those of `non-collinear' covariates. - -To this end, we consider a simulation in which one response is regressed on 50 covariates. The data of these covariates, stored in a design matrix denoted $\mathbf{X}$, are sampled from a multivariate normal distribution, with mean zero and a $5 \times 5$ blocked covariance matrix: -\begin{align*} -\mathbf{\Sigma} & = \left( -\begin{array}{ccccc} -\mathbf{\Sigma}_{11} & \mathbf{0}_{10 \times 10} & \mathbf{0}_{10 \times 10} -& \mathbf{0}_{10 \times 10} & \mathbf{0}_{10 \times 10} -\\ -\mathbf{0}_{10 \times 10} & \mathbf{\Sigma}_{22} & \mathbf{0}_{10 \times 10} -& \mathbf{0}_{10 \times 10} & \mathbf{0}_{10 \times 10} -\\ -\mathbf{0}_{10 \times 10} & \mathbf{0}_{10 \times 10} -& \mathbf{\Sigma}_{33} & \mathbf{0}_{10 \times 10} & \mathbf{0}_{10 \times 10} -\\ -\mathbf{0}_{10 \times 10} & \mathbf{0}_{10 \times 10} -& \mathbf{0}_{10 \times 10} & \mathbf{\Sigma}_{44} & \mathbf{0}_{10 \times 10} -\\ -\mathbf{0}_{10 \times 10} & \mathbf{0}_{10 \times 10} -& \mathbf{0}_{10 \times 10} & \mathbf{0}_{10 \times 10} & \mathbf{\Sigma}_{55} -\end{array} -\right) -\end{align*} -with -\begin{align*} -\mathbf{\Sigma}_{kk} & = \frac{k-1}{5} \, \mathbf{1}_{10 \times 10} + \frac{6-k}{5} \, \mathbf{I}_{10 \times 10}. -\end{align*} -The data of the response variable $\mathbf{Y}$ are then obtained through: $\mathbf{Y} = \mathbf{X} \beta + \vvarepsilon$, with $\vvarepsilon \sim \mathcal{N}( \mathbf{0}_{n}, \mathbf{I}_{nn})$ and $\beta = \mathbf{1}_{50}$. Hence, all covariates contribute equally to the response. Would the columns of $\mathbf{X}$ be orthogonal, little difference in the ridge estimates of the regression coefficients is expected. - -The results of this simulation study with sample size $n=1000$ are presented in Figure ref{fig.ridgeEstimates_correlatedCovariates}. All 50 regularization paths start close to one as $\lambda$ is small and converge to zero as $\lambda \rightarrow \infty$. But the paths of covariates of the same block of the covariance matrix $\mathbf{\Sigma}$ quickly group, with those corresponding to a block with larger off-diagonal elements above those with smaller ones. Thus, ridge regression prefers (i.e. shrinks less) coefficient estimates of strongly positively correlated covariates. - -# original latex figure with scale=0.45, angle=0 - -FIGURE: [correlatedCovariates.eps, width=400 frac=1.0] Left panel: Ridge regularization paths for coefficients of the 50 covariates, with various degree of collinearity but equal variance. Color and line type correspond to the five blocks of the covariate matrix $\mathbf{\Sigma}$. Right panel: Graphical illustration of the effect of the collinearity among covariates on the ridge estimator. The solid and dotted grey circles depict the ridge parameter constraint for the collinear and orthogonal cases, respectively. The dashed black ellipsoids are the level sets of the sum-of-squares squares loss function. The red dot and violet diamond are the ridge regression for the positive collinear and orthogonal case, respectively.} label{fig.ridgeEstimates_correlatedCovariates -# \afterpage{} - - - -Intuitive understanding of the observed behaviour may be obtained from the $p=2$ case. Let $U$, $V$ and $\varepsilon$ be independent random variables with zero mean. Define $X_1 = U + V$, $X_2 = U - V$, and $Y = \beta_1 X_1 + \beta_2 X_2 + \varepsilon$ with $\beta_1$ and $\beta_2$ constants. Hence, $\mathbb{E}(Y) = 0$. Then: -\begin{align*} -# Y & = \beta_1 X_1 + \beta_2 X_2 + \varepsilon -# \\ -# & = \beta_1 (U + V) + \beta_2 (U - V) + \varepsilon -# \\ -Y & = (\beta_1 + \beta_2) U + (\beta_1 - \beta_2) V + \varepsilon -\\ -& = \gamma_u U + \gamma_v V + \varepsilon -\end{align*} -and $\mbox{Cor}(X_{1}, X_{2}) = [\mbox{Var}(U) - \mbox{Var}(V)] / [ \mbox{Var}(U) + \mbox{Var}(V) ]$. -# \begin{align*} -# \mbox{Cor}(X_{1}, X_{2}) -# & = \frac{ \mbox{Cov}(X_{1}, X_{2}) }{ \sqrt{\mbox{Var}(X_{1})} \sqrt{\mbox{Var}(X_{2})} } -# \\ -# & = \frac{ \mbox{Cov}(U + V, U - V) }{ \sqrt{\mbox{Var}(U + V)} \sqrt{\mbox{Var}(U - V)} } -# \\ -# & = -# \frac{ \mbox{Var}(U) - \mbox{Var}(V) }{ \mbox{Var}(U) + \mbox{Var}(V) }. -# \end{align*} -The random variables $X_1$ and $X_2$ are strongly positively correlated if $\mbox{Var}(U) \gg \mbox{Var}(V)$. - -The ridge regression estimator associated with regression of $Y$ on $U$ and $V$ is: -\begin{align*} -\ggamma(\lambda) & = \left( -\begin{array}{rr} -\mbox{Var}(U) + \lambda & 0 -\\ -0 & \mbox{Var}(V) + \lambda -\end{array} -\right)^{-1} -\left( -\begin{array}{r} -\mbox{Cov}(U, Y) -\\ -\mbox{Cov}(V, Y) -\end{array} -\right). -\end{align*} -For large enough $\lambda$ -\begin{align*} -\ggamma(\lambda) -# & & \frac{1}{\lambda} \left( \begin{array}{rr} \mbox{Var}(U) & 0 \\ 0 \mbox{Var}(V) \end{array} \right) \left( \begin{array}{rr} \mbox{Var}(U) & 0 -# \\ -# 0 & \mbox{Var}(V) -# \end{array} -# \right)^{-1} -# \left( -# \begin{array}{r} -# \mbox{Cov}(U, Y) -# \\ -# \mbox{Cov}(V, Y) -# \end{array} -# \right) -# \\ -& \approx \frac{1}{\lambda} -\left( -\begin{array}{rr} -\mbox{Var}(U) & 0 -\\ -0 & \mbox{Var}(V) -\end{array} -\right) -\left( -\begin{array}{r} -\beta_1 + \beta_2 -\\ -\beta_1 - \beta_2 -\end{array} -\right). -\end{align*} -When $\mbox{Var}(U) \gg \mbox{Var}(V)$ and $\beta_1 \approx \beta_2$, the ridge estimate of $\gamma_v$ vanishes for large $\lambda$. Hence, ridge regression prefers positively covariates with similar effect sizes. - - -This phenomenon too can be explained geometrically. For the illustration consider ridge estimation with $\lambda=1$ of the linear model $\mathbf{Y} = \mathbf{X} \beta + \vvarepsilon$ with $\beta = (3, 3)^{\top}$, $\vvarepsilon \sim \mathcal{N}(\mathbf{0}_2, \mathbf{I}_{22})$ and the columns of $\mathbf{X}$ strongly and positively collinear. The level sets of the sum-of-squares loss, $\| \mathbf{Y} - \mathbf{X} \beta \|_2^2$, are plotted in the right panel of Figure ref{fig.ridgeEstimates_correlatedCovariates}. Recall that the ridge estimate is found by looking for the smallest loss level set that hits the ridge contraint. The sought-for estimate is then the point of intersection between this level set and the constraint, and - for the case at hand - is on the $x=y$-line. This is no different from the case with orthogonal $\mathbf{X}$ columns. Yet their estimates differ, even though the same $\lambda$ is applied. The difference is to due to fact that the radius of the ridge constraint depends on $\lambda$, $\mathbf{X}$ and $\mathbf{Y}$. This is immediate from the fact that the radius of the constraint equals $\| \hat{\beta}(\lambda) \|_2^2$ (see Section ref{sect.constrainedEstimation}). To study the effect of $\mathbf{X}$ on the radius, we remove its dependence on $\mathbf{Y}$ by considering its expectation, which is: -\begin{align*} -\mathbb{E}[ \| \hat{\beta}(\lambda) \|_2^2 ] & = \mathbb{E} \{ [(\mathbf{X}^{\top} \mathbf{X} + \lambda \mathbf{I}_{pp})^{-1} (\mathbf{X}^{\top} \mathbf{X}) \, \hat{\beta}]^{\top} \, (\mathbf{X}^{\top} \mathbf{X} + \lambda \mathbf{I}_{pp})^{-1} (\mathbf{X}^{\top} \mathbf{X}) \, \hat{\beta} \} \nonumber % \, \, \, = \, \, \, \mathbb{E} ( \hat{\beta}^{\top} \mathbf{W}_{\lambda}^{\top} \,\mathbf{W}_{\lambda} \, \hat{\beta} ) \nonumber -\\ -# & = \mathbb{E} [ \mathbf{Y}^{\top} \mathbf{X} (\mathbf{X}^{\top} \mathbf{X})^{-1} \mathbf{W}_{\lambda}^{\top} \,\mathbf{W}_{\lambda} \, (\mathbf{X}^{\top} \mathbf{X})^{-1} \mathbf{X}^{\top} \mathbf{Y} ] \nonumber -# \\ -# & = \mathbb{E} [ \mathbf{Y}^{\top} \mathbf{X} (\mathbf{X}^{\top} \mathbf{X})^{-1} (\mathbf{X}^{\top} \mathbf{X}) (\mathbf{X}^{\top} \mathbf{X} + \lambda \mathbf{I}_{pp}) (\mathbf{X}^{\top} \mathbf{X} + \lambda \mathbf{I}_{pp}) (\mathbf{X}^{\top} \mathbf{X})(\mathbf{X}^{\top} \mathbf{X})^{-1} \mathbf{X}^{\top} \mathbf{Y} ] \nonumber -# \\ -& = \mathbb{E} [ \mathbf{Y}^{\top} \mathbf{X} -(\mathbf{X}^{\top} \mathbf{X} + \lambda \mathbf{I}_{pp})^{-2} \mathbf{X}^{\top} \mathbf{Y} ] \nonumber -\\ -& = \sigma^2 \, \mbox{tr}\big\{ \mathbf{X} -(\mathbf{X}^{\top} \mathbf{X} + \lambda \mathbf{I}_{pp})^{-2} \mathbf{X}^{\top} \big\} + \beta^{\top} \mathbf{X}^{ \top} \mathbf{X} -(\mathbf{X}^{\top} \mathbf{X} + \lambda \mathbf{I}_{pp})^{-2} \mathbf{X}^{\top} \, \mathbf{X} \beta. % label{form.expectationPenalty} -\end{align*} -In the last step we have used $\mathbf{Y} \sim \mathcal{N}( \mathbf{X} \beta, \sigma^2 \mathbf{I}_{pp})$ and the expectation of the quadratic form of a multivariate random variable $\vvarepsilon \sim \mathcal{N}(\mmu_{\varepsilon}, \SSigma_{\varepsilon})$ is $\mathbb{E} ( \vvarepsilon^{\top} \, \LLambda \, \vvarepsilon) = \mbox{tr} ( \LLambda \, \SSigma_{\varepsilon}) + \mmu_{\varepsilon}^{\top} \, \LLambda \, \mmu_{\varepsilon}$ (cf. \citealp{Math1992}). The expression for the expectation of the radius of the ridge constraint can now be evaluated for the orthogonal $\mathbf{X}$ and the strongly, positively collinear $\mathbf{X}$. It turns out that the latter is larger than the former. This results in a larger ridge constraint. For the larger ridge constraint there is a smaller level set that hits it first. The point of intersection, still on the $x=y$-line, is now thus closer to $\beta$ and further from the origin (cf. right panel of Figure ref{fig.ridgeEstimates_correlatedCovariates}). The resulting estimate is thus larger than that from the orthogonal case. - -The above needs some attenuation. Among others it depends on: *i)* the number of covariates in each block, *ii)* the size of the effects, i.e. regression coefficients of each covariate, and -*iii)* the degree of collinearity. Possibly, there are more factors influencing the behaviour of the ridge estimator presented in this subsection. - -This behaviour of ridge regression is to be understood when using (say) gene expression data to predict a certain clinical outcome. Genes work in concert to fulfil a certain function in the cell. Consequently, one expects their expression levels to be correlated. Indeed, gene expression studies exhibit many co-expressed genes, that is, genes with correlating transcript levels. - - - - -======= Illustration} label{sect.ridgeRegressionDataIllustration ======= -The application of ridge regression to actual data aims to illustrate its use in practice. - -===== MCM7 expression regulation by microRNAs ===== - -Recently, a new class of RNA was discovered, referred to as microRNA. MicroRNAs are non-coding, single stranded RNAs of approximately 22 nucleotides. Like mRNAs, microRNAs are encoded in and transcribed from the DNA. MicroRNAs play an important role in the regulatory mechanism of the cell. MicroRNAs down-regulate gene expression by either of two post-transcriptional mechanisms: mRNA cleavage or transcriptional repression. This depends on the degree of complementarity between the microRNA and the target. Perfect or nearly perfect complementarity of the mRNA to the microRNA will lead to cleavage and degradation of the target mRNA. Imperfect complementarity will repress the productive translation and reduction in protein levels without affecting the mRNA levels. -A single microRNA can bind to and regulate many different mRNA targets. Conversely, several microRNAs can bind to and cooperatively control a single mRNA target (\citealp{Bart2004}; \citealp{Esqu2006}; \citealp{Kim2006}). - -In this illustration we wish to confirm the regulation of mRNA expression by microRNAs in an independent data set. We cherry pick an arbitrary finding from literature reported in cite{Ambs2008}, which focusses on the microRNA regulation of the MCM7 gene in prostate cancer. The MCM7 gene is involved in DNA replication \citep{Tye1999}, a cellular process often derailed in cancer. Furthermore, MCM7 interacts with the tumor-suppressor gene RB1 \citep{Ster1998}. Several studies indeed confirm the involvement of MCM7 in prostate cancer \citep{Padm2004}. And recently, it has been reported that in prostate cancer MCM7 may be regulated by microRNAs \citep{Ambs2008}. - -We here assess whether the MCM7 down-regulation by microRNAs can be observed in a data set other than the one upon which the microRNA-regulation of MCM7 claim has been based. To this end we download from the Gene Expression Omnibus (GEO) a prostate cancer data set (presented by \citealp{Wang2009GeneNetworks}). This data set (with GEO identifier: GSE20161) has both mRNA and microRNA profiles for all samples available. The preprocessed (as detailed in \citealp{Wang2009GeneNetworks}) data are downloaded and require only minor further manipulations to suit our purpose. These manipulations comprise *i)* averaging of duplicated profiles of several samples, *ii)* gene- and mir-wise zero-centering of the expression data, *iii)* averaging the expression levels of the probes that interrogate MCM7. Eventually, this leaves 90 profiles each comprising of 735 microRNA expression measurements. - - - -\lstinputlisting{prostate_ridgeAnalysis.r} - - -With this prostate data set at hand we now investigate whether MCM7 is regulated by microRNAs. Hereto we fit a linear regression model regressing the expression levels of MCM7 onto those of the microRNAs. As the number of microRNAs exceeds the number of samples, ordinary least squares fails and we resort to the ridge estimator of the regression coefficients. First, an informed choice of the penalty parameter is made through maximization of the LOOCV log-likelihood, resulting in $\lambda_{\mbox{{\tiny opt}}} = 1812.826$. Having decided on the value of the to-be-employed penalty parameter, the ridge regression estimator can now readily be evaluated. The thus fitted model allows for the evaluation of microRNA-regulation of MCM7. E.g., by the proportion of variation of the MCM7 expression levels by the microRNAs as expressed in coefficient of determination: $R^2 = 0.4492$. Alternatively, but closely related, observed expression levels may be related to the linear predictor of the MCM7 expression levels: $\hat{\mathbf{Y}}(\lambda_{\mbox{{\tiny opt}}}) = \mathbf{X} \hat{\beta} (\lambda_{\mbox{{\tiny opt}}})$. The Spearman correlation of response and predictor equals 0.6295. A visual inspection is provided by the left panel of Figure ref{fig.RidgeProstateExample}. Note the difference in scale of the $x$- and $y$-axes. This is due to the fact that the regression coefficients have been estimated in penalized fashion, consequently shrinking estimates of the regression coefficients towards zero leading to small estimates and in turn compressing the range of the linear prediction. The above suggests there is indeed association between the microRNA expression levels and those of MCM7. - - - -# original latex figure with scale=0.45, angle=0 - -FIGURE: [prostate_ridgeFit.eps, width=400 frac=1.0] Left panel: Observed vs. (ridge) fitted MCM7 expression values. Right panel: Histogram of the ridge regression coefficient estimates.} label{fig.RidgeProstateExample - - -The overall aim of this illustration was to assess whether microRNA-regulation of MCM7 could also be observed in this prostate cancer data set. In this endeavour the dogma (stating this regulation should be negative) has nowhere been used. A first simple assessment of the validity of this dogma studies the signs of the estimated regression coefficients. The ridge regression estimate has 394 out of the 735 microRNA probes with a negative coefficient. Hence, a small majority has a sign in line with the `microRNA $\downarrow$ mRNA' dogma. When, in addition, taking the size of these coefficients into account (Figure ref{fig.RidgeProstateExample}, right panel), the negative regression coefficient estimates do not substantially differ from their positive counterparts (as can be witnessed from their almost symmetrical distribution around zero). Hence, the value of the `microRNA $\downarrow$ mRNA' dogma is not confirmed by this ridge regression analysis of the MCM7-regulation by microRNAs. Nor is it refuted. - - -The implementation of ridge regression in the {\tt penalized}-package offers the possibility to fully obey the dogma on negative regulation of mRNA expression by microRNAs. This requires all regression coefficients to be negative. Incorporation of the requirement into the ridge estimation augments the constrained estimation problem with an additional constraint: -\begin{align*} % label{form.constrEstProblemRidge} -\hat{\beta}(\lambda) & = \arg \min_{\| \beta \|_2^2 \leq c (\lambda) \atop \beta_j \leq 0 \, \mbox{{\tiny for all $j$}}} \| \mathbf{Y} - \mathbf{X} \, \beta \|^2_2. -\end{align*} -With the additional non-positivity constraint on the parameters, there is no explicit solution for the estimator. The ridge estimate of the regression parameters is then found by numerical optimization using e.g. the Newton-Raphson algorithm or a gradient descent approach. The next listing gives the R-code for ridge estimation with the non-positivity constraint of the linear regression model. - -\lstinputlisting{prostate_ridgeAnalysisWithConstraint.r} - -The linear regression model linking MCM7 expression to that of the microRNAs is fitted by ridge regression while simultaneously obeying the `negative regulation of mRNA by microRNA'-dogma to the prostate cancer data. In the resulting model 401 out of 735 microRNA probes have a nonzero (and negative) coefficient. There is a large overlap in microRNAs with a negative coefficient between those from this and the previous fit. The models are also compared in terms of their fit to the data. The Spearman rank correlation coefficient between response and predictor for the model without positive regression coefficients equals 0.679 and its coefficient of determination 0.524 (confer the left panel of ref{fig.RidgeProstateExample_constrainedAnalysis} for a visualization). This is a slight improvement upon the unconstrained ridge estimated model. The improvement may be small but it should be kept in mind that the number of parameters used by both models is 401 (for the model without positive regression coefficients) vs. 735. Hence, with close to half the number of parameters the dogma-obeying model gives a somewhat better description of the data. This may suggest that there is some value in the dogma as inclusion of this prior information leads to a more parsimonious model without any loss in fit. - - - -# original latex figure with scale=0.45, angle=0 - -FIGURE: [prostate_ridgeFitConstrained.eps, width=400 frac=1.0] Left panel: Observed vs. (ridge) fitted MCM7 expression values (with the non-positive constraint on the parameters in place). Right panel: Histogram of the ridge regression coefficient estimates (from the non-positivity constrained analysis).} label{fig.RidgeProstateExample_constrainedAnalysis - - - -The dogma-obeying model selects 401 microRNAs that aid in the explanation of the variation in the gene expression levels of MCM7. There is an active field of research, called *target prediction*, trying to identify which microRNAs target the mRNA of which genes. Within {\tt R} there is a collection of packages that provide the target prediction of known microRNAs. The packages differ on the method (e.g. experimental or sequence comparison) that has been used to arrive at the prediction. These target predictions may be used to evaluate the value of the found 401 microRNAs. Ideally, there would be a substantial amount of overlap. The {\tt R}-script that loads the target predictions and does the comparison is below. - -\lstinputlisting{prostate_link2predictionTools.r} - - -|-----------------------------------------------------------------| -| # #if FORMAT in ("latex", "pdflatex") -\vspace{-7pt} -# #endif | | | -|---------r--------------------r--------------------r-------------| -| # #if FORMAT in ("latex", "pdflatex") -\vspace{3pt} -# #endif | $\hat{\beta}_j = 0$ | $\hat{\beta}_j < 0$ | -| # #if FORMAT in ("latex", "pdflatex") -\vspace{-4pt} -# #endif | | | -| microRNA not target | 323 | 390 | -| microRNA target | 11 | 11 | -| # #if FORMAT in ("latex", "pdflatex") -\vspace{-9pt} -# #endif | | | -|-----------------------------------------------------------------| - - -\caption{Cross-tabulation of the microRNAs being a potential target of MCM7 vs. the value of its regression coefficient in the dogma-obeying model.} label{table.mir2mcm7prediction} - - -With knowledge available on each microRNA whether it is predicted (by at least one target prediction package) to be a potential target of MCM7, it may be cross-tabulated against its corresponding regression coefficient estimate in the dogma-obeying model being equal to zero or not. Table ref{table.mir2mcm7prediction} contains the result. Somewhat superfluous considering the data, we may test whether the targets of MCM7 are overrepresented in the group of strictly negatively estimated regression coefficients. The corresponding chi-squared test (with Yates' continuity correction) yields the test statistic $\chi^2 = 0.0478$ with a $p$-value equal to 0.827. Hence, there is no enrichment among the 401 microRNAS of those that have been predicted to target MCM7. This may seem worrisome. However, the microRNAs have been selected for their predictive power of the expression levels of MCM7. Variable selection has not been a criterion (although the sign constraint implies selection). Moreover, criticism on the value of the microRNA target prediction has been accumulating in recent years. - - -======= Conclusion ======= - -We discussed ridge regression as a modification of linear regression to overcome the empirical non-identifiability of the latter when confronted with high-dimensional data. The means to this end was the addition of a (ridge) penalty to the sum-of-squares loss function of the linear regression model, which turned out to be equivalent to constraining the parameter domain. This warranted the identification of the regression coefficients, but came at the cost of introducing bias in the estimates. Several properties of ridge regression like moments, MSE, and its Bayesian interpretation have been reviewed. Finally, its behaviour and use have been illustrated in simulation and omics data. - - -======= Exercises ======= -\begin{question}[^footnote2][^footnote2]: This exercise is freely rendered from cite{Drap1998} \mbox{ } -\\ -Find the ridge regression solution for the data below for a general value of $\lambda$ and for the straight line model $Y = \beta_0 + \beta_1 X + \varepsilon$ (only apply the ridge penalty to the slope parameter, not to the intercept). Show that when $\lambda$ is chosen as 0.4, the ridge solution fit is $\hat{Y} = 40 + 1.75 X$. Data: $\mathbf{X}^{\top} = (X_1, X_2, \ldots, X_{8})^{\top} = (-2, -1, -1, -1, 0, 1, 2, 2)^{\top}$, and $\mathbf{Y}^{\top} = (Y_1, Y_2, \ldots, Y_{8})^{\top} = (35, 40, 36, 38, 40, 43, 45, 43)^{\top}$. -\end{question} - -\begin{question}[^footnote3][^footnote3]: This exercise is freely rendered from cite{Hast2009, but can be found in many other places. The original source is unknown to the author.} label{question:ridgeAugmentation} \mbox{ } -\\ -Show that the ridge regression estimates can be obtained by ordinary least squares regression on an augmented data set. We augment the centered matrix $\mathbf{X}$ with $p$ additional row $\sqrt{\lambda} \mathbf{I}$, and augment $\mathbf{y}$ with $p$ zeros. -\end{question} - -\begin{question} label{question.ridgeResidualsProjection} \mbox{ } -\\ -The coefficients $\beta$ of a linear regression model, $\mathbf{Y} = \mathbf{X} \beta + \vvarepsilon$, are estimated by $\hat{\beta} = (\mathbf{X}^{\top} \mathbf{X})^{-1} \mathbf{X}^{\top} \mathbf{Y}$. The associated fitted values then given by $\widehat{\mathbf{Y}} = \mathbf{X} \, \hat{\beta} = \mathbf{X} (\mathbf{X}^{\top} \mathbf{X})^{-1} \mathbf{X}^{\top} \mathbf{Y} = \mathbf{H} \mathbf{Y}$, where $\mathbf{H} =\mathbf{X} (\mathbf{X}^{\top} \mathbf{X})^{-1} \mathbf{X}^{\top}$ referred to as the hat matrix. The matrix $\mathbf{P}$ is a projection matrix and satisfies $\mathbf{H} = \mathbf{H}^ 2$. Hence, linear regression projects the response $\mathbf{Y}$ onto the vector space spanned by the columns of $\mathbf{Y}$. Consequently, the residuals $\hat{\vvarepsilon}$ and $\hat{\mathbf{Y}}$ are orthogonal. Now consider the ridge estimator of the regression coefficients: $\hat{\beta}(\lambda) = (\mathbf{X}^{\top} \mathbf{X} + \lambda \mathbf{I}_{pp})^{-1} \mathbf{X}^{\top} \mathbf{Y}$. Let $\hat{\mathbf{Y}}(\lambda) = \mathbf{X} \hat{\beta}(\lambda)$ be the vector of associated fitted values. - -\begin{compactitem} -\item[*a)*] Show that the matrix $\mathbf{H}(\lambda) = \mathbf{X} (\mathbf{X}^{\top} \mathbf{X} + \lambda \mathbf{I}_{pp})^{-1} \mathbf{X}^{\top}$, associated with ridge regression, is not a projection matrix (for any $\lambda > 0$). - -\item[*b)*] Show that the `ridge fit' $\widehat{\mathbf{Y}}(\lambda)$ is not orthogonal to the associated `ridge residuals' $\hat{\vvarepsilon}(\lambda)$ (for any $\lambda > 0$). - -\item[*c)*] Derive the distribution of the `ridge residuals'. -\end{compactitem} -\end{question} - - -\begin{question} label{question.MSEofLinearPredictor} \mbox{ } -\\ -Recall that there exists $\lambda > 0$ such that $MSE(\hat{\beta}) > MSE[\hat{\beta}(\lambda)]$. Verify that this carries over to the linear predictor. That is, there exists a $\lambda > 0$ such that$MSE(\widehat{\mathbf{Y}}) = MSE(\mathbf{X} \hat{\beta}) > MSE[\mathbf{X}\hat{\beta}(\lambda)]$. -\end{question} - -\begin{question} \mbox{ } -\\ -Consider a 3-gene pathway. Expression levels of these three genes have been measured in an observational study involving hundred individuals. In order to assess how the expression levels of gene A are affect by that of genes B and C, a medical researcher fits the -\begin{align*} -Y_{i}^{(A)} &= \beta_b Y_{i}^{(B)} + \beta_c Y_{i}^{(C)} + -\varepsilon_{i}, -\end{align*} -with $\varepsilon_i \sim \mathcal{N}(0, \sigma^2)$. This model fitted by means of ridge regression, but with a separate penalty parameter, $\lambda_{2,b}$ and $\lambda_{2,c}$, for the two regression coefficient, $\beta_b$ and $\beta_c$, respectively. - -\begin{compactitem} -\item[*a)*] Write down the ridge penalized loss function employed by the researcher. - -\item[*b)*] Does a different choice of penalty parameter for the second regression coefficient affect the estimation of the first regression coefficient? Motivate your answer. - -\item[*c)*] The researcher decides that the second covariate $Y_i^{(C)}$ is irrelevant. Instead of removing the covariate from model, the researcher decides to set $\lambda_{2,c} = -\infty$. Show that this results in the same ridge estimate for $\beta_b$ as when fitting (again by means of ridge regression) the model without the second covariate. -\end{compactitem} -\end{question} - -\begin{question} \mbox{ } -\\ -The expression levels of the $j$-the gene are explained by a linear regression model in terms of those of all other genes. Consider the following two ridge regression estimators of the regression parameter of this model, defined as: -\begin{align*} -\arg \max_\beta \sum_{i=1}^n (Y_{i,j} - \mathbf{Y}_{i,\setminus j} \beta_j)^2 + \lambda \| \beta_j \|_ 2^2 -\quad -\mbox{and} \quad -\arg \max_\beta \sum_{i=1}^n (Y_{i,j} - \mathbf{Y}_{i,\setminus j} \beta_j)^2 + n \lambda \| \beta_j \|_ 2^2. -\end{align*} -Which do you prefer? Motivate. -\end{question} - - - - -========= Generalizing ridge regression ========= label{chap:genRidge} -# ======= Generalized ridge regression ======= - -The expos\'{e} on ridge regression may be generalized in many ways. Among others different generalized linear models may be considered (confer Section ref{sect.ridgeLogistic}). In this section we stick to the linear regression model $\mathbf{Y} = \mathbf{X} \beta + \vvarepsilon$ with the usual assumptions, but fit it in weighted fashion and generalize the common, spherical penalty. The loss function corresponding to this scenario is: - -!bt - -!bt -\begin{align} label{form:generalizedRidgeLoss} -(\mathbf{Y} - \mathbf{X} \beta)^{\top} \mathbf{W} (\mathbf{Y} - \mathbf{X} \beta) + (\beta - \beta_0)^{\top} \mathbf{\Delta} -(\beta - \beta_0), -\end{align} -!et -!et -which comprises a weighted least squares criterion and a generalized ridge penalty. In this $\mathbf{W}$ is a $(n \times n)$-dimensional, diagonal matrix with $(\mathbf{W})_{ii} \in [0,1]$ representing the weight of the $i$-th observation. The penalty is now a quadratic form with penalty parameter $\mathbf{\Delta}$, a $(p \times p)$-dimensional, positive definite, symmetric matrix. When $\mathbf{\Delta} = \lambda \mathbf{I}_{pp}$, one regains the spherical penalty of `regular ridge regression'. This penalty shrinks each element of the regression parameter $\beta$ equally along the unit vectors $\mathbf{e}_j$. Generalizing $\mathbf{\Delta}$ to the class of symmetric, positive definite matrices $\mathcal{S}_{++}$ allows for *i)* different penalization per regression parameter, and *ii)* joint (or correlated) shrinkage among the elements of $\beta$. The penalty parameter $\mathbf{\Delta}$ determines the speed and direction of shrinkage. The $p$-dimensional column vector $\beta_0$ is a user-specified, non-random target towards which $\beta$ is shrunken as the penalty parameter increases. When recasting generalized ridge estimation as a constrained estimation problem, the implications of the penalty may be visualized (Figure ref{fig:generalizedRidgeIllustration}, left panel). The generalized ridge penalty is a quadratic form centered around $\beta_0$. In Figure ref{fig:generalizedRidgeIllustration} the parameter constraint clearly is ellipsoidal (and not spherical). Moreover, the center of this ellipsoid is not at zero. - -# original latex figure with scale=0.40, angle=0 - -FIGURE: [generalizedRidgeIllustration_penalty.eps, width=400 frac=1.0] Left panel: the contours of the likelihood (grey solid ellipsoids) and the parameter constraint implied by the generalized penalty (black dashed ellipsoid. Right panel: generalized (fat coloured lines) and `regular' (thin coloured lines) regularization paths of four regression coefficients. The dotted grey (straight) lines indicated the targets towards the generalized ridge penalty shrinks regression coefficient estimates.} label{fig:generalizedRidgeIllustration - - -The addition of the generalized ridge penalty to the sum-of-squares ensures the existence of a unique regression estimator in the face of super-collinearity. The generalized penalty is a non-degenerated quadratic form in $\beta$ due to the positive definiteness of the matrix $\mathbf{\Delta}$. As it is non-degenerate, it is strictly convex. Consequently, the generalized ridge regression loss function (ref{form:generalizedRidgeLoss}), being the sum of a convex and strictly convex function, is also strictly convex. This warrants the existence of a unique global minimum and, thereby, a unique estimator. - - -Like for the `regular' ridge loss function (ref{form.ridgeLossFunction}), there is an explicit expression for the optimum of the generalized ridge loss function (ref{form:generalizedRidgeLoss}). To see this, obtain the estimating equation of $\beta$ through equating its derivative with respect to $\beta$ to zero: -\begin{align*} -2 \mathbf{X}^{\top} \mathbf{W} \mathbf{Y} - 2 \mathbf{X}^{\top} \mathbf{W} \mathbf{X} \beta - 2 \mathbf{\Delta} \beta + 2 \mathbf{\Delta} \beta_0 & = \mathbf{0}_{p}. -\end{align*} -This is solved by: - -!bt - -!bt -\begin{align} -\hat{\beta}(\mathbf{\Delta}) & = (\mathbf{X}^{\top} \mathbf{W} \mathbf{X} + \mathbf{\Delta})^{-1} (\mathbf{X}^{\top} \mathbf{W} \mathbf{Y} + \mathbf{\Delta} \beta_0). -\end{align} -!et -!et -Clearly, this reduces to the `regular' ridge estimator by setting $\mathbf{W} = \mathbf{I}_{nn}$, $\beta_0 = \mathbf{0}_{p}$, and $\mathbf{\Delta} = \lambda \mathbf{I}_{pp}$. The effects of the generalized ridge penalty on the estimates can be seen in the regularization paths of the estimates. Figure ref{fig:generalizedRidgeIllustration} (right panel) contains an example of the regularization paths for coefficients of a linear regression model with four explanatory variables. Most striking is the limiting behaviour of the estimates of $\beta_3$ and $\beta_4$ for large values of the penalty parameter $\lambda$: they convergence to a non-zero value (as was specified by a nonzero $\beta_0$). More subtle is the (temporary) convergence of the regularization paths of the estimates of $\beta_2$ and $\beta_3$. That of $\beta_2$ is pulled away from zero (its true value and approximately its unpenalized estimate) towards the estimate of $\beta_3$. In the regularization path of $\beta_3$ this can be observed in a delayed convergence to its nonzero target value (for comparison consider that of $\beta_4$). For reference the corresponding regularization paths of the `regular' ridge estimates (as thinner lines of the same colour) are included in Figure ref{fig:generalizedRidgeIllustration}. - - - -\begin{example} *Fused ridge estimation* label{example.gRidge2orthonormalDesign} -\\ -An example of a generalized ridge penalty is the *fused ridge penalty*. Consider the standard linear model $\mathbf{Y} = \mathbf{X} \beta + \vvarepsilon$. The fused ridge estimator of $\beta$ then minimizes: - -!bt - -!bt -\begin{align} label{form:fusedRidgeLoss} -\| \mathbf{Y} - \mathbf{X} \beta \|_2^2 + \lambda \sum_{j=2}^p \| \beta_{j} - \beta_{j-1} \|_2^2. -\end{align} -!et -!et -The penalty in the loss function above can be written as a generalized ridge penalty: -\begin{align*} -\lambda \sum_{j=2}^p \| \beta_{j} - \beta_{j-1} \|_2^2 & = \beta^{\top} -\left( -\begin{array}{rrrrrr} -\lambda & -\lambda & 0 & \ldots & \ldots & 0 -# #if FORMAT in ("latex", "pdflatex") -\vspace{-4pt} -# #endif -\\ --\lambda & 2 \lambda & -\lambda & \ddots & & \vdots -# #if FORMAT in ("latex", "pdflatex") -\vspace{-4pt} -# #endif -\\ -0 & -\lambda & 2 \lambda & \ddots & \ddots & \vdots -# #if FORMAT in ("latex", "pdflatex") -\vspace{-4pt} -# #endif -\\ -\vdots & \ddots & \ddots & \ddots & \ddots & 0 -# #if FORMAT in ("latex", "pdflatex") -\vspace{-4pt} -# #endif -\\ -\vdots & & \ddots & \ddots & \ddots & -\lambda -# # #if FORMAT in ("latex", "pdflatex") -\vspace{-4pt} -# #endif -\\ -0 & \ldots & \ldots & 0 & -\lambda & \lambda -\end{array}\right) -\beta. -\end{align*} -The matrix $\mathbf{\Delta}$ employed above is semi-positive definite and therefore the loss function (ref{form:fusedRidgeLoss}) is not strictly convex. Hence, often a regular ridge penalty $\| \beta \|_2^2$ is added (with its own penalty parameter). - -To illustrate the effect of the fused ridge penalty on the estimation of the linear regression model $\mathbf{Y} = \mathbf{X} \beta + \vvarepsilon$, let $\beta_j = \phi_{0,1}(z_j)$ with $z_j =-30 + \tfrac{6}{50} j$ for $j=1, \ldots, 500$. Sample the elements of the design matrix $\mathbf{X}$ and those of the error vector $\vvarepsilon$ from the standard normal distribution, then form the response $\mathbf{Y}$ from the linear model. The regression parameter is estimated through fused ridge loss minimization with $\lambda=1000$. The estimate is shown in Figure ref{fig:fusedRidgeIllustration} (red line). For reference the figure includes the true $\beta$ (black line) and the `regular ridge' estimate with $\lambda=1$ (blue line). Clearly, the fused ridge estimate yields a nice smooth vector of $\beta$ estimates -\end{example} - -# original latex figure with scale=0.40, angle=0 - -FIGURE: [fusedRidgeIllustration_simulation.eps, width=400 frac=1.0] Left panel: illustration of the fused ridge estimator (in simulation). The true parameter $\beta$ and its ridge and fused ridge estimates against their spatial order. Right panel: Ridge vs. fused ridge estimates of the DNA copy effect on KRAS expression levels. The dashed, grey vertical bar indicates the location of the KRAS gene. } label{fig:fusedRidgeIllustration - - - - -======= Moments ======= - -The expectation and variance of $\hat{\beta}(\mathbf{\Delta})$ are obtained through application of the same matrix algebra and expectation and covariance rules used in the derivation of their counterparts of the `regular' ridge regression estimator. This leads to: -\begin{align*} -\mathbb{E}[\hat{\beta}(\mathbf{\Delta})] & = (\mathbf{X}^{\top} \mathbf{W} \mathbf{X} + \mathbf{\Delta})^{-1} (\mathbf{X}^{\top} \mathbf{W} \mathbf{X} \beta + \mathbf{\Delta} \beta_0), -\\ -\mbox{Var}[\hat{\beta}(\mathbf{\Delta})] & = \sigma^2 (\mathbf{X}^{\top} \mathbf{W} \mathbf{X} + \mathbf{\Delta})^{-1} \mathbf{X}^{\top} \mathbf{W}^2 \mathbf{X} (\mathbf{X}^{\top} \mathbf{W} \mathbf{X} + \mathbf{\Delta})^{-1}. -\end{align*} -From these expressions similar limiting behaviour as for the `regular' ridge regression case can be deduced. To this end let $\mathbf{V}_{\delta} \mathbf{D}_{\delta} \mathbf{V}_{\delta}^{\top}$ be the eigendecomposition of $\mathbf{\Delta}$ and $d_{\delta,j} = (\mathbf{D}_{\delta})_{jj}$. Furthermore, define (with some abuse of notation) $\lim_{\mathbf{\Delta} \rightarrow \infty}$ as the limit of all $d_{\delta,j}$ simultaneously tending to infinity. Then, $\lim_{\mathbf{\Delta} \rightarrow \infty} \mathbb{E}[\hat{\beta}(\mathbf{\Delta})] = \beta_0$ and $\lim_{\mathbf{\Delta} \rightarrow \infty} \mbox{Var}[\hat{\beta}(\mathbf{\Delta})] = \mathbf{0}_{pp}$. - - -\begin{example} \mbox{ } label{example.gRidge2orthonormalDesign} -\\ -Let $\mathbf{X}$ be an $(n \times p)$-dimensional, orthonormal design matrix. Contrast the regular and generalized ridge regression estimator, the latter with $\mathbf{W} = \mathbf{I}_{pp}$, $\beta_0 = \mathbf{0}_p$ and $\mathbf{\Delta} = \lambda \mathbf{R}$ where $\mathbf{R} = (1-\rho) \mathbf{I}_{pp} + \rho \mathbf{1}_{pp}$ for $\rho \in (-(p-1)^{-1}, 1)$. For $\rho =0$ the two estimators coincide. The variance of the generalized ridge regression estimator then is $\mbox{Var}[ \hat{\beta}(\mathbf{\Delta})] = (\mathbf{I}_{pp} + \mathbf{\Delta})^{-2}$. The efficiency of this estimator, measured by its generalized variance, is: -\begin{align*} -\det \{ \mbox{Var}[ \hat{\beta}(\mathbf{\Delta})] \} & = \{ [1 + \lambda + (p-1) \rho] (1 + \lambda-\rho)^{p-1} \}^{-2}. -\end{align*} -This efficiency attains its minimum at $\rho = 0$. In the present case, the regular ridge regression estimator is thus more efficient than its generalized counterpart. -\end{example} - - -\begin{example} *(MSE with perfect target)* -\\ -Set $\beta_0 = \beta$, i.e. the target is equal to the true value of the regression parameter. Then: -\begin{align*} -\mathbb{E}[\hat{\beta}(\Delta)] & = (\mathbf{X}^{\top} \mathbf{W} \mathbf{X} + \Delta)^{-1} (\mathbf{X}^{\top} \mathbf{W} \mathbf{X} \beta + \Delta \beta) \, \, \, = \, \, \, \beta. -\end{align*} -Hence, irrespective of the choice of $\Delta$, the generalized ridge is then unbiased. Thus: -\begin{align*} -\mbox{MSE}[\hat{\beta}(\Delta)] & = \mbox{tr} \{ -\mbox{Var}[\hat{\beta}(\Delta)] \} -\\ -& = \mbox{tr}[ \sigma^{2} (\mathbf{X}^{\top} \mathbf{W} \mathbf{X} + \mathbf{\Delta})^{-1} \mathbf{X}^{\top} \mathbf{W}^2 \mathbf{X} (\mathbf{X}^{\top} \mathbf{W} \mathbf{X} + \mathbf{\Delta})^{-1}] -\\ -& = \sigma^2 \mbox{tr}[ \mathbf{X}^{\top} \mathbf{W}^2 \mathbf{X} (\mathbf{X}^{\top} \mathbf{W} \mathbf{X} + \mathbf{\Delta})^{-2}]. -\end{align*} -When $\mathbf{\Delta} = \lambda \mathbf{I}_{pp}$, this MSE is smaller than that of the ML regression estimator, irrespective of the choice of $\lambda$. -\end{example} - - -======= The Bayesian connection} label{sect:genRidgeBayes ======= -This generalized ridge estimator can, like the regular ridge estimator, be viewed as a Bayesian estimator. It requires to replace the conjugate prior on $\beta$ by a more general normal law, $\beta \sim \mathcal{N}(\beta_0, \sigma^2 \mathbf{\Delta}^{-1})$, but retains the gamma prior on $\sigma^2$. The joint posterior distribution of $\beta$ and $\sigma^2$ is then obtained analogously (the details are left as Exercise ref{question.generalizedRidgeAndBayes}) to Section ref{sect:Bayes}: -\begin{align*} -f_{\beta, \sigma^2} (\beta, \sigma^2 \, | \, \mathbf{Y}, \mathbf{X}) & = f_Y (\mathbf{Y} \, | \, \mathbf{X}, \beta, \sigma^2) \, f_{\beta}(\beta | \sigma^2) \, f_{\sigma}(\sigma^2) -\\ -& \propto & g_{\beta} (\beta \, | \, \sigma^2, \mathbf{Y}, \mathbf{X}) \, -g_{\sigma^2} (\sigma^2 \, | \, \mathbf{Y}, \mathbf{X}) -\end{align*} -with -\begin{align*} -g_{\beta} (\beta \, | \, \sigma^2, \mathbf{Y}, \mathbf{X}) -& \propto & \exp \Big\{ - \frac{1}{2\sigma^2} \big[ \beta - \hat{\beta}(\mathbf{\Delta}) \big]^{\top} (\mathbf{X}^{\top} \mathbf{X} + \mathbf{\Delta}) \big[ \beta - \hat{\beta}(\mathbf{\Delta}) \big] \Big\}. -\end{align*} -This implies $\mathbb{E}(\beta \, | \, \sigma^2, \mathbf{Y}, \mathbf{X}) = \hat{\beta}(\mathbf{\Delta})$. Hence, the generalized ridge regression estimator too can be viewed as the Bayesian posterior mean estimator of $\beta$ when imposing a multivariate Gaussian prior on the regression parameter. - - - - - -======= Application ======= - -An illustration involving omics data can be found in the explanation of a gene's expression levels in terms of its DNA copy number. The latter is simply the number of gene copies encoded in the DNA. For instance, for most genes on the autosomal chromosomes the DNA copy number is two, as there is a single gene copy on each chromosome and autosomal chromosomes come in pairs. Alternatively, in males the copy number is one for genes that map to the X or Y chromosome, while in females it is zero for genes on the Y chromosome. In cancer the DNA replication process has often been compromised leading to a (partially) reshuffled and aberrated DNA. Consequently, the cancer cell may exhibit gene copy numbers well over a hundred for classic oncogenes. A faulted replication process does - of course - not nicely follow the boundaries of gene encoding regions. This causes contiguous genes to commonly share aberrated copy numbers. With genes being transcribed from the DNA and a higher DNA copy number implying an enlarged availability of the gene's template, the latter is expected to lead to elevated expression levels. Intuitively, one expects this effect to be localized (a so-called *cis*-effect), but some suggest that aberrations elsewhere in the DNA may directly affect the expression levels of distant genes (referred to as a *trans*-effect). - -The *cis*- and *trans*-effects of DNA copy aberrations on the expression levels of the KRAS oncogene in colorectal cancer are investigated. Data of both molecular levels from the TCGA (The Cancer Genome Atlas) repository are downloaded \citep{TCGA2012colon}. The gene expression data are limited to that of KRAS, while for the DNA copy number data only that of chromosome 12, which harbors KRAS, is retained. This leaves genomic profiles of 195 samples comprising 927 aberrations. Both molecular data types are zero centered feature-wise. Moreover, the data are limited to ten - conveniently chosen? - samples. The KRAS expression levels are explained by the DNA copy number aberrations through the linear regression model. The model is fitted by means of ridge regression, with $\lambda \mathbf{\Delta}$ and $\mathbf{\Delta} = \mathbf{I}_{pp}$ and a single-banded $\mathbf{\Delta}$ with unit diagonal and the elements of the first off-diagonal equal to the arbitrary value of $-0.4$. The latter choice appeals to the spatial structure of the genome and encourages similar regression estimates for contiguous DNA copy numbers. The penalty parameter is chosen by means of leave-one-out cross-validation using the squared error loss. - -\lstinputlisting{fusedRidge_KRASexample.r} - -The right panel of Figure ref{fig:fusedRidgeIllustration} shows the ridge regression estimate with both choices of $\mathbf{\Delta}$ and optimal penalty parameters plotted against the chromosomal order. The location of KRAS is indicated by a vertical dashed bar. The ordinary ridge regression estimates show a minor peak at the location of KRAS but is otherwise more or less flat. In the generalized ridge estimates the peak at KRAS is emphasized. Moreover, the region close to KRAS exhibits clearly elevated estimates, suggesting co-abberated DNA. For the remainder the generalized ridge estimates portray a flat surface, with the exception of a single downward spike away from KRAS. Such negative effects are biologically nonsensible (more gene templates leading to reduced expression levels?). On the whole the generalized ridge estimates point towards the *cis*-effect as the dominant genomic regulation mechanism of KRAS expression. The isolated spike may suggest the presence of a *trans*-effect, but its sign is biological nonsensible and the spike is fully absent in the ordinary ridge estimates. This leads us to ignore the possibility of a genomic *trans*-effect on KRAS expression levels in colorectal cancer. - -The sample selection demands justification. It yields a clear illustrate-able difference between the ordinary and ridge estimates. When all samples are left in, the *cis*-effect is clearly present, discernable from both estimates that yield a virtually similar profile. - - -======= Generalized ridge regression ======= - -What is generally referred to as `generalized ridge regression' (cf. \citealp{Hoer1970, Hemm1975}) is the particular case of loss function (ref{form:generalizedRidgeLoss}) in which $\mathbf{W} = \mathbf{I}_{nn}$, $\beta_0 = \mathbf{0}_{p}$, and $\mathbf{\Delta} = \mathbf{V}_{x} \mathbf{\Lambda} \mathbf{V}_x^{\top}$, where $\mathbf{V}_x$ is obtained from the singular value decomposition of $\mathbf{X}$ (i.e., $\mathbf{X} = \mathbf{U}_{x} \mathbf{D}_x \mathbf{V}_x^{\top}$ with its constituents endowed with the usual interpretation) and $\mathbf{\Lambda}$ a positive definite diagonal matrix. This gives the estimator: -\begin{align*} -\hat{\beta}(\mathbf{\Lambda}) & = (\mathbf{X}^{\top} \mathbf{X} + \mathbf{\Delta})^{-1} \mathbf{X}^{\top} \mathbf{Y} -\\ -& = (\mathbf{V}_x \mathbf{D}_x \mathbf{U}_x^{\top} \mathbf{U}_x \mathbf{D}_x \mathbf{V}_x^{\top} + \mathbf{V}_x \mathbf{\Lambda} \mathbf{V}_x^{\top})^{-1} \mathbf{V}_x \mathbf{D}_x \mathbf{U}_x \mathbf{Y} -\\ -& = \mathbf{V}_x (\mathbf{D}_x^2 + \mathbf{\Lambda})^{-1} \mathbf{D}_x \mathbf{U}_x \mathbf{Y}. -\end{align*} -From this last expression it becomes clear how this estimator generalizes the `regular ridge estimator'. The latter shrinks all eigenvalues, irrespectively of their size, in the same manner through a common penalty parameter. The `generalized ridge estimator', through differing penalty parameters (i.e. the diagonal elements of $\mathbf{\Lambda}$), shrinks them individually. - -The generalized ridge estimator coincides with the Bayesian linear regression estimator with the normal prior $\mathcal{N}[\mathbf{0}_p, (\mathbf{V}_x \mathbf{\Lambda} \mathbf{V}_x^{\top})^{-1}]$ on the regression parameter $\beta$ (and preserving the inverse gamma prior on the error variance). Assume $\mathbf{X}$ to be of full column rank and choose $\mathbf{\Lambda} = g^{-1} \mathbf{D}_x^2$ with $g$ a positive scalar. The prior on $\beta$ then - assuming $(\mathbf{X}^{\top} \mathbf{X})^{-1}$ exits - reduces to Zellner's $g$-prior: $\beta \sim \mathcal{N}[\mathbf{0}_p, g (\mathbf{X}^{\top} \mathbf{X})^{-1}]$ \citep{Zell1986}. The corresponding estimator of the regression coefficient is: $\hat{\beta}(g) = g (1+g)^{-1} (\mathbf{X}^{\top} \mathbf{X})^{-1} \mathbf{X}^{\top} \mathbf{Y}$, which is proportional to the unpenalized ordinary least squares estimator of $\beta$. - -For convenience of notation in the analysis of the generalized ridge estimator the linear regression model is usually rewritten as: -\begin{align*} -\mathbf{Y} & = \mathbf{X} \beta + \vvarepsilon \, \, \, = \, \, \, -\mathbf{X} \mathbf{V}_x \mathbf{V}_x^{\top} \beta + \vvarepsilon \, \, \, = \, \, \, \tilde{\mathbf{X}} \aalpha + \vvarepsilon, -\end{align*} -with $\tilde{\mathbf{X}} = \mathbf{X} \mathbf{V}_x = \mathbf{U}_x -\mathbf{D}_x$ (and thus $\tilde{\mathbf{X}}^{\top} \tilde{\mathbf{X}} = \mathbf{D}_x^ 2$) and $\aalpha = \mathbf{V}_x^{\top} \beta$ with loss function $(\mathbf{Y} - \tilde{\mathbf{X}} \aalpha)^{\top} (\mathbf{Y} - \tilde{\mathbf{X}} \aalpha) + \aalpha^{\top} \mathbf{\Lambda} \aalpha$. In the notation above the generalized ridge estimator is then: -\begin{align*} -\hat{\aalpha}(\mathbf{\Lambda}) & = (\tilde{\mathbf{X}}^{\top} \tilde{\mathbf{X}} + \mathbf{\Lambda})^ {-1} \tilde{\mathbf{X}}^{\top} \mathbf{Y} = (\mathbf{D}_x^ 2 + \mathbf{\Lambda})^{-1} \tilde{\mathbf{X}}^{\top} \mathbf{Y}, -\end{align*} -from which one obtains $\hat{\beta}(\mathbf{\Lambda}) = \mathbf{V}_x \hat{\aalpha}(\mathbf{\Lambda})$. Using $\mathbb{E}[\hat{\aalpha}(\mathbf{\Lambda})] = (\mathbf{D}_x^2 + \mathbf{\Lambda})^{-1} \mathbf{D}_x^2 \aalpha$ and $\mbox{Var}[\hat{\aalpha}(\mathbf{\Lambda})] = \sigma^2 (\mathbf{D}_x^2 + \mathbf{\Lambda})^{-1} \mathbf{D}_x^2 (\mathbf{D}_x^2 + \mathbf{\Lambda})^{-1}$, the MSE for the generalized ridge estimator can be written as: -\begin{align*} -\mbox{MSE}[\hat{\aalpha}(\mathbf{\Lambda})] & = \sum_{j=1}^p ( \sigma^2 d_{x,j}^2 + \alpha_j^2 \lambda_{j}^2 ) (d_{x,j}^2 + \lambda_{j} )^{-2}, -\end{align*} -where $d_{x,j} = (\mathbf{D}_x)_{jj}$ and $\lambda_j = (\mathbf{\Lambda})_{jj}$. Having $\aalpha$ and $\sigma^ 2$ available, it is easily seen (equate the derivative w.r.t. $\lambda_j$ to zero and solve) that the MSE of $\hat{\aalpha}(\mathbf{\Lambda})$ is minimized by $\lambda_j = \sigma^2 / \alpha_j^2$ for all $j$. With $\aalpha$ and $\sigma^2$ unknown, cite{Hoer1970} suggest an iterative procedure to estimate the $\lambda_j$'s. Initiate the procedure with the OLS estimates of $\aalpha$ and $\sigma^2$, followed by sequentially updating the $\lambda_j$'s and -the estimates of $\aalpha$ and $\sigma^2$. An analytic expression of the limit of this procedure exists (\citealp{Hemm1975}). This limit, however, still depends on the observed $\mathbf{Y}$ and as such it does not necessarily yield the minimal attainable value of the MSE. This limit may nonetheless still yield a potential gain in MSE. This is investigated in cite{Lawl1981}. Under a variety of cases it seems to indeed outperform the OLS estimator, but there are exceptions. - -======= Conclusion ======= - -To conclude: a note of caution. The generalized ridge penalty is extremely flexible. It can incorporate any prior knowledge on the parameter values (through specification of $\beta_0$) and the relations among these parameters (via $\mathbf{\Delta}$). While a pilot study or literature may provide a suggestion for $\beta_0$, it is less obvious how to choose an informative $\mathbf{\Delta}$ (although a spatial structure is a nice exception). In general, exact knowledge on the parameters should not be incorporated implicitly via the penalty (read: prior) but preferably be used explicitly in the model - the likelihood - itself. Though this may be the viewpoint of a prudent frequentist and a subjective Bayesian might disagree. - - -======= Exercises ======= -\begin{question} \mbox{ } -\\ -Consider the linear regression model $Y_i = \beta_1 X_{i,1} + \beta_2 X_{i,2} + \varepsilon_i$ for $i=1, \ldots, n$. -Suppose estimates of the regression parameters $(\beta_1, \beta_2)$ of this model are obtained through the minimization of the sum-of-squares augmented with a ridge-type penalty: -\begin{align*} -\Big[ \sum_{i=1}^n (Y_i - \beta_1 X_{i,1} - \beta_2 X_{i,2})^2 \Big] + \lambda (\beta_1^2 + \beta_2^2 + 2 \nu \beta_1 \beta_2), -\end{align*} -with penalty parameters $\lambda \in \mathbb{R}_{> 0}$ and $\nu \in (-1, 1)$. - -\begin{compactitem} -\item[*a)*] Sketch (for both $\nu=0$ and $\nu=0.9$) the shape of the parameter constraint induced by the penalty above and describe in words the qualitative difference between both shapes. - -\item[*b)*] When $\nu = -1$ and $\lambda \rightarrow \infty$ the estimates of $\beta_1$ and $\beta_2$ (resulting from minimization of the penalized loss function above) converge towards each other: -$\lim_{\lambda \rightarrow \infty} \hat{\beta}_1(\lambda, -1) = \lim_{\lambda \rightarrow \infty} \hat{\beta}_2(\lambda, -1)$. Motivated by this observation a data scientists incorporates the equality constraint $\beta_1 = \beta = \beta_2$ explicitly into the model, and s/he estimates the `joint regression parameter' $\beta$ through the minimization (with respect to $\beta$) of: -\begin{align*} -\Big[ \sum_{i=1}^n (Y_i - \beta X_{i,1} - \beta X_{i,2})^2 \Big] + \delta \beta^2, -\end{align*} -with penalty parameter $\delta \in \mathbb{R}_{> 0}$. The data scientist is surprised to find that resulting estimate $\hat{\beta}(\delta)$ does not have the same limiting (in the penalty parameter) behavior as the $\hat{\beta}_1(\lambda, -1)$, i.e. $\lim_{\delta \rightarrow \infty} \hat{\beta} (\delta) \not= \lim_{\lambda \rightarrow \infty} \hat{\beta}_1(\lambda, -1)$. Explain the misconception of the data scientist. - -\item[*c)*] Assume that *i)* $n \gg 2$, *ii)* the unpenalized estimates $(\hat{\beta}_1(0, 0), \hat{\beta}_2(0, 0))$ equal $(-2,2)$, and *iii)* that the two covariates $X_1$ and $X_2$ are zero-centered, have equal variance, and are strongly negatively correlated. Consider $(\hat{\beta}_1(\lambda, \nu), \hat{\beta}_2(\lambda, \nu))$ for both $\nu=-0.9$ and $\nu=0.9$. For which value of $\nu$ do you expect the sum of the absolute value of the estimates to be largest? *Hint:* Distinguish between small and large values of $\lambda$ and think geometrically! -\end{compactitem} -\end{question} - -\begin{question} label{question.generalizedRidgeAndBayes} \mbox{ } -\\ -Consider the linear regression model $\mathbf{Y} = \mathbf{X} \beta + \vvarepsilon$ with $\vvarepsilon \sim \mathcal{N}(\mathbf{0}_p, \sigma^2 \mathbf{I}_{pp})$. Assume $\beta \sim \mathcal{N}(\beta_0, \sigma^2 \mathbf{\Delta}^{-1})$ with $\beta_0 \in \mathbb{R}^p$ and $\mathbf{\Delta} \succ 0$ and a gamma prior on the error variance. Verify (i.e., work out the details of the derivation) that the posterior mean coincides with the generalized ridge estimator defined as: -\begin{align*} -\hat{\beta} & = (\mathbf{X}^{\top} \mathbf{X} + \mathbf{\Delta})^{-1} (\mathbf{X}^{\top} \mathbf{Y} + \mathbf{\Delta} \beta_0). -\end{align*} -\end{question} - - - -\begin{question} label{question.ridgeAR1penalty} \mbox{ } -\\ -The ridge penalty may be interpreted as a multivariate normal prior on the regression coefficients: $\beta \sim \mathcal{N}(\mathbf{0}, \lambda^{-1} \mathbf{I}_{pp})$. Different priors may be considered. In case the covariates are spatially related in some sense (e.g. genomically), it may of interest to assume a first-order autoregressive prior: $\beta \sim \mathcal{N}(\mathbf{0}, \lambda^{-1} \SSigma_A)$, in which $\SSigma_A$ is a $p \times p$-correlation matrix with $(\SSigma_A)_{j_1, j_2} = \rho^{ | j_1 - j_2 | } $ for some correlation coefficient $\rho \in [0, 1)$. Hence, -\begin{align*} -\SSigma_A \, \, \, = \, \, \, -\left( -\begin{array}{cccc} -1 & \rho & \ldots & \rho^{p-1} -\\ -\rho & 1 & \ldots & \rho^{p-2} -\\ -\vdots & \vdots & \ddots & \vdots -\\ -\rho^{p-1} & \rho^{p-2} & \ldots & 1 -\end{array} -\right). -\end{align*} - -\begin{compactitem} -\item[*a)*] The penalized loss function associated with this AR(1) prior is: -\begin{align*} -\mathcal{L}(\beta; \lambda, \SSigma_A) & = \| \mathbf{Y} - \mathbf{X} \beta \|_2^2 + \lambda \beta^{\top} \SSigma_A^{-1} \beta. -\end{align*} -Find the minimizer of this loss function. - -\item[*b)*] What is the effect of $\rho$ on the ridge estimates? Contrast this to the effect of $\lambda$. Illustrate this on (simulated) data. - -\item[*c)*] Instead of an AR(1) prior assume a prior with a uniform correlation between the elements of $\beta$. That is, replace $\SSigma_A$ by $\SSigma_U$, given by: -\begin{align*} -\SSigma_U \, \, \, = \, \, \, \left( -\begin{array}{ccc} -1 & \rho & \rho -\\ -\rho & 1 & \rho -\\ -\rho & \rho & 1 -\end{array} -\right) -\end{align*} -\\ -Investigate (again on data) the effect of changing from the AR(1) to the uniform prior on the ridge regression estimates. -\end{compactitem} -\end{question} - - - - -========= Ridge logistic regression ========= label{sect.ridgeLogistic} -# ======= Ridge logistic regression ======= - -Ridge penalized estimation is not limited to the standard linear regression model, but may be used to estimate (virtually) any model. Here we illustrate how it may be used to fit the logistic regression model. To this end we first recap this model and the (unpenalized) maximum likelihood estimation of its parameters. After which the model is estimated by means of ridge penalized maximum likelihood, which will turn out to be a relatively straightforward modification of unpenalized estimation. - -======= Logistic regression ======= - -The logistic regression model explains a binary response variable (through some transformation) by a linear combination of a set of covariates (as in the linear regression model). Denote this response of the $i$-th sample by $Y_i$ with $Y_i \in \{ 0, 1 \}$ for $i=1, \ldots, n$. The $n$-dimensional column vector $\mathbf{Y}$ stacks these $n$ responses. For each sample information on the $p$ explanatory variables $X_{i,1}, \ldots, X_{i,p}$ is available. In row vector form this information is denoted $\mathbf{X}_{i,\ast} = (X_{i,1}, \ldots, X_{i,p})$. Or, in short, $\mathbf{X}_i$ when the context tolerates no confusion. The $(n \times p)$-dimensional matrix $\mathbf{X}$ aggregates these vectors, such that $\mathbf{X}_i$ is the $i$-th row vector. - -The binary response cannot be modelled as in the linear model like $Y_i = \mathbf{X}_i \beta + \varepsilon_i$. With each element of $\mathbf{X}_i$ and $\beta$ assuming a value in $\mathbb{R}$, the linear predictor is not restricted to the domain of the response. This is resolved by modeling $p_i = P(Y_i = 1)$ instead. Still the linear predictor may exceed the domain of the response ($p_i \in [0,1]$). Hence, a transformation is applied to map $p_i$ to $\mathbb{R}$, the range of the linear predictor. -# original latex figure with scale=0.40, angle=0 - -FIGURE: [logistic_effectOfBeta0.eps, width=400 frac=1.0] Top row, left panel: the response curve for various choices of the intercept $\beta_0$. Top row, right panel: the response curve for various choices of the regression coefficent $\beta_1$. Bottom row, left panel: the responce curve for various choices of the link function. Bottom panel, right panel: observations, fits and their deviations. } label{fig.logisticRidge_modelAndFitIllustration -The transformation associated with the logistic regression model is the logarithm of the odds, with the odds defined as: $\mbox{*odds*} = P(\mbox{succes}) / P(\mbox{failure}) = p_i/ (1-p_i)$. The logistic model is then written as $\log[ p_i / (1-p_i)] = \mathbf{X}_i \beta$ for all $i$. Or, expressed in terms of the response: -\begin{align*} -p_i & = P(Y_i = 1) \, \, \, = \, \, \, g^{-1}(\mathbf{X}_i; \beta) \, \, \, = \, \, \,\frac{\exp(\mathbf{X}_i \beta) }{1 + \exp(\mathbf{X}_i \beta) }. -\end{align*} -The function $g(\cdot; \cdot)$ is called the *link function*. It links the response to the explanatory variables. The one above is called the logistic link function. Or short, logit. The regression parameters have tangible interpretations. When the first covariate represents the intercept, i.e. $X_{i,j} = 1$ for all $i$, then $\beta_1$ determines where the link function equals a half when all other covariates fail to contribute to the linear predictor (i.e. where $P (Y_i = 1 \, | \, \mathbf{X}_{i}) = 0.5$ when $\mathbf{X}_{i} \beta = \beta_1$). This is illustrated in the top-left panel of Figure ref{fig.logisticRidge_modelAndFitIllustration} for various choices of the intercept. On the other hand, the regression parameters are directly related to the odds ratio: $\mbox{*odds ratio*} = \mbox{odds}(X_{i,j}+1) / \mbox{odds}(X_{i,j}) = \exp(\beta_j)$. Hence, the effect of a unit change in the $j$-th covariate on the odds ratio is $\exp(\beta_j)$ (see Figure ref{fig.logisticRidge_modelAndFitIllustration}, top-right panel). Other link functions (depicted in Figure ref{fig.logisticRidge_modelAndFitIllustration}, bottom-left panel) are common, e.g. the *probit*: $p_i = \Phi_{0,1}(\mathbf{X}_i \beta)$; the *cloglog*: $p_i = \frac{1}{\pi} \arctan(\mathbf{X}_i \beta) + \frac{1}{2}$; the *Cauchit*: $p_i = \exp[ - \exp(\mathbf{X}_i \beta)]$. All these link function are invertible. Irrespective of the choice of the link function, the binary data are thus modelled as $Y_i \sim \mathcal{B}[g^{-1}(\mathbf{X}_i; \beta), 1]$. That is, as a single draw from the Binomial distribution with success probability $g^{-1}(\mathbf{X}_i; \beta)$. - - -Let us now estimate the parameter of the logistic regression model by means of the maximum likelihood method. The likelihood of the experiment is then: -\begin{align*} -L(\mathbf{Y} \, | \, \mathbf{X}; \beta) & = \prod_{i=1}^n \big[ P(Y_i = 1 \, | \, \mathbf{X}_i) \big]^{Y_i} \big[ P(Y_i = 0 \, | \, \mathbf{X}_i) \big]^{1-Y_i}. -\end{align*} -After taking the logarithm and some ready algebra, the log-likelihood is found to be: -\begin{align*} -\mathcal{L}(\mathbf{Y} \, | \, \mathbf{X}; \beta) & = \sum_{i=1}^n \big\{ Y_i \mathbf{X}_i \beta - \log [ 1 + \exp(\mathbf{X}_i \beta) ] \big\}. -\end{align*} -Differentiate the log-likelihood with respect to $\beta$, equate it zero, and obtain the estimating equation for $\beta$: - -!bt - -!bt -\begin{align} label{form:logisticRidge_estimatingEquationOfBeta} -\frac{\partial \mathcal{L}}{\partial \beta } & = \sum_{i=1}^n \Big[ Y_i - \frac{\exp(\mathbf{X}_i \beta)}{ 1 + \exp(\mathbf{X}_i \beta)} \Big] \mathbf{X}_i^{\top} \, \, \, = \, \, \, \mathbf{0}_p. -\end{align} -!et -!et -The ML estimate of $\beta$ strikes a (weighted by the $\mathbf{X}_i$) balance between observation and model. Put differently (and illustrated in the bottom-right panel of Figure ref{fig.logisticRidge_modelAndFitIllustration}), a curve is fit through data by minimizing the distance between them: at the ML estimate of $\beta$ a weighted average of their deviations is zero. - -The maximum likelihood estimate of $\beta$ is evaluated by solving Equation (ref{form:logisticRidge_estimatingEquationOfBeta}) with respect to $\beta$ by means of the Newton-Raphson algorithm. The Newton-Raphson algorithm iteratively finds the zeros of a smooth enough function $f(\cdot)$. Let $x_0$ denote an initial guess of the zero. Then, approximate $f(\cdot)$ around $x_0$ by means of a first order Taylor series: $f(x) \approx x_0 + (x - x_0) \, (d f / d x) |_{x=x_0}$. Solve this for $x$ and obtain: $x = x_0 - [ (d f / d x) |_{x=x_0} ]^{-1} f(x_0)$. Let $x_1$ be the solution for $x$, use this as the new guess and repeat the above until convergence. When the function $f(\cdot)$ has multiple arguments, is vector-valued and denoted by $\vec{\mathbf{f}}$, and the Taylor approximation becomes: $\vec{\mathbf{f}}(\mathbf{x}) \approx \mathbf{x}_0 + J \vec{\mathbf{f}} \big|_{\mathbf{x}=\mathbf{x}_0} (\mathbf{x} - \mathbf{x}_0)$ with -\begin{align*} -J \vec{\mathbf{f}} = \left( -\begin{array}{llll} -\frac{\partial f_1}{\partial x_1} & \frac{\partial f_1}{\partial x_2} & \ldots & \frac{\partial f_1}{\partial x_p} -\\ -\frac{\partial f_1}{\partial x_1} & \frac{\partial f_2}{\partial x_2} & \ldots & \frac{\partial f_2}{\partial x_p} -\\ -\vdots & \vdots & \ddots & \vdots -\\ -\frac{\partial f_q}{\partial x_1} & \frac{\partial f_q}{\partial x_2} & \ldots & \frac{\partial f_q}{\partial x_p} -\end{array} -\right), -\end{align*} -the Jacobi matrix. An update of $x_0$ is now readily constructed by solving (the approximation for) $\vec{\mathbf{f}}(\mathbf{x}) = \mathbf{0}$ for $\mathbf{x}$. - -When applied here to the maximum likelihood estimation of the regression parameter $\beta$ of the logistic regression model, the Newton-Raphson update is: -\begin{align*} -\hat{\beta}^{\mbox{{\scriptsize new}}} & = \hat{\beta}^{\mbox{{\scriptsize old}}} - \Big( \frac{\partial^2 \mathcal{L}}{\partial \beta \partial \beta^{\top}} \Big)^{-1} \Big|_{\beta = \hat{\beta}^{\mbox{{\tiny old}}} } \, \, \frac{\partial \mathcal{L}}{\partial \beta } \Big|_{\beta = \hat{\beta}^{\mbox{{\tiny old}}} } -\end{align*} -where the Hessian of the log-likelihood equals: -\begin{align*} -\frac{\partial^2 \mathcal{L}}{\partial \beta \partial \beta^{\top}} & = - \sum_{i=1}^n \frac{\exp(\mathbf{X}_i \beta)}{ [1 + \exp(\mathbf{X}_i \beta)]^2} \mathbf{X}_i^{\top} \mathbf{X}_i. -\end{align*} -Iterative application of this updating formula converges to the ML estimate of $\beta$. - -The Newton-Raphson algorithm is often reformulated as an iteratively re-weighted least squares algorithm. Hereto, first write the gradient and Hessian in matrix notation: -\begin{align*} -\frac{\partial \mathcal{L}}{\partial \beta } \, \, \, = \, \, \, \mathbf{X}^{\top} [\mathbf{Y} - \vec{\mathbf{g}}^{-1}( \mathbf{X}; \beta)] -& \mbox{ and } & -\frac{\partial^2 \mathcal{L}}{\partial \beta \partial \beta^{\top}} \, \, \, = \, \, \, - \mathbf{X}^{\top} \mathbf{W} \mathbf{X}, -\end{align*} -where $\vec{\mathbf{g}}^{-1}( \mathbf{X}; \beta) = [g^{-1}( \mathbf{X}_{1, \ast}; \beta), \ldots, g^{-1}( \mathbf{X}_{n, \ast}; \beta)]^{\top}$ with $g^{-1}(\cdot; \cdot) = \exp(\cdot; \cdot) / [1 + \exp(\cdot; \cdot)]$ and $\mathbf{W}$ diagonal with $(\mathbf{W})_{ii} = \exp(\mathbf{X}_i \hat{\beta}^{\mbox{{\scriptsize old}}} ) [ 1 + \exp(\mathbf{X}_i \hat{\beta}^{\mbox{{\scriptsize old}}} ) ]^{-2}$. The updating formula of the estimate then becomes: -\begin{align*} -\hat{\beta}^{\mbox{{\scriptsize new}}} & = \hat{\beta}^{\mbox{{\scriptsize old}}} + (\mathbf{X}^{\top} \mathbf{W} \mathbf{X})^{-1} \mathbf{X}^{\top} [\mathbf{Y} - \vec{\mathbf{g}}^{-1}( \mathbf{X}; \beta^{\mbox{{\scriptsize old}}})] -\\ -& = (\mathbf{X}^{\top} \mathbf{W} \mathbf{X})^{-1} \mathbf{X}^{\top} \mathbf{W} \{ \mathbf{X} \hat{\beta}^{\mbox{{\scriptsize old}}} + \mathbf{W}^{-1} [\mathbf{Y} - \vec{\mathbf{g}}^{-1}( \mathbf{X}; \beta^{\mbox{{\scriptsize old}}})] \} -\\ -& = (\mathbf{X}^{\top} \mathbf{W} \mathbf{X})^{-1} \mathbf{X}^{\top} \mathbf{W} \mathbf{Z}, -\end{align*} -where $\mathbf{Z} = \{ \mathbf{X} \hat{\beta}^{\mbox{{\scriptsize old}}} + \mathbf{W}^{-1} [\mathbf{Y} - \vec{\mathbf{g}}^{-1}( \mathbf{X}; \beta^{\mbox{{\scriptsize old}}})] \}$. The Newton-Raphson update is thus the solution to the following weighted least squares problem: -\begin{align*} -\hat{\beta}^{\mbox{{\scriptsize new}}} & = \arg \min_{\beta} (\mathbf{Z} - \mathbf{X} \beta)^{\top} \mathbf{W} (\mathbf{Z} - \mathbf{X} \beta). -\end{align*} -Effectively, at each iteration the *adjusted response* $\mathbf{Z}$ is regressed on the covariates that comprise $\mathbf{X}$. For more on logistic regression confer the monograph of cite{Hosm2013}. - - -======= Ridge estimation ======= - -High-dimensionally, the linear predictor $\mathbf{X} \beta$ may be uniquely defined, but the maximum likelihood estimate of the logistic regression parameter is not. Assume $p > n$ and an estimate $\hat{\beta}$ available. Due to the high-dimensionality, the null space of $\mathbf{X}$ is non-trivial. Hence, let $\ggamma \in \mbox{null}(\mbox{span}(\mathbf{X}))$. Then: $\mathbf{X} \hat{\beta} = \mathbf{X} \hat{\beta} + \mathbf{X} \ggamma = \mathbf{X} (\hat{\beta} + \ggamma)$. As the null space is a $p-n$-dimensional subspace, $\ggamma$ need not equal zero. Hence, an infinite number of estimates of the logistic regression parameter exists that yield the same log-likelihood. Augmentation of the loss function with a ridge penalty resolves the matter, as their sum is strictly concave in $\beta$ (not convex as a maximum rather than a minimum is sought here) and thereby has a unique maximum. - -# original latex figure with scale=0.40, angle=0 - -FIGURE: [logisticPenLL2ridgePenalty.eps, width=400 frac=1.0] Top row, left panel: contour plot of the penalized log-likelihood of a logistic regression model with the ridge constraint (red line). Top row, right panel: the regularization paths of the ridge estimator of the logistic regression parameter. Bottom row, left panel: variance of the ridge estimator of the logistic regression parameter against the logarithm of the penalty parameter. Bottom panel, right panel: the predicted success probability versus the linear predictor for various choices of the penalty parameter. } label{fig.logisticRidge_effectOfPenalization -\mbox{ } - - -Ridge maximum likelihood estimates of the logistic model parameters are found by the maximization of the ridge penalized loglikelihood (cf. \citealt{Scha1984,LeCe1992}): -\begin{align*} -\mathcal{L}^{\mbox{{\tiny pen}}}(\mathbf{Y}, \mathbf{X}; \beta, \lambda) & = \mathcal{L} (\mathbf{Y}, \mathbf{X}; \beta) - \tfrac{1}{2} \lambda \| \beta \|_2^2 -\\ -& = \sum_{i=1}^n \big\{ Y_i \mathbf{X}_i \beta - \log [ 1 + \exp(\mathbf{X}_i \beta) ] \big\} - \tfrac{1}{2} \lambda \beta^{\top} \beta, -\end{align*} -where the second summand is the ridge penalty (the sum of the square of the elements of $\beta$) with $\lambda$ the penalty parameter. Note that as in Section ref{sect.constrainedEstimation} maximization of this penalized loss function can be reformulated as a constrained estimation problem. This is illustrated by the top left panel of Figure ref{fig.logisticRidge_effectOfPenalization}, which depicts the contours (black lines) of the log-likelihood and the spherical domain of the parameter (red line). The optimization of the above loss function proceeds, due to the differentiability of the penalty, fully analogous to the unpenalized case and uses the Newton-Raphson algorithm for solving the (penalized) estimating equation. Hence, the unpenalized ML estimation procedure is modified straightforwardly by replacing gradient and Hessian by their `penalized' counterparts: -\begin{align*} -\frac{\partial \mathcal{L}^{\mbox{{\tiny pen}}}}{\partial \beta } \, \, \, = \, \, \, \frac{\partial \mathcal{L}}{\partial \beta } - \lambda \beta & \mbox{ and } & \frac{\partial^2 \mathcal{L}^{\mbox{{\tiny pen}}}}{\partial \beta \partial \beta^{\top}} \, \, \, = \, \, \, \frac{\partial^2 \mathcal{L}}{\partial \beta \partial \beta^{\top}} - \lambda \mathbf{I}_{pp}. -\end{align*} -With these at hand, the Newton-Raphson algorithm is (again) reformulated as an iteratively re-weighted least squares algorithm with the updating step changes accordingly to: -\begin{align*} -\hat{\beta}^{\mbox{{\scriptsize new}}} & = \hat{\beta}^{\mbox{{\scriptsize old}}} + \mathbf{V}^{-1} \{ \mathbf{X}^{\top} [\mathbf{Y} - \vec{\mathbf{g}}^{-1}( \mathbf{X}; \beta^{\mbox{{\scriptsize old}}}) ] - \lambda \beta^{\mbox{{\scriptsize old}}} \} -\\ -& = \mathbf{V}^{-1} \mathbf{V} \hat{\beta}^{\mbox{{\scriptsize old}}} - \lambda \mathbf{V}^{-1} \hat{\beta}^{\mbox{{\scriptsize old}}} + \mathbf{V}^{-1} \mathbf{X}^{\top} \mathbf{W} \mathbf{W}^{-1} [\mathbf{Y} - \vec{\mathbf{g}}^{-1}( \mathbf{X}; \beta^{\mbox{{\scriptsize old}}})] -\\ -& = \mathbf{V}^{-1} \mathbf{X}^{\top} \mathbf{W} \{ \mathbf{X} \hat{\beta}^{\mbox{{\scriptsize old}}} + \mathbf{W}^{-1} [\mathbf{Y} - \vec{\mathbf{g}}^{-1}( \mathbf{X}; \beta^{\mbox{{\scriptsize old}}})] \} -\\ -& = [\mathbf{X}^{\top} \mathbf{W} \mathbf{X} + \lambda \mathbf{I}_{pp} ]^{-1} \mathbf{X}^{\top} \mathbf{W} \mathbf{Z}, -\end{align*} -where $\mathbf{V} = \mathbf{X}^{\top} \mathbf{W} \mathbf{X} + \lambda \mathbf{I}_{pp}$ and $\mathbf{W}$ and $\mathbf{Z}$ as before. Hence, use this to update the estimate of $\beta$ until convergence, which yields the desired ridge ML estimate. - -Obviously, the ridge estimate of the logistic regression parameter tends to zero as $\lambda \rightarrow \infty$. Now consider a linear predictor with an intercept that is left unpenalized. When $\lambda$ tends to infinity, all regression coefficients but the intercept vanish. The intercept is left to model the success probability. Hence, in this case $\lim_{\lambda \rightarrow \infty} \hat{\beta}_0 (\lambda) = \log [ \tfrac{1}{n} \sum_{i=1}^n Y_i / \tfrac{1}{n} \sum_{i=1}^n (1-Y_i)]$. - - -# original latex figure with scale=0.40, angle=0 - -FIGURE: [logisticRidge_effectOnPrediction_lambda0.eps, width=400 frac=1.0] The realized design as scatter plot ($X_1$ vs $X_2$ overlayed by the success (\textcolor{red}{RED}) and failure regions (\textcolor{green}{GREEN}) for various choices of the penalty parameter: $\lambda = 0$ (top row, left panel), $\lambda = 10$ (top row, right panel) $\lambda = 40$ (bottom row, left panel), $\lambda = 100$ (bottom row, right panel).} label{fig.logisticRidge_effectOnPrediction - - - -The effect of the ridge penalty on parameter estimates propagates to the predictor $\hat{p}_i$. The linear predictor of the linear regression model involving the ridge estimator $\mathbf{X}_i \hat{\beta}(\lambda)$ shrinks towards a common value for each $i$, leading to a scale difference between observation and predictor (as seen before in Section ref{sect.ridgeRegressionDataIllustration}). This behaviour transfers to the ridge logistic regression predictor, as is illustrated on simulated data. The dimension and sample size of these data are $p=2$ and $n=200$, respectively. The covariate data are drawn from the standard normal, while that of the response is sampled from a Bernoulli distribution with success probability $P(Y_i=1) = \exp(2 X_{i,1} - 2 X_{i,2}) / [ 1 + \exp(2 X_{i,1} - 2 X_{i,2})]$. The logistic regression model is estimated from these data by means of ridge penalized likelihood maximization with various choices of the penalty parameter. The bottom right plot in Figure ref{fig.logisticRidge_effectOfPenalization} shows the predicted success probability versus the linear predictor for various choices of the penalty parameter. Larger values of the penalty parameter $\lambda$ flatten the slope of this curve. Consequently, for larger $\lambda$ more excessive values of the covariates are needed to achieve the same predicted success probability as those obtained with smaller $\lambda$ at more moderate covariate values. The implications for the resulting classification may become clearer when studying the effect of the penalty parameter on the `failure' and `success regions' respectively defined by: -\\ -\indent $\{(x_1, x_2) : P({\color{green}{\mathbf{Y=0}}} \, | \, X_1=x_1, X_2=x_2, \hat{\beta}(\lambda)) > 0.75 \}$, -\\ -\indent $\{(x_1, x_2) : P({\color{red}{\mathbf{Y=1}}} \, | \, X_1=x_1, X_2=x_2, \hat{\beta}(\lambda)) > 0.75 \}$. -\\ -This separates the design space in a light red (`failure') and light green (`success') domain. The white bar between them is the domain where samples cannot be classified with high enough certainty. As $\lambda$ grows, so does the white area that separates the failure and success regions. Hence, as stronger penalization shrinks the logistic regression parameter estimate towards zero, it produces a predictor that is less outspoken in its class assignments. - - - - -======= Moments ======= - -The $1^{\mbox{{\tiny st}}}$ and $2^{\mbox{{\tiny nd}}}$ order moment of the ridge ML parameter of the logistic model may be approximated by the final update of the Newton-Raphson estimate. Assume the one-to-last update $\hat{\beta}^{\mbox{{\scriptsize old}}}$ to be non-random and proceed as for the ridge estimator of the linear regression model parameter to arrive at: -# \begin{align*} -# & & \hat{\beta}^{\mbox{{\scriptsize new}}} = [\mathbf{X}^{\top} \mathbf{W} \mathbf{X} + 2 \lambda \mathbf{I}_{p \times p} ]^{-1} \mathbf{X}^{\top} \mathbf{W} \mathbf{z} -# \end{align*} -\begin{align*} -\mathbb{E} \big( \hat{\beta}^{\mbox{{\scriptsize new}}} \big) & = [\mathbf{X}^{\top} \mathbf{W} \mathbf{X} + \lambda \mathbf{I}_{pp} ]^{-1} \mathbf{X}^{\top} \mathbf{W} \mathbb{E}( \mathbf{Z}), -\\ -\mbox{Var} \big( \hat{\beta}^{\mbox{{\scriptsize new}}} \big) & = [\mathbf{X}^{\top} \mathbf{W} \mathbf{X} + \lambda \mathbf{I}_{pp} ]^{-1} \mathbf{X}^{\top} \mathbf{W} \big[ \mbox{Var} ( \mathbf{Z} ) \big] \mathbf{W} \mathbf{X} [\mathbf{X}^{\top} \mathbf{W} \mathbf{X} + \lambda \mathbf{I}_{pp} ]^{-1}, -\end{align*} -with -\begin{align*} -\mathbb{E}(\mathbf{Z}) & = \{ \mathbf{X} \hat{\beta}^{\mbox{{\scriptsize old}}} + \mathbf{W}^{-1} [\mathbb{E}(\mathbf{Y}) - \vec{\mathbf{g}}^{-1}( \mathbf{X}; \beta^{\mbox{{\scriptsize old}}})] \}, -\\ -\mbox{Var}(\mathbf{Z}) & = \mathbf{W}^{-1} \mbox{Var}(\mathbf{Y}) \mathbf{W}^{-1} = \mathbf{W}^{-1}, -\end{align*} -where the identity $\mbox{Var}(\mathbf{Y}) = \mathbf{W}$ follows from the variance of a Binomial distributed random variable. From these expressions similar properties as for the ridge ML estimate of the regression parameter of the linear model may be deduced. For instance, the ridge ML estimate of the logistic regression parameter converges to zero as the penalty parameter tends to infinity (confer the top right panel of Figure ref{fig.logisticRidge_effectOfPenalization}). Similarly, their variances vanish as $\lambda \rightarrow \infty$ (illustrated in the bottom left panel of Figure ref{fig.logisticRidge_effectOfPenalization}). - -======= The Bayesian connection ======= - -All penalized estimators can be formulated as Bayesian estimators, including the ridge logistic estimator. In particular, ridge estimators correspond to Bayesian estimators with a multivariate normal prior on the regression coefficients. Thus, assume $\beta \sim \mathcal{N}(\mathbf{0}_p, \mathbf{\Delta}^{-1})$. The posterior distribution of $\beta$ then is: -\begin{align*} -f_{\beta}(\beta \, | \, \mathbf{Y}, \mathbf{X}) & \propto & \Big\{ \prod_{i=1}^n \big[ P(Y_i = 1 \, | \, \mathbf{X}_i) \big]^{Y_i} \big[ P(Y_i = 0 \, | \, \mathbf{X}_i) \big]^{1-Y_i} \Big\} \exp( - \tfrac{1}{2} \beta \mathbf{\Delta} \beta). -\end{align*} -This does not coincide with any standard distribution. But, under appropriate conditions, the posterior distribution is asymptotically normal. This invites a (multivariate) normal approximation to the posterior distribution above. The Laplace's method provides (cf. \citealp{Bish2006}). - -# original latex figure with scale=0.40, angle=0 - -FIGURE: [logisticRidge_laplace2posterior.eps, width=400 frac=1.0] Right panel: Laplace approximation to the posterior density of the Bayesian logistic regression parameter.} label{fig.logisticRidge_MSEandLaplace2posterior - -Laplace's method *i)* centers the normal approximation at the mode of the posterior, and *ii)* chooses the covariance to match the curvature of the posterior at the mode. The posterior mode is the location of the maximum of the posterior distribution. The location of this maximum coincides with that of the logarithm of the posterior. The latter is the log-likelihood augmented with a ridge penalty. Hence, the posterior mode, which is taken as the mean of the approximating Gaussian, coincides -with the ridge logistic estimator. For the covariance of the approximating Gaussian, the logarithm of the posterior is approximated by a second order Taylor series around the posterior mode and limited to second order terms: -\begin{align*} -\log[f_{\beta}(\beta \, | \, \mathbf{Y}, \mathbf{X})] & \propto & -\left. \log[f_{\beta}(\beta \, | \, \mathbf{Y}, \mathbf{X})] -\right|_{\beta = \hat{\beta}_{\mbox{{\tiny MAP}}}} -\\ -& & + \tfrac{1}{2} (\beta - \hat{\beta}_{\mbox{{\tiny MAP}}})^{\top} \left. \frac{\partial^2}{\partial \beta \partial \beta^{\top}} -\log[f_{\beta}(\beta \, | \, \mathbf{Y}, \mathbf{X})] - \right|_{\beta = \hat{\beta}_{\mbox{{\tiny MAP}}}} (\beta - \hat{\beta}_{\mbox{{\tiny MAP}}})^{\top}, -\end{align*} -in which the first order term cancels as the derivative of $f_{\beta}(\beta \, | \, \mathbf{Y}, \mathbf{X})$ with respect to $\beta$ vanishes at the posterior mode - its maximum. Take the exponential of this approximation and match its arguments to that of a multivariate Gaussian $\exp[-\tfrac{1}{2} (\beta - \mmu_{\beta})^{\top} \mathbf{\Sigma}_{\beta}^{-1} (\beta - \mmu_{\beta})]$. The covariance of the sought Gaussian approximation is thus the inverse of the Hessian of the negative penalized log-likelihood. Put together the posterior is approximated by: -\begin{align*} -\beta \, | \, \mathbf{Y}, \mathbf{X} \sim \mathcal{N} \Big( \hat{\beta}_{\mbox{{\tiny MAP}}}, \Big\{ \mathbf{\Delta} + \sum_{i=1}^n \frac{\exp(\mathbf{X}_i \beta)}{ [1+ \exp(\mathbf{X}_i \beta) ]^2 } \mathbf{X}_i \mathbf{X}_i^{\top} \Big\}^{-1} \Big). -\end{align*} -The Gaussian approximation is convenient but need not be good. Fortunately, the Bernstein-Von Mises Theorem \citep{VdVa2000} tells it is very accurate when the model is regular, the prior smooth, and the sample size sufficiently large. The quality of the approximation for an artificial example data set is shown in Figure ref{fig.logisticRidge_MSEandLaplace2posterior}. - -======= Penalty parameter selection ======= - -As before the penalty parameter may be chosen through $K$-fold cross-validation. For the $K=n$ case cite{Meij2013} describe a computationally efficient approximation of the leave-one-out cross-validated loglikelihood. It is based on the exact evaluation of the LOOCV loss, discussed in Section ref{subsect.crossvalidation}, that avoided resampling. The approach of cite{Meij2013} hinges upon the first-order Taylor expansion of the left-out penalized loglikelihood of the left-out estimate $\hat{\beta}_{-i} (\lambda)$ around $\hat{\beta} (\lambda)$, which yields an approximation of the former: -\begin{align*} -\hat{\beta}_{-i} (\lambda) & \approx \hat{\beta} (\lambda) - -\left( \left. \frac{\partial^2 \mathcal{L}_{-i}^{\mbox{{\tiny pen}}}}{\partial \beta \partial \beta^{\top}} \right|_{\beta = \hat{\beta}(\lambda)} \right)^{-1} \left. \frac{\partial \mathcal{L}_{-i}^{\mbox{{\tiny pen}}}}{\partial \beta } \right|_{\beta = \hat{\beta}(\lambda)} -\\ -& = \hat{\beta} (\lambda) + (\mathbf{X}_{- i, \ast}^{\top} \mathbf{W}_{-i, -i} \mathbf{X}_{- i, \ast} + \lambda \mathbf{I}_{pp})^{-1} \{ \mathbf{X}_{- i, \ast}^{\top} [\mathbf{Y}_{-i} - \vec{\mathbf{g}}^{-1}(\mathbf{X}_{-i, \ast}; \hat{\beta}(\lambda))] - \lambda \hat{\beta}(\lambda) \}. -\end{align*} -This approximation involves the inverse of a $p \times p$ dimensional matrix, which amounts to the evaluation of $n$ such inverses for the LOOCV loss. As in Section ref{subsect.crossvalidation} this may be avoided. Rewrite both the gradient and the Hessian of the left-out loglikelihood in the approximation of the preceding display: -\begin{align*} -\mathbf{X}_{-i, \ast}^{\top} \{ \mathbf{Y}_{-i} - \vec{\mathbf{g}}^{-1}(\mathbf{X}_{-i, \ast}; \hat{\beta}(\lambda)]\} - \lambda \hat{\beta}(\lambda) -& = \mathbf{X}^{\top} \{ \mathbf{Y} - \vec{\mathbf{g}}^{-1}[\mathbf{X}; \hat{\beta}(\lambda)]\} - \lambda \hat{\beta}(\lambda) -- \mathbf{X}_{i, \ast}^{\top} \{Y_{i} - g^{-1}[\mathbf{X}_{i, \ast}; \hat{\beta}(\lambda)]\} -\\ -& = - \mathbf{X}_{i, \ast}^{\top} \{Y_{i} - g^{-1}[\mathbf{X}_{i, \ast}; \hat{\beta}(\lambda)]\} -\end{align*} -and -\begin{align*} -(\mathbf{X}_{- i, \ast}^{\top} \mathbf{W}_{-i, -i} \mathbf{X}_{- i, \ast} + \lambda \mathbf{I}_{pp})^{-1} & = (\mathbf{X}^{\top} \mathbf{W} \mathbf{X} + \lambda \mathbf{I}_{pp})^{-1} + \mathbf{W}_{ii} (\mathbf{X}^{\top} \mathbf{W} \mathbf{X} + \lambda \mathbf{I}_{pp})^{-1} \mathbf{X}_{i, \ast}^{\top} -\\ -& & \qquad \qquad \qquad \qquad \qquad \quad [ 1 - \mathbf{H}_{ii}(\lambda)]^{-1} \mathbf{X}_{i, \ast} (\mathbf{X}^{\top} \mathbf{W} \mathbf{X} + \lambda \mathbf{I}_{pp})^{-1}, -\end{align*} -where the Woodbury identity has been used and now $\mathbf{H}_{ii}(\lambda) = \mathbf{W}_{ii} \mathbf{X}_{i, \ast}(\mathbf{X}^{\top} \mathbf{W} \mathbf{X} + \lambda \mathbf{I}_{pp})^{-1} \mathbf{X}_{i, \ast}^{\top}$. Substitute both in the approximation of the left-out ridge logistic regression estimator and manipulate as in Section ref{subsect.crossvalidation} to obtain: -\begin{align*} -\hat{\beta}_{- i}(\lambda) & \approx \hat{\beta}(\lambda) - (\mathbf{X}^{\top} \mathbf{W} \mathbf{X} + \lambda \mathbf{I}_{pp})^{-1} \mathbf{X}_{i, \ast}^{\top} [ 1 - \mathbf{H}_{ii}(\lambda)]^{-1} [ Y_i - g^{-1}(\mathbf{X}_{i, \ast}; \hat{\beta}(\lambda)) ]. -\end{align*} -Hence, the leave-one-out cross-validated loglikelihood $\sum_{i=1}^n \mathcal{L} [Y_i \, | \, \mathbf{X}_{i, \ast}, \hat{\beta}_{-i}(\lambda)]$ can now be evaluated by means of a single inverse of a $p \times p$ dimensional matrix and some matrix multiplications. For the performance of this approximation in terms of accuracy and speed confer cite{Meij2013}. - - - - - -