Projects
Research Wikis
Over the course of a research career, it is easy to accumulate thousands of published papers organized loosely into folders by topic, methodology, or source — a system that works for storage but fails for retrieval. What if you could query that collection to get precise answers to specific questions, trace connections across literatures, or identify gaps that point toward future research? That is the problem these wikis are designed to solve. The researcher acts as curator: deciding which papers to ingest and which conceptual threads to develop relative to the existing knowledge structure. Everything is written and maintained by the LLM, but the researcher retains full authority — correcting errors, steering the wiki toward their own research interests, and shaping the schema that governs how knowledge is organized.
The two wikis below are personal knowledge bases built using the LLM Wiki pattern — a design introduced by Andrej Karpathy in which a large language model (LLM) agent maintains a persistent, interlinked set of markdown files as the primary layer of a knowledge base. Rather than retrieving from raw documents at query time, as in Retrieval-Augmented Generation (RAG), the LLM pre-compiles source material into structured, cross-referenced concept pages. Knowledge accumulates and compounds across sessions instead of being re-derived from scratch each time.
The contrast with RAG is architectural. RAG indexes raw text chunks into a vector database and retrieves the most semantically similar passages at query time — fast to set up and effective for lookup tasks, but stateless. Each query starts from zero: no understanding carries over between sessions, and the expensive work of cross-document synthesis is repeated on every question. The LLM Wiki inverts this: ingestion is the expensive step, and it is done once per source. Each new paper is not just summarized — it is cross-linked into the existing structure, updating related concept and entity pages with new connections. A paper on manufacturing decline, for example, propagates into existing pages on mortality, marriage markets, intergenerational mobility, and labor supply — not just into its own summary page. This is where compounding happens.
Karpathy's framing captures the roles concisely: "Obsidian is the IDE, the LLM is the programmer, the wiki is the codebase." The user curates inputs and reviews outputs. All structural maintenance — cross-referencing, tagging, backlink management, logging — is delegated to the LLM, governed by a schema file (CLAUDE.md) that defines page formats, naming conventions, and ingestion and query protocols. The architecture is locally owned and fully human-readable: every page can be opened, verified, and corrected, with no proprietary lock-in or black-box retrieval pipeline.
Below are two wikis I plan to continually develop.
Demographic, Disability, Retirement, and Labor Economics Wiki
This wiki tracks two portions of my career at SSA. The first was developing stochastic methods for forecasting vital rates — mortality, fertility, immigration, and population — as well as macroeconomic variables that go into analyzing SSA's long-run financial status. The second was retirement and disability research.
Browse wiki →Bayesian & Econometrics Wiki
This wiki draws on my dissertation work and ongoing interests in Bayesian statistical methods and macro/time series econometrics.
Browse wiki →Software & Code
Three bodies of work, in Python and R. The first and largest is Bayesian statistical and econometric modelling: traditional MCMC — Gibbs and Metropolis–Hastings samplers built from scratch — alongside gradient-based Hamiltonian Monte Carlo via NUTS (PyMC / Stan), across regression, limited dependent variables, time series, spatial models and Bayesian nonparametrics. Many examples replicate the results of seminal papers.
The second is a machine-learning arc, which is package-led — trees and ensembles, regularisation, neural networks, model evaluation — but keeps one genuine from-scratch core per topic so the mechanics are never a black box, and ends in operations research, where a forecast is graded by the decision it supports rather than by its error metric. The third is a causal-inference arc, where the question is not how well a model predicts but whether an effect is identified at all.
One theme runs through all three: the contrast between from-scratch implementations, which expose the machinery, and the off-the-shelf packages that reproduce the same answers — typically cross-checked across two or three engines. A second theme is that negative results are reported as findings rather than buried, because a method that fails on real data has told you something.
Statistical Distributions
A from-scratch catalog — PMF/PDF, CDF, quantile, RNG and moments built from elementary math and cross-validated against reference libraries in Python and R.
8 examplesLinear & Regression Models
Constrained, robust, mixture-error, multivariate, SUR, and hierarchical Gaussian regression.
8 examplesLimited Dependent Variables
Binary probit & logit (robust, hierarchical, panel, flexible-link), ordered & sequential probit, multivariate & multinomial probit, hierarchical & mixture multinomial logit, and Tobit.
13 examplesCount Models
Poisson & Negative Binomial, hierarchical GLMMs, zero-inflation, and spatial counts.
5 examplesSurvival Models
Weibull PH, frailty, Cox-via-Poisson, and interval-censored survival.
4 examplesUnivariate Time Series
SARIMA, change-point & Markov-switching AR, GARCH, asymmetric GJR & Value-at-Risk, GARCH-in-mean, stochastic & realized volatility, regimes vs long memory, and option pricing.
10 examplesMultivariate Time Series
Multivariate GARCH covariance dynamics; a multi-part Bayesian VAR arc — reduced-form & structural, large-scale, factor-augmented, cointegration (VECM), stochastic-volatility, time-varying & regime-switching, hierarchical, heteroskedasticity-identified, and global-local (horseshoe) shrinkage, with monetary, oil & fiscal applications; and demographic forecasting.
15 examplesRisk and Asset Allocation
Portfolio construction from the ground up — market invariants and horizon projection, shrinkage and Bayesian estimation, Black–Litterman views, robust allocation, coherent risk measures with extreme-value tails, and copulas for the joint crashes a correlation cannot express.
8 examplesVariable Selection
Bayesian model selection — spike-and-slab / stochastic search (SSVS), exact g-prior enumeration with model averaging, VAR restriction search, selection across outcome types (log-linear, logistic, survival), unknown-dimension inference (reversible-jump change-points, Dirichlet-process mixtures, free-knot splines), and genomics-scale horseshoe shrinkage.
10 examplesItem Response Theory
Psychometrics from scratch — dichotomous 2PL/3PL with Rasch as the special case, graded response for Likert items, multidimensional IRT as item factor analysis, differential item functioning and explanatory IRT, and model comparison by WAIC/LOO.
5 examplesBayesian Nonparametrics
Priors on infinite-dimensional objects — Dirichlet-process and Pitman–Yor mixtures for clusters, hierarchical DPs for grouped data, Gaussian processes for functions and their links to classification and Cox processes, penalised splines for curves, Gamma-process hazards, and Pólya trees for whole distributions.
7 examplesMissing Data
Imputation from scratch — MCAR/MAR/MNAR and multivariate-normal data augmentation, chained equations with Rubin's rules, missing covariates, the two MNAR factorisations (selection and pattern-mixture with δ-sensitivity), and categorical nonresponse.
6 examplesLatent Class Analysis
The discrete-data mixture model — EM, data-augmentation Gibbs and class-marginalised NUTS, with label switching, class-count selection, covariates, conditional dependence, diagnostic testing without a gold standard, and classes that move over time.
7 examplesSpatial Statistics
Spatial dependence from scratch — areal data on a neighbour graph with Moran's I and the CAR/BYM family, shared-component CAR for joint outcomes, SAR/SEM spillovers, geostatistical kriging as Gaussian-process regression, point processes, space-time CAR, and a national-scale application to the US disability belt.
7 examplesMachine Learning: Generative vs Discriminative
The foundations that open the arc — Naive Bayes and LDA modelling how the data were produced, logistic regression modelling only the answer, and the support vector machine modelling only the boundary. The convergence trade-off and the calibration ladder, both measured rather than asserted.
2 examplesMachine Learning: Trees and Ensembles
Tree methods from the split search up — CART with cost-complexity pruning, random forests where bagging meets the random subspace, gradient boosting, the production libraries (XGBoost, LightGBM, CatBoost), and BART, where the ensemble becomes a Bayesian model with a posterior.
5 examplesMachine Learning: Regularized & Kernel Learning
Penalties, kernels, and the Bayesian objects behind them — ridge, lasso and elastic net by coordinate descent; support vector machines and the kernel trick; Gaussian processes and splines as the Bayesian face of the same machinery; and two finance applications where p is genuinely large.
5 examplesMachine Learning: Neural Networks & Deep Learning
The core idea built by hand and then scaled — backpropagation derived and proved correct, convolutional networks for spatial structure, recurrent networks and LSTMs for temporal structure, transformers and attention, and Bayesian deep learning where the network reports its own uncertainty.
5 examplesMachine Learning: Time-Series — ML vs Econometrics
Do machine-learning forecasters actually beat classical time-series models? Tested head to head over multiple forecast origins — one clean seasonal series, a macro system, a panel of many series, and financial returns where the signal nearly vanishes.
4 examplesMachine Learning: Unsupervised Learning
Structure found without labels, where there is no held-out truth to be wrong against — k-means and Gaussian mixtures for market regimes, PCA and factor analysis on the cross-section of returns, autoencoders as a nonlinear generalisation of PCA, and t-SNE and UMAP for embedding.
4 examplesMachine Learning: Model Evaluation & Interpretability
The cross-cutting diagnostics — choosing complexity with cross-validation, information criteria and Bayesian LOO; attributing predictions with impurity, permutation and SHAP; checking whether predicted probabilities mean what they claim; and conformal prediction intervals that carry a guarantee.
4 examplesMachine Learning: Financial ML (López de Prado)
The methodology from Advances in Financial Machine Learning — purged and embargoed cross-validation for overlapping labels, fractional differentiation that preserves memory, triple-barrier labelling and meta-labelling, and the deflated Sharpe ratio and probability of backtest overfitting.
4 examplesMachine Learning: Arc Capstone
The whole toolkit on one problem — forecasting S&P realized volatility with the full model roster, engineered features including a fractionally-differenced price, four validation schemes, conformal and Bayesian intervals checked for coverage, and SHAP attribution.
1 exampleMachine Learning: Operations Research
Forecasting judged by the decision it supports rather than by its error metric — a demand distribution feeding a newsvendor, two-stage stochastic programs for staffing and the power grid, queueing and survival models sizing capacity, and combinatorial routing and cost-sensitive fraud decisions where the objective, not the model, turns out to be the thing worth getting right.
7 examplesCausal Inference: The Arc
The fundamental problem — the counterfactual is missing by construction, so a causal effect is never observed, only estimated under assumptions. Why randomization comes first rather than last, the four books that supply the spine, and the ten-subsection order in which identification gets progressively harder to defend.
OverviewCausal Inference: Randomized Experiments
Identification by design — the one setting where a causal effect is recovered with almost no assumptions, because the researcher rather than nature decides who is treated. The Rubin causal model and Fisher’s exact randomization inference, covariate adjustment for precision, noncompliance and clustering, and the online A/B-testing machinery that inherits all of it.
9 examplesCausal Inference: Bayesian Analysis of Randomized Experiments
The same real experiments, re-analysed for what the frequentist version structurally cannot produce — a prior-sensitivity curve, a posterior on between-group variation, an effect for every one of seventy-nine schools, and compliance types as latent classes. Ordered by how much the prior can actually move the answer, from fifteen matched pairs to three hundred thousand voters.
5 examplesCausal Inference: Selection on Observables
Identification by assumption rather than by design. Unconfoundedness replaces randomization and cannot be tested, so the group is organised around the diagnostics that stand in for it — propensity scores, matching, weighting and doubly-robust estimation — and around how far each can actually be trusted.
3 examplesCausal Inference: Bayesian Selection on Observables
A second pass over the observational group, aimed at the one thing its diagnostics cannot reach. The priors here stand in for quantities the data cannot identify at all — the unmeasured confounder, and the response surface where treated and control units do not overlap.
3 examplesCausal Inference: Natural & Quasi-Experiments
Identification borrowed from the world — an instrument, a threshold, a policy date, a comparison region. Each is a place where something outside the study assigned treatment in a way that is arguably as good as random, and each is paired with the diagnostic literature that grew up to police it.
10 examplesCausal Inference: Causal Structure
Identification read off a graph rather than argued in prose. The back-door criterion turns out to be unconfoundedness drawn as a picture; the collider rule shows that adjusting for the wrong variable creates bias rather than removing it; and causal discovery marks how much of the graph data alone can supply — on the field’s own benchmark, under half of it. Then both methods again on national health-survey data, where the reader is the ground truth.
3 examplesCausal Inference: Frontier — ML & Dynamics
Identification granted, estimation flexible. Conditional effects rather than averages, orthogonalization so that machine learning does not poison the estimate, and the step from an estimate to a decision with a cost attached — then the two settings where time breaks the earlier machinery: censored outcomes, and confounders that respond to treatment.
6 examples