| Setting | Series | Frequency | Typical question |
|---|---|---|---|
| Macro policy | GDP, CPI, repo rate, exchange rate, fiscal deficit | Quarterly, monthly, daily | Does monetary tightening reduce inflation, and after how long? |
| Agriculture | Rainfall, area sown, yields, mandi prices | Daily, seasonal, weekly | How do prices respond to a weak monsoon? |
| Health | Clinic attendance, disease counts, immunisation coverage, HMIS indicators | Weekly, monthly | Did the programme change the trend after it started? |
| Labour | PLFS quarterly unemployment, MGNREGA person-days, CMIE employment | Quarterly, monthly | Is the recovery structural or seasonal? |
| Programme monitoring | Enrolment, disbursements, complaints, stock-outs | Monthly | Is this month unusual, or within the normal range? |
| Environment | AQI, river flows, temperature | Hourly, daily | Trend after removing seasonality and weather |
| Finance and microfinance | Repayment rates, portfolio at risk, prices | Daily, monthly | Volatility, early warning |
| Symbol or term | Meaning |
|---|---|
| yt | The value at time t; t = 1, ..., T |
| yt−1, lag | The value one period earlier; L yt = yt−1 |
| Δyt | First difference, yt − yt−1 |
| Δ12yt | Seasonal difference, yt − yt−12 for monthly data |
| εt, white noise | Errors with mean zero, constant variance, no autocorrelation |
| ρk | Autocorrelation at lag k: the correlation of yt with yt−k |
| h | Forecast horizon, periods ahead |
| I(0), I(1) | Stationary; stationary after one difference (integrated of order 1) |
| Term | Meaning |
|---|---|
| Frequency | Observations per year: 4, 12, 52, 365 |
| Trend | Long-run movement in the level |
| Seasonal | Pattern repeating at fixed frequency |
| Cycle | Rises and falls of no fixed length (business cycles) |
| Stationary | Mean, variance and autocovariances do not depend on t |
| Random walk | yt = yt−1 + εt; the simplest non-stationary series |
| Persistence | How long a shock's effect lasts |
| In-sample, out-of-sample | Data used to fit; data held back to test |
| Series | ACF pattern | Reads as |
|---|---|---|
| White noise | All lags near zero | No memory; nothing to model |
| Stationary AR(1), φ = 0.7 | Decays geometrically: 0.7, 0.49, 0.34, ... | Shocks fade over a few periods |
| Random walk | Near 1 at every lag, declining very slowly | Shocks never fade; non-stationary |
| Trending series | Very slow decay | Trend dominates; difference or detrend first |
| Monthly seasonal | Spikes at lags 12, 24, 36 | Seasonality present |
| MA(1) | One spike at lag 1, then zero | One-period memory in the shocks |
| Step | What is computed | Monthly example (illustrative) |
|---|---|---|
| 1. Trend-cycle | A centred 12-month moving average (2×12-MA) | Smooths the year out; loses six months at each end |
| 2. Detrend | yt − Tt (or divide, multiplicative) | What remains is seasonal plus noise |
| 3. Seasonal index | Average the detrended values for each month across years; centre so they sum to zero | January −4.2, ..., October +6.8, ... |
| 4. Remainder | yt − Tt − St | Should look like noise |
| 5. Seasonally adjusted | yt − St | The series with the calendar removed |
| Transformation | Formula | Use when | Watch for |
|---|---|---|---|
| Log | log yt | Growth is proportional; variance rises with level | Zeros and negatives; log(1 + y) changes the meaning |
| First difference | yt − yt−1 | Removing a stochastic trend | Over-differencing a stationary series adds an MA(1) with a unit root |
| Log difference | Δ log yt ≈ growth rate | Growth rates for macro series | The approximation is poor above about 20% growth |
| Seasonal difference | yt − yt−s | Removing stable seasonality; year-on-year change | Loses a year; does not remove trend on its own |
| Box-Cox | (yλ − 1)/λ | Stabilising variance when log is too strong or weak | λ is estimated; report it |
| Index, base 100 | 100 × yt / ybase | Comparing series with different units | The base year choice changes every visual impression |
| Per capita, real | Divide by population, deflate by a price index | Almost always for macro series | Which deflator: CPI, WPI, GDP deflator? Say which |
| Moving average | Mean of the last k values | Smoothing for display | Lags turning points by k/2; never model the smoothed series |
| Month (year 3) | Observed | Trend-cycle | Seasonal | Remainder | Adjusted |
|---|---|---|---|---|---|
| Jan | 1,240 | 1,310 | −62 | −8 | 1,302 |
| Apr | 1,190 | 1,325 | −140 | +5 | 1,330 |
| Jul | 1,510 | 1,340 | +155 | +15 | 1,355 |
| Aug | 1,585 | 1,348 | +210 | +27 | 1,375 |
| Oct | 1,320 | 1,360 | −30 | −10 | 1,350 |
| Dec | 1,290 | 1,372 | −75 | −7 | 1,365 |
| Test | Null hypothesis | How it differs from ADF | Use it for |
|---|---|---|---|
| ADF (Dickey-Fuller 1979; Said-Dickey 1984) | Unit root | Parametric augmentation with lagged differences | The default; always report |
| Phillips-Perron (Biometrika 1988, 75:335) | Unit root | Non-parametric correction for serial correlation and heteroskedasticity | A check on ADF; behaves badly with large negative MA components |
| KPSS (Kwiatkowski et al., J Econometrics 1992, 54:159) | Stationarity | The null is reversed; rejection means non-stationary | Confirmatory: ADF not rejected + KPSS rejected is strong evidence of I(1) |
| DF-GLS (Elliott, Rothenberg, Stock, Econometrica 1996, 64:813) | Unit root | GLS-detrends first; more power near the null | Small samples; near-unit-root alternatives |
| Ng-Perron (2001) | Unit root | Modified statistics and lag selection; good size and power | When results are borderline |
| Zivot-Andrews (JBES 1992, 10:251) | Unit root, with no break | Allows one endogenous break under the alternative | Series with a visible break (2016, 2020); see section 09 |
| HEGY (1990) | Seasonal unit roots | Tests at seasonal frequencies | Monthly and quarterly data with strong seasonality |
| Series | Terms | Lags (AIC) | ADF statistic | 5% critical value | KPSS | Conclusion |
|---|---|---|---|---|---|---|
| log GDP (level) | Constant, trend | 3 | −2.11 | −3.45 | 0.19* (crit 0.146) | Unit root not rejected; stationarity rejected: I(1) |
| Δ log GDP | Constant | 2 | −5.87 | −2.89 | 0.09 (crit 0.463) | Unit root rejected; stationarity not rejected: I(0) |
| log CPI (level) | Constant, trend | 4 | −1.62 | −3.45 | 0.24* | I(1), possibly I(2): test the second difference |
| Δ log CPI (inflation) | Constant | 3 | −3.41 | −2.89 | 0.31 | Rejected at 5%, borderline; note the 2020 break |
| Process | ACF | PACF |
|---|---|---|
| AR(p) | Decays (geometric or damped sine) | Cuts off after lag p |
| MA(q) | Cuts off after lag q | Decays |
| ARMA(p, q) | Decays after lag q | Decays after lag p |
| Candidate | Parameters | Log-likelihood | AIC | BIC | Ljung-Box (24 lags) p | Verdict |
|---|---|---|---|---|---|---|
| ARIMA(1,0,0) | φ1 = 0.62 (0.07) | −188.4 | 382.8 | 391.1 | 0.003 | Residuals autocorrelated; seasonality missed |
| ARIMA(1,0,0)(1,0,0)12 | φ1 = 0.58 (0.07); Φ1 = 0.31 (0.09) | −176.1 | 360.2 | 371.2 | 0.21 | Passes; best BIC |
| ARIMA(2,0,1)(1,0,0)12 | Four parameters; θ1 insignificant | −175.4 | 362.8 | 379.4 | 0.24 | No better; drop |
| ARIMA(0,1,1)(0,1,1)12 | Airline model on the level of the index | n/a: different d | n/a | n/a | 0.18 | A model of the price index, not of inflation; compare on forecasts only |
| Check | How | Pass looks like | Fail means |
|---|---|---|---|
| Residual autocorrelation | ACF of residuals; Ljung-Box at 10–24 lags | All bars inside the band; p > 0.05 | Structure missed: add AR/MA or seasonal terms |
| Residual mean | t-test that the mean is zero | Near zero | Constant or drift mis-specified |
| Constant variance | Plot residuals over time; ARCH-LM test | No fanning; ARCH not rejected | Variance changes: logs, or a GARCH model (section 09) |
| Normality | Histogram, QQ plot, Jarque-Bera | Roughly normal | Prediction intervals wrong; outliers present; consider bootstrapped intervals |
| Outliers | Standardised residuals beyond ±3 | None, or explained (demonetisation, lockdown) | Add an intervention dummy; do not delete the observation |
| Parameter stability | Recursive estimates; CUSUM | Stable | A break; split the sample or model it |
| Roots | Inverse AR and MA roots inside the unit circle, not near it | Well inside | Near-cancelling roots (p and q both too high) or non-invertibility |
| Method | Forecast | Right for |
|---|---|---|
| Mean | The historical average | Stationary, no trend, no season |
| Naive | The last value | Random walks; most financial series |
| Seasonal naive | The value from the same season last year | Strongly seasonal series with little trend |
| Drift | The last value plus the average historical change | Trending series |
| Component | Additive | Multiplicative |
|---|---|---|
| Level | ℓt = α(yt − st−m) + (1 − α)(ℓt−1 + bt−1) | ℓt = α(yt / st−m) + (1 − α)(ℓt−1 + bt−1) |
| Trend | bt = β(ℓt − ℓt−1) + (1 − β)bt−1 | Same |
| Season | st = γ(yt − ℓt−1 − bt−1) + (1 − γ)st−m | st = γ(yt / (ℓt−1 + bt−1)) + (1 − γ)st−m |
| Forecast | ℓt + h bt + st+h−m | (ℓt + h bt) st+h−m |
| Measure | Formula (errors et = yt − ŷt) | Scale | Breaks when |
|---|---|---|---|
| MAE | mean |et| | Units of the series | Comparing series in different units |
| RMSE | √(mean et²) | Units; penalises large errors | A few outliers dominate |
| MAPE | mean |et / yt| × 100 | Percent | yt near zero (infinite); asymmetric: over-forecasts penalised less |
| sMAPE | mean 2|et| / (|yt| + |ŷt|) | Percent | Still unstable near zero; used in M3/M4 |
| MASE (Hyndman and Koehler, IJF 2006, 22:679) | MAE / MAE of the in-sample seasonal naive | Scale-free; 1 = as good as naive | Rarely; the recommended default |
| Interval coverage | Share of test observations inside the 80% or 95% interval | Should match the nominal level | Intervals are too narrow, which they usually are |
| Pinball / CRPS | Scores for quantile and distributional forecasts | Proper scoring rules | Needs a full predictive distribution |
| Model | MASE h=1 | MASE h=3 | MASE h=12 | 80% coverage | DM vs seasonal naive (h=1) |
|---|---|---|---|---|---|
| Seasonal naive (benchmark) | 1.00 | 1.00 | 1.00 | n/a | — |
| ETS(A,Ad,M) | 0.71 | 0.78 | 0.92 | 74% | p = 0.01 |
| ARIMA(1,0,0)(1,0,0)12 | 0.74 | 0.80 | 0.97 | 71% | p = 0.02 |
| ARIMA with rainfall regressor | 0.66 | 0.75 | 0.95* | 76% | p < 0.01 |
| Average of ETS and ARIMA | 0.68 | 0.74 | 0.90 | 79% | p < 0.01 |
| Pitfall | What it looks like | Fix |
|---|---|---|
| No benchmark | 'The ARIMA model achieved MAPE 3.8%' | Seasonal naive in every table |
| In-sample accuracy | R² = 0.98 reported as forecast performance | Rolling out-of-sample evaluation |
| One holdout | The last 12 months, once | Rolling origins, accuracy by horizon |
| MAPE on counts with zeros | Infinite or absurd values silently dropped | MASE, RMSE |
| Test set used for selection | Best of 30 models on the holdout, reported as the forecast | Select on a validation set, report on a separate test set, or use rolling evaluation |
| Forecasting a regressor you do not have | Next year's rainfall as a known input | Lagged or forecastable regressors only; report the cost |
| Long horizons from short samples | Ten-year forecasts from eight years of data | Do not; or present as scenarios, not forecasts |
| Machine learning without a reason | An LSTM on 96 monthly observations, beaten by ETS | Fit the simple models first; ML earns its place on long, high-frequency, many-series problems |
| Point forecasts only | A single line into the future | Intervals, with coverage checked |
| H0: rank | Trace statistic | 5% critical value | Conclusion |
|---|---|---|---|
| r = 0 | 42.7 | 29.8 | Reject: at least one relationship |
| r ≤ 1 | 11.2 | 15.5 | Not rejected: exactly one |
| r ≤ 2 | 2.9 | 3.8 | — |
| Item | Result | Reads as |
|---|---|---|
| Orders of integration | Inflation I(0) borderline; money growth I(0); output gap I(0); exchange-rate change I(0) | All I(0) or I(1), none I(2); ARDL admissible |
| Selected model | ARDL(2, 1, 1, 0) by AIC, max 4 lags, quarterly, n = 96 | Two lags of inflation, one each of money and output, none of the exchange rate |
| Bounds F | 6.31; I(0) bound 3.23, I(1) bound 4.35 at 5% (k = 3) | Above the upper bound: long-run relationship |
| Long-run coefficients | Money growth 0.48 (0.14); output gap 0.22 (0.10); exchange-rate change 0.09 (0.05) | A percentage point of money growth raises inflation by about half a point in the long run |
| ECM term | −0.31 (0.07) | 31% of a disequilibrium closes each quarter; half-life about 1.9 quarters |
| Diagnostics | Breusch-Godfrey p = 0.41; RESET p = 0.28; ARCH p = 0.19; CUSUM within bounds | No evidence of misspecification |
| Break check | Dummy for 2020Q2 significant; results unchanged without 2020 | Reported in the appendix |
| Situation | Method | Why |
|---|---|---|
| Two variables, both I(1), one clearly dependent | Engle-Granger, or ARDL | Simple; ARDL adds valid inference on the long-run coefficient |
| Mixed I(0) and I(1) regressors, one dependent variable, small sample | ARDL bounds | Built for this; single equation; small-sample critical values exist |
| Three or more I(1) variables, possibly several relationships, no obvious dependent variable | Johansen VECM | Estimates all relationships jointly and tests their number |
| Regressors may be endogenous; feedback both ways | Johansen VECM or a VAR | Single-equation methods assume weak exogeneity |
| Any variable I(2) | None of the above | Difference the I(2) variable to I(1) first, or rethink the variables (a price level and its inflation rate cannot both be in the system) |
| A structural break in the relationship | Gregory-Hansen (1996) test; or split the sample | Standard tests lose power under a break |
| Panel of countries or states | Pedroni or Westerlund panel cointegration; panel ARDL (PMG) | Cross-section adds power; cross-sectional dependence must be handled |
| Element | Content |
|---|---|
| Sample and frequency | 1996Q2 to 2024Q4, quarterly, n = 115; source and vintage of each series; transformations |
| Integration orders | The unit-root table (section 03), in the appendix, referred to |
| Model form | The equation written out; lag orders and how chosen; deterministic terms; dummies with dates |
| Cointegration evidence | The bounds F or the trace statistics with critical values; or the statement that all variables are I(0) and none is needed |
| Coefficients | Long-run and short-run, with standard errors; the ECM term; the half-life |
| Diagnostics | Serial correlation (Breusch-Godfrey), heteroskedasticity, ARCH, normality, RESET, CUSUM and CUSUMSQ: statistics and p-values |
| Stability | Recursive coefficients or a sub-sample estimate; break tests where the plot suggested one |
| Robustness | Alternative lag lengths, deterministic cases, sample periods; the result's sensitivity in one sentence each |
| Interpretation | Magnitudes in units a reader can use; the causal verb scaled to the exogeneity assumed |
| Step | Choice | Result |
|---|---|---|
| Variables | GDP growth (y/y), CPI inflation (y/y), repo rate; quarterly 2001Q2–2024Q4 | All I(0) by ADF and KPSS (rate borderline); VAR in levels of these |
| Lags | AIC 4, HQ 2, SC 2 | VAR(2); residuals pass Ljung-Box at 12 lags |
| Stability | Largest eigenvalue modulus 0.91 | Stable |
| Granger tests | Rate → inflation p = 0.03; inflation → rate p < 0.01; growth → rate p = 0.04; rate → growth p = 0.09 | The policy rate responds to both and helps predict inflation |
| Identification | Cholesky, ordered growth, inflation, rate | Rate responds to growth and inflation within the quarter; they respond to the rate with a lag |
| IRF: rate shock → inflation | Peak −0.35 points at 5 quarters; band excludes zero from quarters 3 to 8 | Transmission with a lag of about a year |
| FEVD at 8 quarters | Inflation: own 68%, growth 12%, rate 20% | Policy shocks explain a fifth of inflation variance |
| Robustness | Reverse ordering of growth and inflation; 3 lags; sample from 2016 (inflation targeting) | Shape unchanged; peak effect larger post-2016 |
| Pitfall | Consequence | Fix |
|---|---|---|
| Too many variables or lags for the sample | Overfitted, unstable, meaningless IRFs | Three or four variables; SC lags; Bayesian VAR shrinkage if more are needed |
| Mixed integration orders without a VECM | Non-standard inference; spurious dynamics | Test; VECM or Toda-Yamamoto |
| Cholesky ordering unreported or unmotivated | Results not reproducible; identification hidden | State the ordering and the reasoning; show alternatives |
| Granger causality as the finding | Prediction reported as causation | IRFs with bands; causal language scaled to identification |
| IRFs without confidence bands | Precision overstated | Bootstrap bands; report where they cover zero |
| Breaks ignored (2016, 2020) | Parameters are averages over regimes | Sub-samples; dummies; time-varying-parameter VAR if the sample allows |
| Seasonally unadjusted monthly data | Seasonal dynamics dominate the lags | Adjust, or use seasonal dummies and enough lags |
| Overlapping horizons in local projections | Standard errors too small | HAC standard errors with bandwidth at least h |
| Parameter | Estimate | SE | Reads as |
|---|---|---|---|
| Mean equation: constant | 0.006% | 0.004 | No predictable daily drift |
| ω | 0.0012 | 0.0004 | Long-run variance floor |
| α (ARCH) | 0.08 | 0.02 | Yesterday's surprise raises today's variance |
| β (GARCH) | 0.90 | 0.02 | Yesterday's variance carries forward |
| α + β | 0.98 | Highly persistent; half-life of a volatility shock about 34 days | |
| Student-t degrees of freedom | 5.4 | 0.7 | Fat tails; normal errors would understate extremes |
| ARCH-LM on standardised residuals | p = 0.62 | No remaining ARCH | |
| Unconditional daily SD | 0.35% | √(ω/(1 − α − β)) |
| Test | Break date | What it tests | Notes |
|---|---|---|---|
| Chow (Econometrica 1960, 28:591) | Known | Coefficients equal before and after a date | F-test; the date must come from outside the data (a policy, a definition change) |
| Quandt-Andrews (Andrews, Econometrica 1993, 61:821) | Unknown, single | Supremum of Chow statistics over all candidate dates in the middle 70% | Non-standard critical values; software has them |
| Bai-Perron (Econometrica 1998, 66:47; J Applied Econometrics 2003, 18:1) | Unknown, multiple | Number and dates of breaks by sequential or global search | The standard; needs a minimum segment length; R strucchange, Stata estat sbknown/sbsingle, EViews built-in |
| CUSUM, CUSUMSQ (Brown, Durbin and Evans 1975) | Unknown | Instability of coefficients (CUSUM) or variance (CUSUMSQ) from recursive residuals | Graphical; low power; good for a first look |
| Zivot-Andrews; Perron | Unknown, one, under a unit-root null | Unit root allowing one break in level and/or trend | Section 03: a stationary series with a break looks I(1) to ADF |
| Gregory-Hansen (1996) | Unknown, one | Cointegration allowing a regime shift | When the long-run relationship may have changed (1991, 2016) |
| Markov switching (Hamilton, Econometrica 1989, 57:357) | Recurring, probabilistic | The series switches between regimes with estimated probabilities | For recessions, high and low volatility; needs long samples |
| Approach | How | Suits | Limits |
|---|---|---|---|
| Seasonal dummies | s − 1 indicator variables in a regression | Stable, deterministic seasonality; short series | Cannot change over time; many parameters at high frequency |
| Seasonal differencing | Δsy | Seasonal unit roots (HEGY); slowly changing seasonality | Loses a year; over-differences deterministic seasonality |
| Seasonal ARIMA | AR/MA terms at lag s | Monthly and quarterly data | Not for s above about 24 |
| Fourier terms | K sine-cosine pairs | Daily and weekly data; long or multiple seasons | Fixed shape; choose K by AICc |
| STL then model the remainder | Decompose, model the adjusted series | Complex, evolving seasonality | Two-step; intervals understate uncertainty |
| ETS with seasonal component | State-space seasonal states | Operational forecasting | One seasonal period only (TBATS handles more) |
| Holiday regressors | Dummies or ramps for moving festivals | Retail, transport, health series around Diwali, Eid, Onam | Dates must be computed per year (X-13's genhol) |
| Term | Estimate | 95% CI | Reads as |
|---|---|---|---|
| Pre-intervention level (β0) | 58.2% | 56.1 to 60.3 | Institutional delivery share at the start |
| Pre-trend (β1) | +0.21 points/month | 0.14 to 0.28 | Rising before the scheme: about 2.5 points a year |
| Level change (β2) | +4.8 points | 2.1 to 7.5 | An immediate jump at launch |
| Slope change (β3) | +0.09 points/month | −0.02 to 0.20 | Trend possibly steeper; not distinguishable from zero |
| Effect at 12 months | +5.9 points | 2.4 to 9.4 | Against the counterfactual of the pre-trend continuing |
| Effect at 24 months | +7.0 points | 1.8 to 12.2 | Widening interval: the counterfactual is extrapolated further |
| Seasonal terms | Fourier, 2 pairs | Monsoon dip captured | |
| Error model | AR(1), φ = 0.43 | Chosen by residual ACF; OLS CIs were 35% narrower |
| Threat | What it looks like | Check or fix |
|---|---|---|
| Co-intervention | Another programme, a price change or an election at the same time | Document the timeline; use a control series (next slide); test for the effect on an outcome the programme should not touch |
| Anticipation | The series moves before the official date | Plot; test with the date shifted earlier; treat the announcement as the start |
| Changed measurement | The reporting system, definition or denominator changed at the intervention | Read the metadata; a level change with no plausible mechanism is usually this |
| Wrong impact model | A temporary effect modelled as permanent, or the reverse | Pre-specify; show the alternatives in the appendix |
| Pre-trend misspecified | A curved pre-trend fitted as a line, so the counterfactual is wrong | Longer pre-period; a quadratic or a local trend; sensitivity to the pre-period length |
| Autocorrelation ignored | Confidence intervals too narrow | ARIMA errors, Prais-Winsten or Newey-West; report the residual ACF |
| Too few points | Six months before, six after | Say the design is descriptive; do not report a p-value as if it settled anything |
| Regression to the mean | Programme launched because the series was at its worst | Longer pre-period; a control series; state the selection |
| Element | Content |
|---|---|
| Design | ITS, controlled ITS, synthetic control or BSTS; why this one; the intervention date and how it was set |
| Data | Series, frequency, source, period, number of points before and after, missing values and how handled, any measurement changes |
| Impact model | Level, slope, both, lagged, temporary; pre-specified and stated |
| Model | The segmented-regression equation; seasonal terms; error structure and how chosen; or the donor pool, weights and pre-period fit |
| Figure 1 | Data, pre-period fit, counterfactual, post-period fit, with intervals; or treated versus synthetic with the gap |
| Effects | Level and slope changes with CIs; effects at stated horizons; placebo results |
| Threats | Co-interventions considered and how excluded; anticipation; measurement; regression to the mean |
| Sensitivity | Pre-period length; error model; impact model; control choice; excluding 2020 |
| Language | 'Associated with a change of X at the intervention date, relative to the pre-trend', with the causal verb earned by the controls and checks |
| Source | Series | Frequency and span | Notes |
|---|---|---|---|
| RBI DBIE (Database on Indian Economy) | Money, credit, interest rates, exchange rates, external sector, some prices and output | Daily to annual; decades | The single best portal; bulk download; document the extraction date |
| MoSPI (NSO) | CPI (base 2012 = 100), IIP (2011–12), quarterly GDP and GVA (2011–12), PLFS quarterly bulletins | Monthly, quarterly; CPI from 2011, quarterly GDP from 1996–97 | Base changes need splicing; GDP revisions are large |
| Office of the Economic Adviser, DPIIT | WPI (base 2011–12) and components | Monthly; long series with base links | The producer-price side of inflation |
| Labour Bureau | CPI-IW (base 2016), CPI-AL/RL | Monthly; long | Used for wage indexation and rural real wages |
| Ministry of Finance, PIB, GSTN | GST collections, fiscal data, monthly economic report | Monthly since July 2017 | GST is a short series with a strong seasonal and a COVID break |
| IMD; IITM | Rainfall by subdivision; the homogeneous all-India series from 1871 | Daily, monthly; 150 years | The longest Indian series; the monsoon is a regressor in half of applied macro |
| CMIE (Economic Outlook, CPHS) | High-frequency employment, sentiment, company data | Monthly, weekly; paid | Coverage and weighting debates; cite the vintage |
| IMF IFS; World Bank WDI; FRED | Cross-country comparables; some Indian series mirrored | Monthly (IFS), annual (WDI) | Definitions may differ from the domestic source; say which you used |
| Source | Series | Frequency | Traps |
|---|---|---|---|
| HMIS (Health Management Information System) | Facility-reported health service indicators by district | Monthly since 2008 | Reporting completeness varies by month and district; denominators are projections; a zero is often a non-report |
| MGNREGA MIS | Person-days, households, wages, works by block | Monthly, daily updates | Strong lean-season seasonality; data revised as muster rolls are entered; state-level differences in reporting lag |
| Agmarknet | Mandi arrivals and prices by commodity and market | Daily | Missing days with no trade; variety and grade changes; outliers from entry error |
| UDISE+; school MIS | Enrolment, teachers, infrastructure | Annual | Not a time series in the sense here; annual with definitional changes |
| NFHS, NSS, PLFS | Survey rounds | Every few years; PLFS quarterly for urban | Rounds are comparable only with care; not for ARIMA |
| CPCB; state pollution boards | AQI and pollutant concentrations by monitor | Hourly, daily | Monitor network changes; missing hours; calibration |
| Programme MIS (your own) | Beneficiaries, disbursements, complaints, stock | Monthly | Everything above, plus the definition changed when the software did |
| Tool | Cost | Time-series strengths | Gaps |
|---|---|---|---|
| R: forecast, fable/tsibble/feasts, urca, vars, ARDL, strucchange, rugarch, CausalImpact, Synth | Free | Everything in this course, with the reference implementations for forecasting and the best documentation (fpp3) | Several packages to learn; Johansen output is less friendly than Stata's |
| Python: statsmodels (ARIMA, SARIMAX, VAR, VECM, ARDL, unit-root tests, state space), pmdarima, arch, ruptures | Free | Full coverage; integrates with data pipelines and machine learning | Fewer diagnostics printed by default; more code per result |
| Stata: tsset, arima, dfuller/pperron, vecrank/vec, var/irf, ardl (Kripfganz and Schneider), itsa (Linden), synth, newey | Licence | Clean output; the econometric tradition; ARDL and ITS commands are excellent | No automatic ARIMA or ETS; forecasting is weaker than R |
| EViews | Licence | Menu-driven ARDL with bounds test, Johansen, Bai-Perron, X-13, GARCH; the tool most South Asian econometrics courses teach | Cost; scripting is awkward; reproducibility depends on saving workfiles and programs |
| gretl | Free, open source | Menu-driven like EViews: unit-root tests, Johansen, VAR, ARDL via scripts, GARCH, X-13 interface, good graphs | Smaller community; fewer new methods |
| Excel / Google Sheets | Free or licensed | Plotting, moving averages, classical decomposition, simple smoothing | No unit-root tests, no ARIMA worth using, no reproducibility; fine for a first look |
| Step | Decision | Section |
|---|---|---|
| Question | Does a rainfall deficit in the monsoon raise MGNREGA person-days in the following lean season, by how much, and how fast? | 01 |
| Data | Monthly person-days by state (MIS, 2012–2025); IMD subdivision rainfall; state population; a 2020 dummy | 02, 11 |
| Transform | Log person-days per 1,000 rural population; rainfall as percentage deviation from the long-period average; seasonal plots show a June–July trough and a March–May peak | 02 |
| Integration | Log person-days: I(0) around seasonal means with a break in 2020 by ADF, KPSS and Zivot-Andrews; rainfall deviation I(0) | 03, 09 |
| Model | Dynamic regression with seasonal dummies, distributed lags of rainfall deviation (0 to 9 months), AR errors, state fixed effects; a panel ARDL as a check | 07 |
| Finding (illustrative) | A 20% monsoon deficit raises person-days by 11% at a 4–6 month lag, fading by month 9; larger in states with lower irrigation cover | 07, 09 |
| Evaluation design | For the 2016 wage revision: controlled ITS with states that revised later as controls | 10 |
| Robustness | Drop 2020; alternative lag lengths; Newey-West vs AR errors; district-level replication for two states | 06, 07 |
| Report | Unit-root table in the appendix; IRF-style plot of the rainfall lag coefficients with bands; the ITS figure; replication package on a repository | 11 |
| Error | Section | Fix in one line |
|---|---|---|
| Regression in levels of I(1) series with no cointegration test | 07 | Test; ECM or differences |
| Unit-root tests with unreported terms, lags and margins | 03 | One full table |
| Six unit-root tests, the convenient one reported | 03 | ADF and KPSS, both, always |
| ARDL on 30 annual observations with five regressors | 07 | Fewer regressors, or admit the design cannot answer |
| Granger causality as the contribution | 08 | IRFs, and a question |
| Cholesky ordering unreported | 08 | State it; try alternatives |
| Forecast accuracy with no benchmark, in-sample | 05, 06 | Seasonal naive, rolling origin, MASE |
| MAPE on a series with zeros | 06 | MASE or RMSE |
| Seasonality ignored in a monthly model | 02, 09 | Dummies, seasonal ARIMA or STL |
| 2016, 2020 and base-year changes left untreated | 09 | Dummies, splicing, sub-samples; report both |
| ITS with six points each side and a p-value | 10 | Descriptive claim only; more data |
| 'Causes' from a model that shows co-movement | 07, 08, 10 | Scale the verb to the identification |
| Data and description | Done |
|---|---|
| Every series plotted in levels and differences, with the figures kept | |
| Source, vintage, base year, transformations and sample stated | |
| Missing values and reporting gaps identified and handled in code | |
| Seasonality examined and treated | |
| Known breaks (2016, 2017, 2020, base changes) tested and handled | |
| Integration orders tested with two tests, reported in one table |
| Modelling and reporting | Done |
|---|---|
| Model form justified by the tests and the question, not by the software default | |
| Lag lengths and deterministic terms chosen by stated criteria and reported | |
| Residual diagnostics passed and reported with statistics | |
| Forecasts evaluated out of sample against benchmarks, by horizon, with coverage | |
| Identification assumptions (ordering, exogeneity, counterfactual) stated in words | |
| Sensitivity to the main choices shown | |
| Causal verbs scaled to what the design supports | |
| Script and data (or download code) in a replication package |
| Resource | What it covers | Notes |
|---|---|---|
| Hyndman and Athanasopoulos, Forecasting: Principles and Practice (3rd ed., OTexts, 2021) | Sections 02, 04, 05, 06 with R code for everything | Free online at otexts.com/fpp3; the first thing to read |
| Enders, Applied Econometric Time Series (4th ed., Wiley, 2014) | Unit roots, cointegration, VAR, GARCH, breaks; the applied econometrics half | The standard graduate applied text |
| Stock and Watson, Introduction to Econometrics (4th ed., Pearson, 2019), the time-series chapters | Dynamic regression, forecasting, cointegration, at an accessible level | Where most economists first meet the material |
| Kilian and Lütkepohl, Structural Vector Autoregressive Analysis (Cambridge University Press, 2017) | Everything about VARs and identification | For section 08 in depth |
| Hamilton, Time Series Analysis (Princeton University Press, 1994) | The theory, complete | Reference, not a first read |
| Shumway and Stoffer, Time Series Analysis and Its Applications (4th ed., Springer, 2017) | Statistical treatment with R, including state space | Free PDF from the authors |
| Bernal, Cummins and Gasparrini, Int J Epidemiol 2017, 46:348; Lopez Bernal et al. 2018, 47:2082 | Interrupted time series, with and without controls | The two papers to cite and follow |
| Abadie, J Econ Lit 2021, 59:391 | Synthetic control: method, practice, pitfalls | Read before using the method |
| Pesaran, Shin and Smith, J Applied Econometrics 2001, 16:289; Kripfganz and Schneider's ardl documentation | The bounds test and its correct use | Read the original, not the summaries |
| ImpactMojo: Econometrics 101, Impact Evaluation 101, Data Analysis 101 | The regression and evaluation foundations this course assumes | impactmojo.in/101-courses/ |