Awesome-Agent-Skills-for-Empirical-Research behavioral-economics-guide
Behavioral economics research methods and key frameworks
install
source · Clone the upstream repo
git clone https://github.com/brycewang-stanford/Awesome-Agent-Skills-for-Empirical-Research
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/brycewang-stanford/Awesome-Agent-Skills-for-Empirical-Research "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/43-wentorai-research-plugins/skills/domains/economics/behavioral-economics-guide" ~/.claude/skills/brycewang-stanford-awesome-agent-skills-for-empirical-research-behavioral-econom && rm -rf "$T"
manifest:
skills/43-wentorai-research-plugins/skills/domains/economics/behavioral-economics-guide/SKILL.mdsource content
Behavioral Economics Guide
Conduct behavioral economics research using experimental methods, prospect theory, nudge frameworks, and key empirical tools for studying decision-making under bounded rationality.
Core Theoretical Frameworks
Prospect Theory (Kahneman & Tversky, 1979)
People evaluate outcomes relative to a reference point, with losses looming larger than equivalent gains:
Key features: 1. Reference dependence: Utility is defined over gains and losses, not absolute wealth 2. Loss aversion: lambda ≈ 2.25 (losses hurt ~2.25x more than equivalent gains) 3. Diminishing sensitivity: Marginal impact decreases as you move away from reference 4. Probability weighting: Overweight small probabilities, underweight large ones Value function: v(x) = x^alpha if x >= 0 (alpha ≈ 0.88) v(x) = -lambda * (-x)^beta if x < 0 (beta ≈ 0.88, lambda ≈ 2.25) Probability weighting function (Prelec, 1998): w(p) = exp(-(-ln(p))^alpha) (alpha ≈ 0.65 for gains, 0.69 for losses)
Dual Process Theory (Kahneman, 2011)
| System 1 (Fast) | System 2 (Slow) |
|---|---|
| Automatic, effortless | Deliberate, effortful |
| Intuitive, heuristic-based | Analytical, rule-based |
| Parallel processing | Serial processing |
| Emotional | Logical |
| Prone to biases | Can override biases |
| Default mode | Activated when needed |
Nudge Theory (Thaler & Sunstein, 2008)
Nudges alter choice architecture to influence decisions without restricting options:
| Nudge Type | Example | Mechanism |
|---|---|---|
| Default setting | Opt-out organ donation | Status quo bias |
| Salience | Calorie labels at point of sale | Attention focus |
| Social norms | "9 out of 10 neighbors recycle" | Conformity |
| Commitment device | Pre-commitment to savings plans | Present bias correction |
| Simplification | Pre-filled tax forms | Reduce cognitive load |
| Feedback | Real-time energy usage display | Information salience |
| Framing | "90% survival" vs "10% mortality" | Reference frame |
Key Behavioral Biases and Experimental Tests
| Bias | Definition | Classic Experiment |
|---|---|---|
| Anchoring | Over-reliance on first piece of information | Wheel of fortune + estimation task |
| Endowment effect | Overvaluing what you own | Mug trading experiment (Kahneman et al., 1990) |
| Status quo bias | Preference for current state | Default choice experiments |
| Present bias | Overweighting immediate outcomes | Discount rate elicitation |
| Sunk cost fallacy | Continuing due to past investment | Theater ticket scenario |
| Overconfidence | Overestimating own knowledge/ability | Calibration tasks |
| Availability heuristic | Judging probability by ease of recall | Frequency estimation tasks |
| Representativeness | Judging probability by similarity | Linda problem |
| Framing effect | Choices depend on how options are presented | Asian disease problem |
Experimental Methods
Lab Experiments
# Example: Dictator Game implementation with oTree # oTree is the standard platform for behavioral economics experiments # models.py class Player(BasePlayer): dictator_give = models.CurrencyField( min=0, max=100, label="How much do you want to give to the other participant?" ) # pages.py class Decision(Page): form_model = 'player' form_fields = ['dictator_give'] def vars_for_template(self): return {'endowment': 100} class Results(Page): def vars_for_template(self): return { 'kept': 100 - self.player.dictator_give, 'given': self.player.dictator_give }
Field Experiments and RCTs
Design checklist for a behavioral field experiment: 1. RESEARCH QUESTION "Does changing the default retirement contribution rate from 3% to 6% increase average savings?" 2. TREATMENT ARMS - Control: Default contribution = 3% (status quo) - Treatment 1: Default contribution = 6% (higher default) - Treatment 2: Default contribution = 6% + active choice prompt 3. RANDOMIZATION - Unit: Individual employees - Method: Stratified randomization by age, salary, tenure - Balance checks: t-tests on observables across treatment arms 4. SAMPLE SIZE - Power calculation: N = 1,200 per arm (power=0.80, MDE=2pp, alpha=0.05, ICC adjusted for clustering by department) 5. OUTCOME MEASURES - Primary: Contribution rate at 6 months - Secondary: Total savings at 12 months, opt-out rate - Administrative data (no survey needed) 6. PRE-REGISTRATION - Register on AEA RCT Registry before treatment assignment
Survey Experiments
# Example: Willingness-to-Pay (WTP) elicitation using BDM mechanism # Becker-DeGroot-Marschak procedure import numpy as np def bdm_auction(stated_wtp, item_cost_range=(0, 20)): """ Becker-DeGroot-Marschak incentive-compatible mechanism. Random price drawn; participant buys if WTP >= price. """ random_price = np.random.uniform(*item_cost_range) buys = stated_wtp >= random_price payment = random_price if buys else 0 return { "stated_wtp": stated_wtp, "random_price": round(random_price, 2), "purchased": buys, "payment": round(payment, 2) } # This is incentive-compatible: truthfully reporting WTP is optimal # because the price is determined independently of the stated WTP
Time Preferences and Discounting
# Estimating discount factors from multiple price list (MPL) choices def estimate_discount_factor(choices, amounts, delays): """ Estimate quasi-hyperbolic discounting parameters (beta, delta) from a series of smaller-sooner vs. larger-later choices. beta: present bias (< 1 means present-biased) delta: long-run discount factor (per period) """ from scipy.optimize import minimize def neg_log_likelihood(params): beta, delta = params ll = 0 for choice, (ss, ll_amt), (t_ss, t_ll) in zip(choices, amounts, delays): # Discounted utility of each option if t_ss == 0: u_ss = ss # No discounting for immediate u_ll = beta * (delta ** t_ll) * ll_amt else: u_ss = beta * (delta ** t_ss) * ss u_ll = beta * (delta ** t_ll) * ll_amt p_ll = 1 / (1 + np.exp(-(u_ll - u_ss))) # Logit ll += choice * np.log(p_ll + 1e-10) + (1-choice) * np.log(1-p_ll + 1e-10) return -ll result = minimize(neg_log_likelihood, [0.9, 0.95], bounds=[(0.01, 1.5), (0.8, 1.0)]) return {"beta": result.x[0], "delta": result.x[1]}
Data Analysis in Behavioral Economics
Common Estimation Methods
| Method | Use Case | Software |
|---|---|---|
| OLS / Logit | Treatment effects, survey experiments | Stata, R, Python |
| IV / 2SLS | Endogeneity in field settings | Stata (), R () |
| Difference-in-differences | Policy evaluation | Stata, R ( package) |
| Structural estimation | Utility function parameters | Stata, MATLAB, Python |
| Random utility models | Discrete choice experiments | R (), Python () |
| Clustering corrections | Within-group correlation | Stata , R |
Key Resources
| Resource | Type | Description |
|---|---|---|
| oTree | Software | Open-source platform for behavioral experiments |
| Gorilla | Platform | Online experiment builder (psychology/economics) |
| LIONESS Lab | Platform | Real-time interactive online experiments |
| AEA RCT Registry | Registry | Pre-registration for economics experiments |
| J-PAL | Organization | Poverty Action Lab, methodological resources |
| NBER Behavioral Finance | Working papers | Latest research in behavioral finance |
Top Journals and Venues
| Journal | Focus |
|---|---|
| American Economic Review | Top 5, publishes major behavioral papers |
| Quarterly Journal of Economics | Top 5, strong behavioral presence |
| Journal of Political Economy | Top 5 |
| Econometrica | Top 5, theory + experiments |
| Journal of the European Economic Association | Top field journal |
| Management Science | Behavioral operations, decision-making |
| Experimental Economics | Dedicated experiments journal |
| Journal of Behavioral and Experimental Economics | Broader behavioral |
| Journal of Economic Behavior & Organization | Interdisciplinary behavioral |