{"schemaVersion":2,"id":"ols","title":"Ordinary Least Squares","totalStages":20,"modules":[{"id":"ols-line","title":"1 · The line of best fit","summary":"What OLS does, and recovering a known slope from data.","stageCount":5,"stages":[{"id":"ols-line-01","index":0,"moduleId":"ols-line","moduleIndex":0,"type":"read","title":"Modelling y with a line","skillIds":["ols.least-squares-geometry"],"estimatedMinutes":6,"difficulty":"core","points":5},{"id":"ols-line-02","index":1,"moduleId":"ols-line","moduleIndex":1,"type":"code","title":"Estimate it","skillIds":["ols.coefficient-interpretation"],"estimatedMinutes":10,"difficulty":"core","points":10},{"id":"ols-line-03","index":2,"moduleId":"ols-line","moduleIndex":2,"type":"interactive","title":"Feel the fit","skillIds":["ols.least-squares-geometry"],"estimatedMinutes":8,"difficulty":"core","points":10},{"id":"ols-line-04","index":3,"moduleId":"ols-line","moduleIndex":3,"type":"quiz","title":"Check","skillIds":["ols.coefficient-interpretation"],"estimatedMinutes":5,"difficulty":"core","points":15},{"id":"ols-line-05","index":4,"moduleId":"ols-line","moduleIndex":4,"type":"truefalse","title":"Does a great fit prove the cause?","skillIds":["ols.least-squares-geometry"],"estimatedMinutes":3,"difficulty":"core","points":10}]},{"id":"ols-math","title":"2 · How OLS finds the line","summary":"The normal equations — OLS in one line of linear algebra.","stageCount":4,"stages":[{"id":"ols-math-01","index":5,"moduleId":"ols-math","moduleIndex":0,"type":"read","title":"The normal equations","skillIds":["ols.matrix-estimator"],"estimatedMinutes":6,"difficulty":"core","points":5},{"id":"ols-math-02","index":6,"moduleId":"ols-math","moduleIndex":1,"type":"code","title":"Compute β̂ by hand vs statsmodels","skillIds":["ols.sampling-uncertainty"],"estimatedMinutes":10,"difficulty":"core","points":10},{"id":"ols-math-03","index":7,"moduleId":"ols-math","moduleIndex":2,"type":"quiz","title":"Check","skillIds":["ols.matrix-estimator"],"estimatedMinutes":5,"difficulty":"core","points":15},{"id":"ols-math-04","index":8,"moduleId":"ols-math","moduleIndex":3,"type":"quiz","title":"Is β̂ unbiased for the causal return?","skillIds":["ols.sampling-uncertainty"],"estimatedMinutes":5,"difficulty":"core","points":15}]},{"id":"ols-inference","title":"3 · Inference","summary":"Standard errors, t-statistics, confidence intervals — and how they shrink with n.","stageCount":6,"stages":[{"id":"ols-inference-01","index":9,"moduleId":"ols-inference","moduleIndex":0,"type":"read","title":"From estimate to uncertainty","skillIds":["ols.t-inference"],"estimatedMinutes":6,"difficulty":"core","points":5},{"id":"ols-inference-02","index":10,"moduleId":"ols-inference","moduleIndex":1,"type":"code","title":"Read the inference","skillIds":["ols.gauss-markov"],"estimatedMinutes":10,"difficulty":"core","points":10},{"id":"ols-inference-03","index":11,"moduleId":"ols-inference","moduleIndex":2,"type":"interactive","title":"More data, more certainty","skillIds":["ols.t-inference"],"estimatedMinutes":8,"difficulty":"core","points":10},{"id":"ols-inference-04","index":12,"moduleId":"ols-inference","moduleIndex":3,"type":"quiz","title":"Check","skillIds":["ols.gauss-markov"],"estimatedMinutes":5,"difficulty":"core","points":15},{"id":"ols-inference-05","index":13,"moduleId":"ols-inference","moduleIndex":4,"type":"numeric","title":"What does 'explained' mean?","skillIds":["ols.t-inference"],"estimatedMinutes":5,"difficulty":"core","points":20},{"id":"ols-inference-06","index":14,"moduleId":"ols-inference","moduleIndex":5,"type":"numeric","title":"How much data to halve the SE?","skillIds":["ols.gauss-markov"],"estimatedMinutes":5,"difficulty":"core","points":20}]},{"id":"ols-assumptions","title":"4 · Assumptions & diagnostics","summary":"Gauss–Markov, heteroskedasticity, and robust standard errors.","stageCount":5,"stages":[{"id":"ols-assumptions-01","index":15,"moduleId":"ols-assumptions","moduleIndex":0,"type":"read","title":"When is OLS trustworthy?","skillIds":["ols.robust-standard-errors"],"estimatedMinutes":6,"difficulty":"core","points":5},{"id":"ols-assumptions-02","index":16,"moduleId":"ols-assumptions","moduleIndex":1,"type":"code","title":"Spot heteroskedasticity, then fix the SEs","skillIds":["ols.robust-standard-errors"],"estimatedMinutes":10,"difficulty":"core","points":10},{"id":"ols-assumptions-03","index":17,"moduleId":"ols-assumptions","moduleIndex":2,"type":"quiz","title":"Check","skillIds":["ols.robust-standard-errors"],"estimatedMinutes":5,"difficulty":"core","points":15},{"id":"ols-assumptions-04","index":18,"moduleId":"ols-assumptions","moduleIndex":3,"type":"truefalse","title":"Does heteroskedasticity bias the coefficients?","skillIds":["ols.robust-standard-errors"],"estimatedMinutes":3,"difficulty":"core","points":10},{"id":"ols-assumptions-05","index":19,"moduleId":"ols-assumptions","moduleIndex":4,"type":"multi","title":"What does heteroskedasticity actually break?","skillIds":["ols.robust-standard-errors"],"estimatedMinutes":5,"difficulty":"core","points":20}]}]}
