behavioral-economics-guide

Behavioral economics research methods and key frameworks

191 stars

Best use case

behavioral-economics-guide is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Behavioral economics research methods and key frameworks

Teams using behavioral-economics-guide should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/behavioral-economics-guide/SKILL.md --create-dirs "https://raw.githubusercontent.com/wentorai/research-plugins/main/skills/domains/economics/behavioral-economics-guide/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/behavioral-economics-guide/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How behavioral-economics-guide Compares

Feature / Agentbehavioral-economics-guideStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Behavioral economics research methods and key frameworks

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# 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

```python
# 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

```python
# 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

```python
# 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 (`ivregress`), R (`ivreg`) |
| Difference-in-differences | Policy evaluation | Stata, R (`did` package) |
| Structural estimation | Utility function parameters | Stata, MATLAB, Python |
| Random utility models | Discrete choice experiments | R (`mlogit`), Python (`pylogit`) |
| Clustering corrections | Within-group correlation | Stata `vce(cluster)`, R `sandwich` |

## 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 |