EconStatsCraft rigorous, plain-spoken econometrics
Econometrics that explains itself.
Regression, panel data, time series and the whole battery of tests. Every result is followed by a verdict you can defend.
Load a dataset to see it here.
EconStatsCraft › Ridge / Lasso / Elastic Net
Regression with a penalty on the size of the coefficients, so a model with more regressors than you could justify in an OLS still estimates. Lasso sets some coefficients to exactly zero and so selects; ridge shrinks everything and so stabilises. λ is chosen by cross-validation, and the coefficient path shows which variables leave the model first.
With sixty candidate regressors and a hundred and twenty rows, OLS will fit the training data beautifully and predict terribly, because it spends its degrees of freedom fitting noise. Shrinkage deliberately biases the coefficients towards zero. That sounds like vandalism and is not: a little bias buys a large reduction in variance, and prediction error is the sum of both.
When you have more candidate regressors than an OLS can sensibly carry - a long list of controls, many lags, a wide administrative dataset. Ridge when the regressors are collinear and you want stable estimates of all of them. Lasso when you want the data to narrow a long list down. If you have five regressors and a theory about each, use OLS.
Ridge minimises \lVert y-X\beta\rVert^2+\lambda\lVert\beta\rVert_2^2, with the closed form \hat{\beta}=(X'X+\lambda I)^{-1}X'y. Adding \lambda I makes the matrix invertible even when p>n, which is why ridge exists at all in the wide case. Lasso instead penalises the \ell_1 norm, \lVert y-X\beta\rVert^2+\lambda\lVert\beta\rVert_1, which has no closed form but does have corners in its constraint region at the axes - and a corner is exactly where a coefficient becomes precisely zero, which is why lasso selects and ridge does not. Elastic net mixes them. The bias-variance identity is what justifies all of it: E[(y-\hat{f})^2]=\text{Bias}^2+\text{Var}+\sigma^2, and \lambda trades the first against the second.
\hat\beta = \arg\min_\beta \Big\{ \tfrac{1}{2n}\lVert y - X\beta \rVert_2^2 + \lambda \big[ \alpha \lVert \beta \rVert_1 + \tfrac{1-\alpha}{2}\lVert \beta \rVert_2^2 \big] \Big\}
Six growth regressors on 110 countries, with lasso and a penalty of λ = 0.01081 chosen by five-fold cross-validation. It keeps all six - which is the honest outcome here rather than a disappointing one: with six candidate regressors and no genuinely irrelevant ones to discard, there is nothing for the penalty to remove, and a method that dropped variables anyway would be doing harm. Compare the penalised and OLS columns and the shrinkage is visible but small: log initial GDP goes from -0.45465 to -0.44739, population growth from -0.49490 to -0.48291, each pulled a percent or two towards zero. In-sample R² falls from 0.6432 to 0.6426, which is what you pay. The standardised column is the one to read for importance, because the raw coefficients are on six different scales - investment has the smallest raw coefficient of the three largest standardised effects. And note what none of this licenses: the penalty was chosen by looking at the data, so a t-test on any surviving coefficient is not a valid test of anything.
| If you see this | It means | Do this |
|---|---|---|
| Cross-validated lambda at the edge of the grid | The grid is too narrow | Widen it; the optimum is outside |
| Ridge and OLS almost identical | lambda near zero: no overfitting to fix | n is large relative to p. Shrinkage is not needed |
| Lasso keeping nothing | lambda far too large, or no signal | Check the cross-validation curve is U-shaped |
| Coefficients differing wildly across CV folds | Correlated predictors, unstable selection | Use elastic net or report selection frequencies |
| Reporting p-values on lasso-selected variables | Post-selection inference | Invalid. Use sample splitting or selective inference |
| Test error above the training error by a lot | Still overfitting | Increase lambda, or use the one-standard-error rule |
Model comparison, for choosing among these by held-out error. OLS, which is the lambda = 0 case.
Regression vs machine learning · Random forest · Gradient boosting
Line chart · Area chart · Bar chart · Stacked bar · Scatter plot · Bubble chart · Histogram · Box plot · Pie chart · Heat map · Rebased to 100 · Lorenz curve and Gini
World map · Bivariate map · Flow map · India - state map · India - district map
Descriptive statistics · Summary by group · Two-way table · Classical statistical tests
Multiple regression (OLS) · Logit / Probit · Tobit (censored) · Truncated regression · Multinomial logit · Ordered logit / probit · Quantile regression · Poisson / Negative binomial
Time-varying coefficients (Kalman) · Unit root tests · Correlogram (ACF / PACF) · ARIMA / SARIMA · Rolling-origin cross-validation · Theta method · Unobserved components · STL forecasting · Forecast combination · Markov regime switching · Change frequency (resample) · ARCH / GARCH volatility · Decompose & filter · Spectral analysis · Exponential smoothing · Forecast accuracy
Yield curve (Nelson–Siegel / Svensson) · Dynamic factor model · Dynamic regression (ARIMAX) · Structural VAR · VAR · Granger causality · Cointegration · VECM · ARDL & bounds test
Panel regression · Panel cointegration tests · Heterogeneous panel: Mean Group & PMG · Gravity model of trade · Dynamic panel GMM · Panel diagnostics · Panel unit-root tests
Principal components (PCA) · Factor analysis · Cluster analysis
Conjoint analysis · MaxDiff (best–worst scaling) · TURF - reach of a product line · Price sensitivity (Van Westendorp) · Market basket analysis · Perceptual map · Scale reliability (Cronbach’s alpha) · Key driver analysis
Spatial autocorrelation · Spatial regression · Heckman selection · Instrumental variables (2SLS) · Difference-in-differences · Staggered difference-in-differences · Regression discontinuity · Matching & weighting · Oaxaca–Blinder decomposition
Black–Scholes option pricing · Bond price, duration & convexity · Merton distance to default · EMI / home loan planner · CAPM / beta estimation · Multi-factor model · Portfolio optimization · Value at Risk & Expected Shortfall · Performance & drawdown · Time value of money & NPV/IRR · Equity valuation (DDM, FCF, residual income) · Cost of capital (WACC) · Binomial option pricing · Option strategies (payoff & profit) · Forwards, futures & swaps · Credit risk & Basel capital · Extreme value theory (tail risk)
Life table · Life annuity · Life insurance pricing · Chain ladder reserving · Buhlmann credibility · Survival analysis · Mortality graduation · Aggregate loss model · Ruin probability · Multi-state Markov model · Loss severity fitting
Monte Carlo experiment · F-test, Wald & Chow · Structural breaks & stability
Regression vs machine learning · Ridge / Lasso / Elastic Net · Random forest · Gradient boosting
EconStatsCraft rigorous, plain-spoken econometrics
Regression, panel data, time series and the whole battery of tests. Every result is followed by a verdict you can defend.
Load a dataset to see it here.
Pick the example closest to your question. You get a spreadsheet with the right columns and a few rows showing the expected format - replace the numbers with your own, then paste or upload it back.
Copy the header row from the table above (or from the downloaded template), put your own rows underneath, and paste the whole thing here. It is checked against the layout before anything is imported.
Or click a row in the preview below.
For a units or notes row.
Search every source at once. World Bank indicators need countries and years; everything else loads in one click.
Loading the catalogue…
The engine stays loaded, so this is quick - and it leaves your open tab and panel layout alone.
⌘/Ctrl+Enter runs the current analysis. ⌘/Ctrl+P exports the session as a PDF. Esc closes this.
In the Notebook: Enter starts a new block and
Shift+Enter a new line inside one; Backspace at the start
joins back into the paragraph above; / on an empty line inserts anything.
⌘/Ctrl+B, I, E, H and
M apply bold, italic, code, highlight and maths.
#, ##, -, 1., > and
``` at the start of a line convert it.
Sign in to run unlimited analyses.
Scroll to pan · Esc to close