skills/43-wentorai-research-plugins/skills/domains/economics/behavioral-economics-guide/SKILL.md
Behavioral economics research methods and key frameworks
npx skillsauth add brycewang-stanford/Awesome-Agent-Skills-for-Empirical-Research behavioral-economics-guideInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Conduct behavioral economics research using experimental methods, prospect theory, nudge frameworks, and key empirical tools for studying decision-making under bounded rationality.
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)
| 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 |
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 |
| 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 |
# 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
}
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
# 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
# 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]}
| 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 |
| 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 |
| 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 |
development
Conduct rigorous thematic analysis (TA) of qualitative data following Braun and Clarke's (2006) six-phase framework. Use whenever the user mentions 'thematic analysis', 'TA', 'Braun and Clarke', 'qualitative coding', 'identifying themes', or asks for help analysing interviews, focus groups, open-ended survey responses, or transcripts to identify patterns. Also trigger for questions about inductive vs theoretical coding, semantic vs latent themes, essentialist vs constructionist epistemology, building a thematic map, or writing up a qualitative findings section. Covers all six phases, the four upfront analytic decisions, the 15-point quality checklist, and the five common pitfalls. Produces a Word document write-up and an annotated thematic map. Does NOT cover IPA, grounded theory, discourse analysis, conversation analysis, or narrative analysis — use a different method for those.
development
Guide users through writing a systematic literature review (SLR) following the PRISMA 2020 framework. Use this skill whenever the user mentions 'systematic review', 'systematic literature review', 'SLR', 'PRISMA', 'PRISMA 2020', 'PRISMA flow diagram', 'PRISMA checklist', or asks for help writing, structuring, or auditing a literature review that follows reporting guidelines. Also trigger when the user asks about inclusion/exclusion criteria for a review, search strategies for databases like Scopus/WoS/PubMed, study selection processes, risk of bias assessment, or narrative synthesis for a review paper. This skill covers the full PRISMA 2020 checklist (27 items), produces a Word document manuscript in strict journal article format, generates an annotated PRISMA flow diagram, and enforces APA 7th Edition referencing throughout. It does NOT cover meta-analysis or statistical pooling. By Chuah Kee Man.
testing
Performs placebo-in-time sensitivity analysis with hierarchical null model and optional Bayesian assurance. Use when checking model robustness, verifying lack of pre-intervention effects, or estimating study power.
data-ai
Fit, summarize, plot, and interpret a chosen CausalPy experiment. Use after the causal method has been selected, including when configuring PyMC/sklearn models and scale-aware custom priors.