Skip to content

Code and Dataset for the Vickrey Sensitivity project. The goal of this project is to identify whether the Marginal Value metric is sensitive to robot-bidder modeling.

Notifications You must be signed in to change notification settings

neurobionics/vickrey-sensitivity

Repository files navigation

vickrey-sensitivity

Overview

This repository contains:

  • Experiment Scripts (Python): For running human participant experiments and collecting data.
  • Data Analysis (MATLAB): For analyzing the collected data.
  • Collected Data: Raw data files from N=11 participants.

Experiment Scripts

  • MAIN.py: Main file to run during a human participant experiment. The program generates randomized trials, robobidder models, a randomized duration, and saves collected data to a .csv file in the same directory. It displays a plot of this collected information upon auction completion (i.e. when randomized time endpoint is fulfilled).
  • robo_bidder.py: Contains the class robo_bidder which specifies each robobidder's bidding behavior
  • robo_model.py: Contains the class robo_model which specifies a set of robo-bidders parametrized by the # of desired robobidders and their growth rates. These models are generated for the sensitivity analysis.

The .csv file output from MAIN.py records the following columns:

  • Time(mins): Time since the start of the Vickrey Auction. Each iterative auction is 2 mins long.
  • Subject Bid Amount: Dollar amount the human participant reports to the researcher to input during the experiment.
  • Won?: Win status of the participant (TRUE if won, FALSE otherwise).
  • Winning Payout Amnt: Dollar amount corresponding to the second lowest bid amongst auction participants (including robo-bidders).
  • Total Subject Winnings: Ongoing, tallied sum of the human participant’s winnings throughout the experiment.

Reproducibility & Setup

1. Quick Setup (Recommended)

Run the provided setup script to automatically configure the Python environment and view MATLAB setup instructions:

bash setup.sh

This will:

  • Create a Python virtual environment (venv) if it doesn't exist
  • Install Python dependencies from requirements.txt
  • Print MATLAB setup instructions

2. Manual Python Environment Setup

If you prefer to set up manually:

Using venv (standard Python)

python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt

2. MATLAB Environment

  • MATLAB Version: R2024b
  • Required Toolboxes: Statistics and Machine Learning Toolbox
  • All custom MATLAB scripts and functions are included in the MATLAB analysis folder.

3. Data

  • Data files are in the Collected Data folder.

How to Run

Python Experiment

  1. Set up the Python environment as above.
  2. Run the experiment:
    python Experiment Scripts/MAIN.py
  3. Data will be saved as .csv in the same directory.

MATLAB Analysis

  1. Open MATLAB.
  2. cd into the Data analysis folder.
  3. Run the MAIN.mlx script for data analysis.

Versioning

  • Python: 3.9
  • MATLAB: R2024b
  • OS: macOS, Windows

Citation

If you use this code or data, please cite this repository and the associated Zenodo DOI.

About

Code and Dataset for the Vickrey Sensitivity project. The goal of this project is to identify whether the Marginal Value metric is sensitive to robot-bidder modeling.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published