Skip to content

[03] Reproduce Results

Shamindra Shrotriya edited this page Feb 15, 2020 · 1 revision

Synthetic Simulation Analysis

You can follow anlaysis/synthetic_data_analysis.ipynb to reproduce our works in synthetic simulation analysis to replicate Figure 1 and Figure 2 in section 6.2 of our paper.

Block [22] generates Figure 1 and block [21] generates Figure 2.

Details

Generating Simulation Data

python/gen_simulation_dat.py provides a package for generating simulation data.

In block [3], we use functions beta_gaussian_process and get_game_matrix_list to generate toy example with N objects and T time points for a sanity check on time-varying Bradley-Terry model. beta_gaussian_process samples ground-true parameter beta_gp from a Gaussian process, and then get_game_matrix_list simulates tn comparisons between each pair of objects

Analysis with Traditional Methods

We compare time-varying Bradley-Terry model to two traditional methods, win rates and separate Bradley-Terry models at different time points.

In block [7], we get win rates for the objects.

In block [8], we use pgd_l2_sq with l_penalty=0 to run separate Bradley-Terry models at different time points.

Fitting simulation data with -penalty.

In block [10], we use cv_utils.loocv to cross-validate on smoothness penalty parameter and get a cross-validated estimate beta_l2sq_cv.

In block [12], we get a plot of cross-validation loss versus .

Fitting simulation data with -penalty.

In block [13] and [14], we fit our model with -penalty by setting a specific value of . One can uncomment the code in the two blocks to run LOOCV.

Analysis on NFL data

Download the nflWAR data

We can download the nflWAR data by simply running

make get_nfl_filt_data

Reproduce Results

You can follow anlaysis/analysis_nfl.ipynb to reproduce our works in synthetic simulation analysis to replicate Table 1 in section 7 of our paper.

Block [12] generates Table 1 and Block [16] gets average differences from ELO to our model for 2009-2015 seasons.