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 › Cointegration
Engle–Granger, Johansen trace and maximum-eigenvalue tests, plus an error-correction model with the speed of adjustment.
Two drunks staggering randomly will end up arbitrarily far apart. Two drunks tied by a rope also stagger, but never further than the rope - the DIFFERENCE between them is well-behaved even though neither of them is. Cointegration is that rope, and finding it is what makes a regression in levels legitimate rather than spurious.
When your unit-root tests said two or more series are I(1) and economic theory says they should be tied together - consumption and income, spot and futures prices, prices in two markets.
If y_t and x_t are both I(1) but z_t=y_t-\beta x_t is I(0), they are cointegrated. Engle–Granger estimates \beta by OLS in levels (superconsistent even though inference on it is invalid) and then tests whether \hat{z}_t has a unit root - using special critical values, because the residual is estimated rather than observed. Johansen instead works from the VAR, testing the rank of \Pi=\alpha\beta' by maximum likelihood, which handles several relationships and does not privilege a left-hand-side variable.
y_t-\beta x_t=u_t\ \text{with } u_t\sim I(0)\qquad \Delta y_t=\gamma\,(y_{t-1}-\beta x_{t-1})+\lambda\,\Delta x_t+\varepsilon_t
Both series are I(1), so the test is well posed - and then it does not reject. Engle-Granger gives τ = -2.8674 with p = 0.1452, against a 5% critical value of -3.367. Johansen agrees from the other direction: the trace statistic for r ≤ 0 is 7.7374 against a 5% critical value of 15.494, so the rank is 0. The error-correction term is -0.0158 with p = 0.2643 - the right sign, and not distinguishable from zero. All three point the same way, which is the reassuring case even though the answer is negative: these two series are not cointegrated, and a regression of one level on the other would be spurious. The right model is in first differences. It is worth seeing a clean non-rejection, because the temptation with cointegration is to read a negative ECM coefficient as confirmation regardless of its standard error, and here that would have produced a long-run money-output relationship out of nothing.
| If you see this | It means | Do this |
|---|---|---|
| Series are not all I(1) | Test invalid | Check integration orders; use ARDL bounds for a mix |
| Engle–Granger and Johansen disagree | Normalisation or lag sensitivity | Report both; prefer Johansen |
| Cointegration found between unrelated series | Chance, or a common trend | Demand an economic story before believing it |
| ECM coefficient positive | Not error-correcting | Re-check the sign convention |
| |γ| > 1 in the ECM | Overshooting | Possible but unusual - inspect the residual plot |
Once the rank is established, estimate the system properly with VECM.
Yield curve (Nelson–Siegel / Svensson) · Dynamic factor model · Dynamic regression (ARIMAX) · Structural VAR · VAR · Granger causality · VECM · ARDL & bounds test
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