Official Data
Official Data Observatory Data structures, trends, and evidence
PythonLoad official economic indicators from Ceteris Lab's server export endpoint, plot a time series, calculate growth rates, and discuss limitations.
Intermediate 25 to 40 min Related dataset: Official economic indicator pandas, numpy, matplotlibofficial data time series plot growth rates limitations
Module 0
Loading CSV Data in Python Loading CSV data in Python
PythonLoad wage_sample.csv, inspect rows, and identify variables in a DataFrame.
Beginner 15 to 25 min Related dataset: wage_sample.csv pandas, numpypandas CSV loading DataFrame preview
Module 0
Descriptive Statistics in Python Descriptive statistics in Python
PythonCalculate means, medians, standard deviations, and grouped wage summaries.
Beginner 15 to 25 min Related dataset: wage_sample.csv pandas, numpysummary statistics groupby interpretation
Module 0
Creating Simple Graphs in Python Creating simple graphs in Python
PythonCreate a scatter plot that compares education and wages.
Beginner 15 to 25 min Related dataset: wage_sample.csv pandas, numpy, matplotlibmatplotlib scatter plots visual interpretation
Module 0
Mini Python Practice Lab Mini Python practice lab
PythonRun a full beginner workflow: load, inspect, summarize, graph, and interpret.
Beginner 15 to 25 min Related dataset: wage_sample.csv pandas, numpy, matplotlibworkflow summaries graphs
Module 1
First Python Data Example First Python data example
PythonUse Python to describe the wage and education relationship without overclaiming causality.
Intermediate 25 to 40 min Related dataset: wage_sample.csv pandas, numpycorrelation grouped means careful interpretation
Module 2
Simple Regression in Python Regression in Python
PythonEstimate wage on education, draw the fitted line, and read the coefficient output with a statsmodels-compatible fallback.
Intermediate 25 to 40 min Related dataset: wage_sample.csv pandas, numpy, statsmodels, patsyOLS statsmodels-ready fitted line
Module 2
Fitted Values and Residuals Fitted values and residuals
PythonCalculate fitted wages, residuals, squared residuals, and residual plots from the wage regression.
Intermediate 25 to 40 min Related dataset: wage_sample.csv pandas, numpy, matplotlibfitted values residuals diagnostic plots
Module 2
OLS and R-squared by Formula Ordinary Least Squares intuition
PythonCompute the OLS slope, intercept, residual sum of squares, and R-squared step by step.
Intermediate 25 to 40 min Related dataset: wage_sample.csv pandas, numpy, statsmodels, patsyOLS formulas SSR R-squared
Module 2
Module 2 Regression Project Template Practice regression project
PythonA reusable project notebook students can edit to choose y and x, estimate the model, and write an interpretation.
Applied 35 to 55 min Related dataset: wage_sample.csv pandas, numpyproject workflow student template interpretation
Module 3
WAGE1 Multiple Regression Multiple Regression in Python
PythonEstimate log wage on education, experience, and tenure when the WAGE1 file is installed.
Intermediate 25 to 40 min Related dataset: WAGE1 pandas, numpy, statsmodels, patsymultiple regression WAGE1 statsmodels
Module 3
GPA1 Multiple Regression Holding Other Factors Fixed
PythonEstimate college GPA on high-school GPA and ACT when the GPA1 file is installed.
Intermediate 25 to 40 min Related dataset: GPA1 pandas, numpy, statsmodels, patsycontrols GPA1 coefficient interpretation
Module 3
Simple vs Multiple Regression Simple Regression versus Multiple Regression
PythonCompare the education coefficient before and after adding experience and tenure controls.
Intermediate 25 to 40 min Related dataset: WAGE1 pandas, numpy, statsmodels, patsysimple regression controls coefficient comparison
Module 3
Partialling-Out Demonstration The Partialling-Out Interpretation
PythonRecover a multiple-regression coefficient by using the leftover part of education after controls.
Intermediate 25 to 40 min Related dataset: WAGE1 pandas, numpy, matplotlibpartialling out residuals ceteris paribus
Module 3
Omitted-Variable Bias Example Omitted-Variable Bias
PythonCompare a short wage model with a controlled model and discuss the direction of omitted-variable bias.
Intermediate 25 to 40 min Related dataset: WAGE1 pandas, numpy, statsmodels, patsyomitted-variable bias controls interpretation
Module 3
VIF Calculation Multicollinearity and VIF
PythonCalculate variance inflation factors for education, experience, and tenure.
Intermediate 25 to 40 min Related dataset: WAGE1 pandas, numpy, statsmodels, patsyVIF multicollinearity precision
Module 3
Residuals and Fitted Values Fitted Values and Residuals
PythonCreate fitted values and residuals from a multiple-regression wage model.
Intermediate 25 to 40 min Related dataset: WAGE1 pandas, numpy, matplotlibfitted values residuals diagnostics
Module 3
R-squared Comparison Goodness of Fit in Multiple Regression
PythonCompare R-squared across nested models and separate fit from causal interpretation.
Intermediate 25 to 40 min Related dataset: WAGE1 pandas, numpyR-squared model comparison fit
Module 4
T Tests with WAGE1 Testing a Single Coefficient Against Zero
PythonEstimate a wage equation and test education, experience, and tenure with real t statistics.
Intermediate 25 to 40 min Related dataset: WAGE1 pandas, numpy, statsmodels, patsyt tests WAGE1 statsmodels
Module 4
One-Sided and Two-Sided Tests One-Sided and Two-Sided Tests
PythonCompare tail choices and hypothesis wording using GPA1.
Intermediate 25 to 40 min Related dataset: GPA1 pandas, numpy, scipyone-sided tests two-sided tests p-values
Module 4
p-Values and Critical Values p-Values for t Tests
PythonUse scipy to compute p-values and critical values from the t distribution.
Intermediate 25 to 40 min Related dataset: GPA1 pandas, numpy, scipyp-values critical values scipy
Module 4
Confidence Intervals Confidence Intervals for Regression Coefficients
PythonBuild confidence intervals from estimates, standard errors, and t critical values.
Applied 35 to 55 min Related dataset: WAGE1 pandas, numpy, statsmodels, patsyconfidence intervals WAGE1 inference
Module 4
Linear Combinations Testing One Linear Combination of Parameters
PythonTest whether two coefficients are equal using WAGE2.
Intermediate 25 to 40 min Related dataset: WAGE2 pandas, numpy, statsmodels, patsylinear combinations coefficient equality t_test
Module 4
F Tests for Exclusion Restrictions F Tests for Exclusion Restrictions
PythonCompare restricted and unrestricted models and compute an F statistic.
Intermediate 25 to 40 min Related dataset: BWGHT pandas, numpy, statsmodels, patsyF tests restricted model unrestricted model
Module 4
R-Squared F Test R-Squared Form of the F Statistic
PythonUse R-squared values to compute the F statistic for valid exclusion restrictions.
Intermediate 25 to 40 min Related dataset: BWGHT pandas, numpyR-squared F statistic nested models
Module 4
General Linear Restrictions General Linear Restrictions
PythonUse statsmodels f_test for restrictions beyond simple variable exclusion.
Intermediate 25 to 40 min Related dataset: HPRICE1 pandas, numpygeneral restrictions f_test housing data
Module 4
Reporting Regression Results Reporting Regression Results Professionally
PythonAssemble coefficient, uncertainty, p-value, fit, and interpretation into a report table.
Intermediate 25 to 40 min Related dataset: CEOSAL2 pandas, numpy, statsmodels, patsyreporting regression table professional interpretation
Module 4
Applied Inference Project Applied Inference Project
PythonRun a complete inference workflow and draft a concise empirical report.
Applied 35 to 55 min Related dataset: WAGE1 pandas, numpyapplied project inference workflow reporting
Module 5
Consistency Simulation What Consistency Means
PythonSimulate OLS under exogeneity and watch estimates concentrate as n grows.
Intermediate 25 to 40 min Related dataset: SIMULATION pandas, numpy, scipyconsistency simulation large samples
Module 5
OLS Inconsistency from Endogeneity Inconsistency and Asymptotic Bias
PythonShow estimates converging to the wrong target when x and u are correlated.
Intermediate 25 to 40 min Related dataset: SIMULATION pandas, numpy, scipyinconsistency endogeneity simulation
Module 5
Omitted-Variable Inconsistency Omitted Variable Inconsistency
PythonCompare true and omitted models as sample size grows.
Intermediate 25 to 40 min Related dataset: SIMULATION pandas, numpy, scipyomitted variables probability limits simulation
Module 5
Asymptotic Normality Large-Sample Inference without Normal Errors
PythonShow coefficient distributions becoming approximately normal under several error distributions.
Applied 35 to 55 min Related dataset: SIMULATION pandas, numpy, scipyasymptotic normality CLT simulation
Module 5
Nonnormal Errors and Large-Sample Inference Large-Sample t and F Tests
PythonUse 401K to discuss bounded, nonnormal outcomes and approximate inference.
Applied 35 to 55 min Related dataset: 401K pandas, numpy, scipynonnormality large-sample tests 401K
Module 5
Standard Errors Shrink with n Asymptotic Standard Errors
PythonEstimate growing GPA2 subsamples and compare standard errors.
Intermediate 25 to 40 min Related dataset: GPA2 pandas, numpystandard errors sample size GPA2
Module 5
Histograms, Skewness, and Transformations Histograms, Normality, and Transformations
PythonCompare WAGE1 residual histograms for wage and log(wage).
Intermediate 25 to 40 min Related dataset: WAGE1 pandas, numpy, matplotlibhistograms skewness log transformations
Module 5
LM Test with CRIME1 The Lagrange Multiplier Test
PythonCompute the n-R-squared LM statistic and compare it with exclusion-test logic.
Intermediate 25 to 40 min Related dataset: CRIME1 pandas, numpy, statsmodels, patsyLM test auxiliary regression CRIME1
Module 5
Asymptotic Efficiency Simulation Asymptotic Efficiency of OLS
PythonCompare OLS with an alternative consistent estimator in simulation.
Applied 35 to 55 min Related dataset: SIMULATION pandas, numpy, scipyasymptotic efficiency simulation estimator comparison
Module 5
Applied Asymptotics Project Module 5 Applied Project
PythonPlan a complete large-sample inference workflow with simulations, diagnostics, and limitations.
Applied 35 to 55 min Related dataset: WAGE1 pandas, numpy, scipyapplied project asymptotics reporting
Module 6
Scaling and Coefficient Interpretation Why Units Matter in Multiple Regression
PythonConvert slopes across wage units and confirm that fitted relationships do not change when units are handled correctly.
Intermediate 25 to 40 min Related dataset: M6_WAGE_SCALING pandas, numpyscaling unit conversion coefficient interpretation
Module 6
Standardized Betas Standardized Coefficients
PythonCompare raw and standardized coefficients while avoiding causal importance rankings.
Intermediate 25 to 40 min Related dataset: M6_GPA_INTERACTIONS pandas, numpystandardized beta comparison interpretation
Module 6
Log Models and Percent Changes Level-Log and Log-Level Models
PythonPractice level-log, log-level, and log-log interpretations with exact percentage conversions.
Intermediate 25 to 40 min Related dataset: M6_SALES_ADVERTISING pandas, numpylog models percent changes elasticity
Module 6
Quadratic Turning Points Quadratic Terms and Turning Points
PythonEstimate a quadratic model and calculate turning points and marginal effects.
Intermediate 25 to 40 min Related dataset: M6_HOUSING_LOGS pandas, numpyquadratics turning points marginal effects
Module 6
Interaction Effects Interactions between Continuous Variables
PythonCalculate interaction-based marginal effects at meaningful values.
Intermediate 25 to 40 min Related dataset: M6_GPA_INTERACTIONS pandas, numpyinteractions dummy variables marginal effects
Module 6
Centering Interactions Centering Variables before Interactions
PythonShow how centering changes coefficient meaning while preserving fitted values.
Intermediate 25 to 40 min Related dataset: M6_GPA_INTERACTIONS pandas, numpycentering interactions collinearity
Module 6
Adjusted R-Squared and Model Comparison Adjusted R-Squared and Model Size
PythonCompare candidate specifications using adjusted R-squared and modeling logic.
Intermediate 25 to 40 min Related dataset: M6_POLICY_CONTROLS pandas, numpy, statsmodels, patsyadjusted R-squared model comparison controls
Module 6
Bad Controls and Precision Controls Over-Control and Bad Controls
PythonDistinguish harmful controls from safe precision controls.
Intermediate 25 to 40 min Related dataset: M6_POLICY_CONTROLS pandas, numpy, statsmodels, patsybad controls precision controls design
Module 6
Prediction and Prediction Intervals Prediction with Multiple Regression
PythonCreate fitted predictions and compare mean and individual prediction intervals.
Intermediate 25 to 40 min Related dataset: M6_STARTUP_PREDICTION pandas, numpyprediction prediction intervals uncertainty
Module 6
Log Prediction and Smearing Predictions when the Dependent Variable Is Logged
PythonCompare naive and smearing-adjusted retransformation from log outcomes.
Intermediate 25 to 40 min Related dataset: M6_HOUSING_LOGS pandas, numpylog prediction smearing retransformation
Module 6
Bootstrap Standard Errors Project Module 6 Applied Forecasting Project
PythonBootstrap a coefficient and write a careful interpretation with uncertainty.
Applied 35 to 55 min Related dataset: M6_WAGE_SCALING pandas, numpybootstrap standard errors project
Module 7
Binary Variables Creating Binary Variables
PythonCreate and audit binary indicators from transparent rules.
Intermediate 25 to 40 min Related dataset: MODULE7_STUDENT_COMPLETION_SYNTHETIC pandas, numpy, statsmodels, patsydummy variables qualitative information Python statsmodels
Module 7
Group Mean Comparisons Comparing Two Means with Regression
PythonShow how a dummy-only regression reproduces a two-group mean difference.
Intermediate 25 to 40 min Related dataset: MODULE7_WAGE_GROUPS_SYNTHETIC pandas, numpy, statsmodels, patsydummy variables qualitative information Python statsmodels
Module 7
Dummy Variables in Log Models Dummy Variables in Log-Dependent Models
PythonConvert log-dummy coefficients using approximate and exact percentages.
Intermediate 25 to 40 min Related dataset: MODULE7_WAGE_GROUPS_SYNTHETIC pandas, numpy, statsmodels, patsydummy variables qualitative information Python statsmodels
Module 7
Multiple Categories Multiple Categories
PythonEncode categories with a base group and compare coefficient meanings.
Intermediate 25 to 40 min Related dataset: MODULE7_CATEGORY_EFFECTS_SYNTHETIC pandas, numpy, statsmodels, patsydummy variables qualitative information Python statsmodels
Module 7
Dummy Interactions Binary by Binary Interactions
PythonInterpret binary-by-binary interactions as conditional group differences.
Intermediate 25 to 40 min Related dataset: MODULE7_WAGE_GROUPS_SYNTHETIC pandas, numpy, statsmodels, patsydummy variables qualitative information Python statsmodels
Module 7
Different Slopes and Centering Binary by Continuous Interactions
PythonEstimate group-specific slopes and show how centering changes the reference point.
Intermediate 25 to 40 min Related dataset: MODULE7_WAGE_GROUPS_SYNTHETIC pandas, numpy, statsmodels, patsydummy variables qualitative information Python statsmodels
Module 7
Chow-Style Group Difference Tests Full Regression Differences Across Groups
PythonUse interaction restrictions to test full group differences.
Intermediate 25 to 40 min Related dataset: MODULE7_WAGE_GROUPS_SYNTHETIC pandas, numpy, statsmodels, patsydummy variables qualitative information Python statsmodels
Module 7
Linear Probability Model Linear Probability Model
PythonEstimate an LPM and interpret coefficients as probability-point changes.
Intermediate 25 to 40 min Related dataset: MODULE7_STUDENT_COMPLETION_SYNTHETIC pandas, numpy, statsmodels, patsydummy variables qualitative information Python statsmodels
Module 7
LPM Robust Standard Errors Limitations of the Linear Probability Model
PythonInspect fitted probabilities and use HC1 robust standard errors.
Intermediate 25 to 40 min Related dataset: MODULE7_LOAN_APPROVAL_SYNTHETIC pandas, numpy, statsmodels, patsydummy variables qualitative information Python statsmodels
Module 7
Policy Evaluation and Self-Selection Policy Evaluation and Self-Selection
PythonCompare randomized and self-selected treatment comparisons.
Intermediate 25 to 40 min Related dataset: MODULE7_PROGRAM_EVALUATION_SYNTHETIC pandas, numpy, statsmodels, patsydummy variables qualitative information Python statsmodels
Module 7
Discrete Dependent Variables Discrete Dependent Variables
PythonDescribe count outcomes and explain why discrete models may be needed later.
Intermediate 25 to 40 min Related dataset: MODULE7_DISCRETE_OUTCOME_SYNTHETIC pandas, numpy, statsmodels, patsydummy variables qualitative information Python statsmodels
Module 7
Module 7 Capstone Module 7 Capstone
PythonComplete a full qualitative-variable modeling checklist.
Intermediate 25 to 40 min Related dataset: MODULE7_STUDENT_COMPLETION_SYNTHETIC pandas, numpy, statsmodels, patsydummy variables qualitative information Python statsmodels
Module 8
Simulating Heteroskedasticity What Is Heteroskedasticity?
PythonGenerate and visualize changing variance.
Intermediate 25 to 40 min Related dataset: MODULE8_INCOME_SAVINGS_SYNTHETIC pandas, numpy, statsmodels, patsyheteroskedasticity robust standard errors Python statsmodels
Module 8
Conventional versus Robust Standard Errors Robust Standard Errors
PythonCompare conventional, HC0, HC1, HC2, and HC3 standard errors.
Intermediate 25 to 40 min Related dataset: MODULE8_ROBUST_SE_DEMO pandas, numpy, statsmodels, patsyheteroskedasticity robust standard errors Python statsmodels
Module 8
Breusch-Pagan Test The Breusch-Pagan Test
PythonRun and manually audit the Breusch-Pagan workflow.
Intermediate 25 to 40 min Related dataset: MODULE8_INCOME_SAVINGS_SYNTHETIC pandas, numpy, statsmodels, patsyheteroskedasticity robust standard errors Python statsmodels
Module 8
White Test The White Test
PythonUse full and fitted-value White diagnostics.
Intermediate 25 to 40 min Related dataset: MODULE8_HOUSING_VARIANCE_SYNTHETIC pandas, numpy, statsmodels, patsyheteroskedasticity robust standard errors Python statsmodels
Module 8
Robust Joint Tests Robust Joint Tests
PythonTest multiple restrictions with robust covariance.
Intermediate 25 to 40 min Related dataset: MODULE8_ROBUST_SE_DEMO pandas, numpy, statsmodels, patsyheteroskedasticity robust standard errors Python statsmodels
Module 8
Weighted Least Squares Weighted Least Squares Intuition
PythonChoose inverse-variance weights and compare OLS with WLS.
Intermediate 25 to 40 min Related dataset: MODULE8_INCOME_SAVINGS_SYNTHETIC pandas, numpy, statsmodels, patsyheteroskedasticity robust standard errors Python statsmodels
Module 8
Population and Group-Size Weights Group Means, Population Weights, and Aggregated Data
PythonUse group size as a precision weight.
Intermediate 25 to 40 min Related dataset: MODULE8_WLS_GROUP_MEANS pandas, numpy, statsmodels, patsyheteroskedasticity robust standard errors Python statsmodels
Module 8
Feasible GLS Feasible GLS
PythonEstimate a variance function and fit FGLS.
Intermediate 25 to 40 min Related dataset: MODULE8_FGLS_DEMO pandas, numpy, statsmodels, patsyheteroskedasticity robust standard errors Python statsmodels
Module 8
Robust Standard Errors after WLS What If the WLS Variance Model Is Wrong?
PythonCompare WLS conventional and robust standard errors.
Intermediate 25 to 40 min Related dataset: MODULE8_FGLS_DEMO pandas, numpy, statsmodels, patsyheteroskedasticity robust standard errors Python statsmodels
Module 8
Prediction Intervals with Changing Variance Prediction under Heteroskedasticity
PythonPlot prediction intervals under changing variance.
Intermediate 25 to 40 min Related dataset: MODULE8_HOUSING_VARIANCE_SYNTHETIC pandas, numpy, statsmodels, patsyheteroskedasticity robust standard errors Python statsmodels
Module 8
LPM Robust Inference The Linear Probability Model Revisited
PythonEstimate a linear probability model with HC1 robust standard errors.
Applied 35 to 55 min Related dataset: MODULE8_BINARY_OUTCOME_LPM pandas, numpy, statsmodels, patsyheteroskedasticity robust standard errors Python statsmodels
Module 8
Module 8 Capstone Module 8 Capstone
PythonComplete a full diagnostic and correction workflow.
Intermediate 25 to 40 min Related dataset: MODULE8_INCOME_SAVINGS_SYNTHETIC pandas, numpy, statsmodels, patsyheteroskedasticity robust standard errors Python statsmodels
Fundamentals of Python for Financial Econometrics
Chapter 1: Welcome to Python and Ceteris LAB Welcome to Python and Ceteris LAB
PythonHow can one language carry an economic question from raw observations to a reproducible conclusion?
Intermediate 25 to 40 min Related dataset: Ceteris Lab teaching sample pandas, numpywhy Python is useful in economics, finance, econometrics, and AI scripts, notebooks, packages, and environments Run a small end-to-end analysis Recognize the difference between computation and interpretation
Fundamentals of Python for Financial Econometrics
Chapter 2: Installing and Running Python Installing and Running Python
PythonWhat is the least fragile way to move from “I have a computer” to a working, reproducible Python environment?
Intermediate 25 to 40 min Related dataset: Ceteris Lab teaching sample pandas, numpyChoose between local Python, JupyterLab, VS Code, and Google Colab Create and activate a virtual environment Install packages once in a controlled setup Diagnose common kernel and path problems
Fundamentals of Python for Financial Econometrics
Chapter 3: Variables, Values, Types, Strings, and Dates Variables, Values, Types, Strings, and Dates
PythonHow does Python know whether a value is a price, a label, a date, or a logical condition?
Intermediate 25 to 40 min Related dataset: Ceteris Lab teaching sample pandas, numpyCreate variables with meaningful names Work with integers, floats, strings, booleans, and None Format text and numeric results Parse and compare dates safely
Fundamentals of Python for Financial Econometrics
Chapter 4: Collections, Indexing, and Slicing Collections, Indexing, and Slicing
PythonHow should related values be organized so that the structure communicates what operations are legitimate?
Intermediate 25 to 40 min Related dataset: Ceteris Lab teaching sample pandas, numpylists, tuples, dictionaries, and sets Index and slice ordered collections Build nested structures Choose a collection based on meaning rather than habit
Fundamentals of Python for Financial Econometrics
Chapter 5: Decisions, Loops, and Iteration Decisions, Loops, and Iteration
PythonHow can a script apply a rule repeatedly while remaining easy to inspect?
Intermediate 25 to 40 min Related dataset: Ceteris Lab teaching sample pandas, numpyWrite conditional branches Iterate with for and while loops enumerate and zip Recognize when vectorization is clearer
Fundamentals of Python for Financial Econometrics
Chapter 6: Functions, Modules, Errors, and Testing Functions, Modules, Errors, and Testing
PythonHow can a calculation be trusted when it is reused in several chapters or projects?
Intermediate 25 to 40 min Related dataset: Ceteris Lab teaching sample pandas, numpyDefine reusable functions Validate arguments and raise meaningful errors Import modules without hidden state assertions and tests for expected behaviour
Fundamentals of Python for Financial Econometrics
Chapter 7: Files, Paths, Projects, and Reproducibility Files, Paths, Projects, and Reproducibility
PythonHow can a project find its data tomorrow, on another computer, and after being uploaded to a website?
Applied 35 to 55 min Related dataset: Ceteris Lab teaching sample pandas, numpyBuild a portable project tree pathlib and relative paths Separate raw, frozen, processed, and generated files Record versions, sources, and random seeds
Fundamentals of Python for Financial Econometrics
Chapter 8: NumPy and Numerical Computing NumPy and Numerical Computing
PythonWhy are numerical arrays faster and more expressive than repeatedly updating Python lists?
Intermediate 25 to 40 min Related dataset: Ceteris Lab teaching sample pandas, numpyCreate NumPy arrays Understand shape, dtype, broadcasting, and vectorization Generate reproducible random samples Perform matrix and linear-algebra operations
Fundamentals of Python for Financial Econometrics
Chapter 9: pandas Fundamentals pandas Fundamentals
PythonHow can a rectangular dataset preserve labels, dates, and missing values while supporting fast analysis?
Intermediate 25 to 40 min Related dataset: Ceteris Lab teaching sample pandas, numpyCreate Series and DataFrames Inspect rows, columns, indexes, and dtypes Select, filter, sort, and assign variables method chains without hiding intermediate meaning
Fundamentals of Python for Financial Econometrics
Chapter 10: Importing, Cleaning, Validating, and Exporting Data Importing, Cleaning, Validating, and Exporting Data
PythonHow can messy input be transformed without erasing the evidence of what was changed?
Intermediate 25 to 40 min Related dataset: Ceteris Lab teaching sample pandas, numpyRead common tabular formats Parse dates and numeric columns explicitly Handle missing, duplicate, invalid, and extreme values Write validation checks and export clean data
Fundamentals of Python for Financial Econometrics
Chapter 11: Manipulating, Grouping, Reshaping, and Joining Data Manipulating, Grouping, Reshaping, and Joining Data
PythonHow can information be reorganized without accidentally changing the number or meaning of observations?
Intermediate 25 to 40 min Related dataset: Ceteris Lab teaching sample pandas, numpyAggregate with groupby Move between wide and long forms Merge tables using keys Diagnose duplicate keys and many-to-many joins
Fundamentals of Python for Financial Econometrics
Chapter 12: Data Visualization with Python Data Visualization with Python
PythonWhat should a figure reveal that a table or coefficient cannot show as clearly?
Intermediate 25 to 40 min Related dataset: Ceteris Lab teaching sample pandas, numpy, matplotlibConstruct line, scatter, distribution, and categorical charts Label units, sources, and transformations Design for accessibility and grayscale printing Recognize misleading scales and overplotting
Fundamentals of Python for Financial Econometrics
Chapter 13: Descriptive Statistics and Exploratory Data Analysis Descriptive Statistics and Exploratory Data Analysis
PythonHow can a dataset be summarized without letting one number erase its shape?
Beginner 15 to 25 min Related dataset: Ceteris Lab teaching sample pandas, numpy, matplotlibCalculate location, spread, shape, and dependence statistics Compare conventional and robust summaries skewness and kurtosis plots and tables together
Fundamentals of Python for Financial Econometrics
Chapter 14: Probability, Simulation, and Statistical Inference Probability, Simulation, and Statistical Inference
PythonHow can uncertainty be represented, simulated, and summarized without pretending that one sample is the population?
Applied 35 to 55 min Related dataset: Ceteris Lab teaching sample pandas, numpy, statsmodels, patsy, scipyWork with random variables and common distributions Monte Carlo simulation sampling distributions and standard errors confidence intervals, tests, and power
Fundamentals of Python for Financial Econometrics
Chapter 15: Regression and Econometrics with Python Regression and Econometrics with Python
PythonWhat does a regression coefficient mean, and which assumptions are needed before it can support an economic claim?
Applied 35 to 55 min Related dataset: Ceteris Lab teaching sample pandas, numpy, matplotlib, statsmodels, patsyEstimate simple and multiple linear regressions coefficients, interactions, and uncertainty Diagnose residual patterns and heteroskedasticity explanatory inference from predictive evaluation
Fundamentals of Python for Financial Econometrics
Chapter 16: Obtaining Economic and Financial Data Obtaining Economic and Financial Data
PythonHow can a live data source be used without making the analysis disappear when the network or provider changes?
Intermediate 25 to 40 min Related dataset: Ceteris Lab teaching sample pandas, numpyRetrieve data from authoritative APIs Record series IDs, units, frequencies, and retrieval dates Cache legally redistributable snapshots Build graceful fallbacks and error handling
Fundamentals of Python for Financial Econometrics
Chapter 17: Econometric Thinking and Research Design Econometric Thinking and Research Design
PythonWhat exactly are we trying to learn from economic data?
Intermediate 25 to 40 min Related dataset: Ceteris Lab teaching sample pandas, numpyeconomic model versus econometric model population, sample, parameter, estimate, and estimand data-generating processes exogeneity and endogeneity
Fundamentals of Python for Financial Econometrics
Chapter 18: Simple Linear Regression Simple Linear Regression
PythonHow does consumption change with income in a simple model?
Intermediate 25 to 40 min Related dataset: Ceteris Lab teaching sample pandas, numpy, matplotlib, statsmodels, patsypopulation regression function ordinary least squares intercept and slope fitted values and residuals
Fundamentals of Python for Financial Econometrics
Chapter 19: Multiple Regression and the Ceteris Paribus Interpretation Multiple Regression and the Ceteris Paribus Interpretation
PythonHow can we compare two people while holding other observed characteristics constant?
Intermediate 25 to 40 min Related dataset: Ceteris Lab teaching sample pandas, numpymultiple explanatory variables partial effects ceteris paribus interpretation confounding
Fundamentals of Python for Financial Econometrics
Chapter 20: Functional Forms, Dummy Variables, and Interactions Functional Forms, Dummy Variables, and Interactions
PythonWhen is a one-unit change not the right way to describe an economic relationship?
Intermediate 25 to 40 min Related dataset: Ceteris Lab teaching sample pandas, numpylog-level, level-log, and log-log models elasticities quadratic terms dummy variables
Fundamentals of Python for Financial Econometrics
Chapter 21: Inference, Robust Standard Errors, and Diagnostics Inference, Robust Standard Errors, and Diagnostics
PythonHow certain should we be about an estimated coefficient?
Applied 35 to 55 min Related dataset: Ceteris Lab teaching sample pandas, numpy, statsmodels, patsysampling uncertainty standard errors t tests and confidence intervals joint F tests
Fundamentals of Python for Financial Econometrics
Chapter 22: Omitted Variables, Measurement Error, Simultaneity, and Endogeneity Omitted Variables, Measurement Error, Simultaneity, and Endogeneity
PythonWhy can a beautifully estimated regression still answer the wrong question?
Intermediate 25 to 40 min Related dataset: Ceteris Lab teaching sample pandas, numpy, statsmodels, patsyomitted-variable bias bad controls measurement error reverse causality
Fundamentals of Python for Financial Econometrics
Chapter 23: Instrumental Variables and Two-Stage Least Squares Instrumental Variables and Two-Stage Least Squares
PythonCan we isolate useful variation in an endogenous explanatory variable?
Intermediate 25 to 40 min Related dataset: Ceteris Lab teaching sample pandas, numpyinstrument relevance exclusion restriction first stage reduced form
Fundamentals of Python for Financial Econometrics
Chapter 24: Panel Data and Fixed Effects Panel Data and Fixed Effects
PythonWhat can repeated observations teach us that a single cross-section cannot?
Intermediate 25 to 40 min Related dataset: Ceteris Lab teaching sample pandas, numpy, statsmodels, patsyentity and time effects pooled OLS first differences fixed effects
Fundamentals of Python for Financial Econometrics
Chapter 25: Binary, Ordered, and Count Outcomes Binary, Ordered, and Count Outcomes
PythonHow should we model outcomes that are probabilities, categories, or event counts?
Intermediate 25 to 40 min Related dataset: Ceteris Lab teaching sample pandas, numpylinear probability model logit and probit odds and marginal effects ordered logit and probit
Fundamentals of Python for Financial Econometrics
Chapter 26: Censoring, Selection, Quantiles, and Robust Methods Censoring, Selection, Quantiles, and Robust Methods
PythonWhat if the mean is not the whole story, or part of the outcome is unobserved?
Intermediate 25 to 40 min Related dataset: Ceteris Lab teaching sample pandas, numpycensoring and truncation sample selection missing-data mechanisms survey weights
Fundamentals of Python for Financial Econometrics
Chapter 27: Potential Outcomes and Randomized Experiments Potential Outcomes and Randomized Experiments
PythonWhat does a causal effect mean for one unit, and why can we never observe both potential outcomes?
Applied 35 to 55 min Related dataset: Ceteris Lab teaching sample pandas, numpypotential outcomes individual and average treatment effects fundamental problem of causal inference random assignment
Fundamentals of Python for Financial Econometrics
Chapter 28: Matching, Propensity Scores, Weighting, and Doubly Robust Estimation Matching, Propensity Scores, Weighting, and Doubly Robust Estimation
PythonHow can observational studies improve comparability when treatment is not randomized?
Intermediate 25 to 40 min Related dataset: Ceteris Lab teaching sample pandas, numpyselection on observables propensity score overlap common support
Fundamentals of Python for Financial Econometrics
Chapter 29: Difference-in-Differences and Event Studies Difference-in-Differences and Event Studies
PythonHow can policy evaluation use changes over time when randomized assignment is unavailable?
Intermediate 25 to 40 min Related dataset: Ceteris Lab teaching sample pandas, numpy, statsmodels, patsytreated and comparison groups parallel trends two-period DID regression implementation
Fundamentals of Python for Financial Econometrics
Chapter 30: Regression Discontinuity Regression Discontinuity
PythonWhat can a policy cutoff reveal about causal effects near the threshold?
Intermediate 25 to 40 min Related dataset: Ceteris Lab teaching sample pandas, numpy, statsmodels, patsyrunning variable cutoff sharp and fuzzy designs local polynomial regression
Fundamentals of Python for Financial Econometrics
Chapter 31: Synthetic Control and Comparative Case Studies Synthetic Control and Comparative Case Studies
PythonHow can one treated region be compared with a data-driven combination of untreated regions?
Intermediate 25 to 40 min Related dataset: Ceteris Lab teaching sample pandas, numpytreated unit and donor pool pre-treatment fit synthetic weights predictor balance
Fundamentals of Python for Financial Econometrics
Chapter 32: Regularization and High-Dimensional Economic Models Regularization and High-Dimensional Economic Models
PythonHow do we build stable predictions when the number of candidate predictors becomes large?
Intermediate 25 to 40 min Related dataset: Ceteris Lab teaching sample pandas, numpy, statsmodels, patsyridge regression lasso elastic net standardization
Fundamentals of Python for Financial Econometrics
Chapter 33: Decision Trees, Random Forests, and Boosting for Economic Prediction Decision Trees, Random Forests, and Boosting for Economic Prediction
PythonCan flexible nonlinear models improve prediction without pretending to identify causal effects?
Intermediate 25 to 40 min Related dataset: Ceteris Lab teaching sample pandas, numpyrecursive partitioning tree depth and pruning bagging random forests
Fundamentals of Python for Financial Econometrics
Chapter 34: Causal Machine Learning and Double Machine Learning Causal Machine Learning and Double Machine Learning
PythonHow can flexible prediction tools help estimate causal parameters without replacing identification assumptions?
Intermediate 25 to 40 min Related dataset: Ceteris Lab teaching sample pandas, numpy, matplotlibnuisance functions orthogonal scores residualization cross-fitting
Fundamentals of Python for Financial Econometrics
Chapter 35: Explainability, Uncertainty, and Model Governance Explainability, Uncertainty, and Model Governance
PythonHow do we decide whether a powerful prediction model is trustworthy enough to use?
Intermediate 25 to 40 min Related dataset: Ceteris Lab teaching sample pandas, numpycoefficients versus feature importance permutation importance partial dependence SHAP as an optional tool
Fundamentals of Python for Financial Econometrics
Chapter 36: Introduction to Time-Series Data Introduction to Time-Series Data
PythonWhat changes when observations are ordered in time and yesterday can influence today?
Intermediate 25 to 40 min Related dataset: Ceteris Lab teaching sample pandas, numpyCreate and validate time indexes levels, changes, growth rates, and returns Resample data with appropriate aggregation Handle missing dates and trading calendars
Fundamentals of Python for Financial Econometrics
Chapter 37: Dependence, Stationarity, and White Noise Dependence, Stationarity, and White Noise
PythonHow can we tell whether a time series contains predictable linear structure rather than random fluctuation?
Intermediate 25 to 40 min Related dataset: Ceteris Lab teaching sample pandas, numpyDefine weak stationarity and white noise Compute and interpret ACF and PACF Apply Ljung-Box and unit-root diagnostics Recognize volatility clustering and nonlinear dependence
Fundamentals of Python for Financial Econometrics
Chapter 38: AR, MA, ARMA, ARIMA, and Forecasting AR, MA, ARMA, ARIMA, and Forecasting
PythonHow can past values and past shocks be organized into a model that produces honest forecasts and uncertainty?
Intermediate 25 to 40 min Related dataset: Ceteris Lab teaching sample pandas, numpy, statsmodels, patsyAR and MA dynamics ACF, PACF, AIC, and BIC for model guidance Estimate ARIMA models with statsmodels Evaluate point and interval forecasts out of sample
Fundamentals of Python for Financial Econometrics
Chapter 39: Unit Roots, Seasonality, and Dynamic Regression Unit Roots, Seasonality, and Dynamic Regression
PythonHow can a model distinguish persistent trend, recurring seasonality, and serially correlated errors?
Intermediate 25 to 40 min Related dataset: Ceteris Lab teaching sample pandas, numpy, statsmodels, patsyDiagnose unit roots and differencing needs Apply seasonal differencing and decomposition Estimate SARIMA and SARIMAX models regression with time-series errors cautiously
Fundamentals of Python for Financial Econometrics
Chapter 40: ARCH and GARCH Models ARCH and GARCH Models
PythonHow can returns be difficult to predict while their volatility remains persistent and forecastable?
Intermediate 25 to 40 min Related dataset: Ceteris Lab teaching sample pandas, numpy, matplotlibconditional variance and volatility clustering Test for ARCH effects Estimate ARCH and GARCH models Diagnose standardized residuals and forecast volatility
Fundamentals of Python for Financial Econometrics
Chapter 41: Asymmetric, Advanced, and Realized Volatility Asymmetric, Advanced, and Realized Volatility
PythonWhy can equally large negative and positive shocks have different volatility consequences, and what can intraday or OHLC data add?
Intermediate 25 to 40 min Related dataset: Ceteris Lab teaching sample pandas, numpyCompare EGARCH, GJR-GARCH, APARCH, and GARCH-M concepts leverage and news-impact curves Calculate rolling, EWMA, realized, and range-based volatility Discuss microstructure noise and overnight information
Fundamentals of Python for Financial Econometrics
Chapter 42: Nonlinear Models, Regimes, Market Microstructure, and Ordered Outcomes Nonlinear Models, Regimes, Market Microstructure, and Ordered Outcomes
PythonWhat if the same lag has a different effect in calm and stressed regimes, or the observed price change is an ordered category?
Intermediate 25 to 40 min Related dataset: Ceteris Lab teaching sample pandas, numpy, statsmodels, patsySimulate and interpret threshold autoregression Markov-switching regimes and expected duration market-microstructure effects Estimate and interpret ordered probit probabilities
Fundamentals of Python for Financial Econometrics
Chapter 43: Stochastic Processes and Option Pricing Stochastic Processes and Option Pricing
PythonHow can continuous-time uncertainty be simulated and translated into a no-arbitrage option value?
Intermediate 25 to 40 min Related dataset: Ceteris Lab teaching sample pandas, numpySimulate Brownian motion and geometric Brownian motion Ito’s lemma intuitively Calculate European option payoffs and Black-Scholes prices Monte Carlo and sensitivity analysis
Fundamentals of Python for Financial Econometrics
Chapter 44: Financial Risk Management Financial Risk Management
PythonHow much could be lost, how often should that threshold be exceeded, and what happens beyond it?
Intermediate 25 to 40 min Related dataset: Ceteris Lab teaching sample pandas, numpyDefine a loss variable and coherent risk principles Calculate VaR and Expected Shortfall Compare historical, parametric, GARCH, and EVT methods Backtest exceedances and discuss stress testing
Fundamentals of Python for Financial Econometrics
Chapter 45: Multiple Time Series Multiple Time Series
PythonWhen several series move together, which relationships are short-run predictive and which are long-run equilibrating?
Intermediate 25 to 40 min Related dataset: Ceteris Lab teaching sample pandas, numpyCompute cross-correlation structures Estimate and diagnose VAR models Granger predictability and impulse responses cautiously Test cointegration and describe VECM adjustment
Fundamentals of Python for Financial Econometrics
Chapter 46: Econometrics and Machine Learning: Different Questions, Shared Tools Econometrics and Machine Learning: Different Questions, Shared Tools
PythonWhich tasks deserve the label AI, and which claims collapse when we ask what data, objective, and evaluation produced the result?
Intermediate 25 to 40 min Related dataset: Ceteris Lab teaching sample pandas, numpy, statsmodels, patsyAI, machine learning, deep learning, and generative AI Separate rule-based systems from learned models regression, classification, generation, and retrieval Identify hallucination, bias, privacy, and deepfake risks
Fundamentals of Python for Financial Econometrics
Chapter 47: Machine-Learning Workflow and Gradient Descent for Economic Data Machine-Learning Workflow and Gradient Descent for Economic Data
PythonHow can a model be trained without letting information from the future or test set leak into the learning process?
Intermediate 25 to 40 min Related dataset: Ceteris Lab teaching sample pandas, numpyDefine features, labels, train, validation, and test sets Recognize overfitting, underfitting, and leakage loss functions and gradient descent Build reproducible preprocessing pipelines
Fundamentals of Python for Financial Econometrics
Chapter 48: Applied Economic Prediction and Classification Projects Applied Economic Prediction and Classification Projects
PythonHow can an end-to-end workflow turn housing and passenger data into models that are evaluated honestly and interpreted carefully?
Applied 35 to 55 min Related dataset: Ceteris Lab teaching sample pandas, numpy, matplotlib, statsmodels, patsyBuild a regression workflow with the Tehran housing data Build a classification workflow with Titanic data pipelines, cross-validation, and multiple metrics Analyze residuals, confusion matrices, and subgroup performance
Fundamentals of Python for Financial Econometrics
Chapter 49: Neural Networks and Deep Learning for Economic Data Neural Networks and Deep Learning for Economic Data
PythonHow does a stack of simple differentiable units learn a nonlinear mapping, and how do we know it has not merely memorized the training sample?
Intermediate 25 to 40 min Related dataset: Ceteris Lab teaching sample pandas, numpyneurons, activations, layers, and forward passes backpropagation and optimization Train a small PyTorch network learning curves, regularization, and validation
Fundamentals of Python for Financial Econometrics
Chapter 50: Computer Vision and Spatial Economic Measurement Computer Vision and Spatial Economic Measurement
PythonHow does a model transform pixels into useful local patterns without being told the exact edge or texture to search for?
Intermediate 25 to 40 min Related dataset: Ceteris Lab teaching sample pandas, numpyRepresent images as arrays convolution, stride, padding, and channels CNNs, augmentation, and transfer learning Evaluate errors, bias, and privacy
Fundamentals of Python for Financial Econometrics
Chapter 51: Natural-Language Processing and Transformers for Economics Natural-Language Processing and Transformers for Economics
PythonHow can text be converted into numerical representations while preserving enough context to classify or retrieve meaning?
Intermediate 25 to 40 min Related dataset: Ceteris Lab teaching sample pandas, numpyTokenize and vectorize text TF-IDF and word embeddings cosine similarity, attention, and transformers Evaluate text classifiers and language limitations
Fundamentals of Python for Financial Econometrics
Chapter 52: Language Models, Retrieval, and AI Agents for Econometric Research Language Models, Retrieval, and AI Agents for Econometric Research
PythonHow can a language model answer from a controlled evidence collection, use tools, and still remain subject to verification?
Intermediate 25 to 40 min Related dataset: Ceteris Lab teaching sample pandas, numpy, statsmodels, patsynext-token prediction and context windows Build a simple retrieval-augmented workflow agent loops, tools, memory, and stopping conditions Evaluate grounding, privacy, cost, and safety
Fundamentals of Python for Financial Econometrics
Chapter 53: Capstone Projects and Student Portfolio Capstone Projects and Student Portfolio
PythonHow can a student transform code fragments into a defensible, reproducible analytical product for the Ceteris LAB website or a professional portfolio?
Applied 35 to 55 min Related dataset: Ceteris Lab teaching sample pandas, numpyPlan a complete project from question to communication authoritative data and a data dictionary Compare baseline and advanced models out of sample Package code, figures, limitations, and reproducibility files