{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "

Doing statistical game theory: (Towards) the missing manual

\n", "Theodore L. Turocy
\n", "University of East Anglia\n", "

\n", "

EC'16 workshop\n", "24 July 2016

\n", "
\n", "\n", "\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This is part of a larger project on the practical application of quantal response equilibrium and related concepts of statistical game theory.\n", "\n", "It is inspired in part by several recent papers by Camerer, Palfrey, and coauthors, developing various generalizations of quantal response equilibrium (including heterogeneous QRE) and links between QRE and cognitive hierarchy/level-k models.\n", "\n", "These are exciting developments (in the view of this researcher) because this appears to offer a coherent and flexible statistical framework to use as a foundation for behavioural modeling in games, and a data-driven approach to behavioural game theory.\n", "\n", "What we will do in this talk is to use the facilities in Gambit to explore how to fit QRE to small games. We'll focus on small games so that all computations can be done live in this Jupyter notebook - making this talk equally a useful practical tutorial, and automatically documenting all the computations done in support of the development of the lines of thought herein." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Advertisement**: Thanks to some friends of Gambit at Cardiff (and support from a Google Summer of Code internship), Gambit is being integrated into the SAGE package for computational mathematics in Python (http://www.sagemath.org). Also as part of this, it will soon be possible to interact with Gambit (alongside all of the mathetmatical tools that SAGE bundles) using notebooks like this one, on a server via your web browser." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We begin by looking at some of the examples from the original Quantal Response Equilibrium paper:\n", "\n", "McKelvey, R. D. and Palfrey, T. R. (1995) Quantal response equilibrium for normal form games. *Games and Economic Behavior* **10**: 6-38.\n", "\n", "We will take the examples slightly out of order, and look first at the non-constant sum game of \"asymmetric\" matching pennies they consider from\n", "\n", "Ochs, J. (1995) Games with unique mixed strategy equilibria: An experimental study. *Games and Economic Behavior* **10**: 174-189." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [], "source": [ "import math\n", "import numpy\n", "import scipy.optimize\n", "import pandas\n", "import matplotlib.pyplot as plt\n", "%matplotlib inline\n", "import gambit" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "'16.0.0'" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "gambit.__version__" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Set up the payoff matrices. McKPal95 multiply the basic payoff matrix by a factor to translate to 1982 US cents. In addition, the exchange rates for the two players were different in the original experiment, accounting for the different multiplicative factors." ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(array([[Decimal('1.1140'), Decimal('0.0000')],\n", " [Decimal('0.0000'), Decimal('0.2785')]], dtype=object),\n", " array([[Decimal('0.0000'), Decimal('1.1141')],\n", " [Decimal('1.1141'), Decimal('0.0000')]], dtype=object))" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "m1 = numpy.array([[ 4, 0 ], [ 0, 1 ]], dtype=gambit.Decimal) * gambit.Decimal(\"0.2785\")\n", "m2 = numpy.array([[ 0, 1 ], [ 1, 0 ]], dtype=gambit.Decimal) * gambit.Decimal(\"1.1141\") \n", "m1, m2" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Create a Gambit game object from these payoff matrices (`from_arrays` is new in Gambit 15.1.0)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "NFG 1 R \"\" { \"1\" \"2\" }\n", "\n", "{ { \"1\" \"2\" }\n", "{ \"1\" \"2\" }\n", "}\n", "\"\"\n", "\n", "{\n", "{ \"\" 1.1140, 0.0000 }\n", "{ \"\" 0.0000, 1.1141 }\n", "{ \"\" 0.0000, 1.1141 }\n", "{ \"\" 0.2785, 0.0000 }\n", "}\n", "1 2 3 4 " ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "g = gambit.Game.from_arrays(m1, m2)\n", "g" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "First, we can verify there is a unique mixed strategy equilibrium. Player 1 should randomize equally between his strategies; player 2 should play his second strategy with probability 4/5. It is the \"own-payoff\" effect to Player 1 which made QRE of interest in this game." ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[[[Fraction(1, 2), Fraction(1, 2)], [Fraction(1, 5), Fraction(4, 5)]]]" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "gambit.nash.enummixed_solve(g)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now, we set out to replicate the QRE estimation using the fixed-point method from the original paper.\n", "We set up a mixed strategy profile, which we populate with frequencies of each strategy.\n", "Data are reported in blocks of 16 plays, with $n=128$ pairs of players." ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/latex": [ "$\\left[[1079.296, 968.704],[749.568, 1298.432]\\right]$" ], "text/plain": [ "[[1079.296, 968.704], [749.568, 1298.432]]" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data1 = g.mixed_strategy_profile()\n", "data1[g.players[0]] = [ 16*128*0.527, 16*128*(1.0-0.527) ]\n", "data1[g.players[1]] = [ 16*128*0.366, 16*128*(1.0-0.366) ]\n", "data1" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "With the data in hand, we ask Gambit to find the QRE which best fits the data, using maximum likelihood." ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "LogitQREMixedStrategyProfile(lam=1.845871,profile=[[0.6156446318590159, 0.38435536814098414], [0.383281508340127, 0.616718491659873]])" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "qre1 = gambit.nash.logit_estimate(data1)\n", "qre1" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We successfully replicate the same value of lambda and the same fitted mixed strategy profile as reported by McKPal95.\n", "Note that the method Gambit uses to find the maximizer is quite accurate; you can trust these to about 8 decimal\n", "places.\n", "\n", "\n", "What Gambit does is to use standard path-following methods to traverse the \"principal branch\" of the QRE correspondence, and look for extreme points of the log-likelihood function restricted to that branch. This is the \"right way\" to do it. Some people try to use fixed-point iteration or other methods at various values of lambda. These are wrong; do not listen to them!\n", "\n", "\n", "What does not quite match up is the log-likelihood; McKPal95 claim a logL of -1747, whereas ours is much larger in magnitude. I have not been able to reconcile the difference in an obvious way; it is much too large simply to be rounding errors." ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "-2796.2259707889207" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "numpy.dot(list(data1), numpy.log(list(qre1)))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The unexplained variance in log-likelihood notwithstanding, we can move on to periods 17-32 and again replicate\n", "McKPal95's fits:" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "LogitQREMixedStrategyProfile(lam=1.567977,profile=[[0.6100787526260509, 0.389921247373949], [0.40502047327790697, 0.5949795267220931]])" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data2 = g.mixed_strategy_profile()\n", "data2[g.players[0]] = [ 16*128*0.573, 16*128*(1.0-0.573) ]\n", "data2[g.players[1]] = [ 16*128*0.393, 16*128*(1.0-0.393) ]\n", "qre2 = gambit.nash.logit_estimate(data2)\n", "qre2" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "And for periods 33-48:" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "LogitQREMixedStrategyProfile(lam=3.306454,profile=[[0.6143028691464325, 0.38569713085356744], [0.30108853856548057, 0.6989114614345194]])" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data3 = g.mixed_strategy_profile()\n", "data3[g.players[0]] = [ 16*128*0.610, 16*128*(1.0-0.610) ]\n", "data3[g.players[1]] = [ 16*128*0.302, 16*128*(1.0-0.302) ]\n", "qre3 = gambit.nash.logit_estimate(data3)\n", "qre3" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "And finally for periods 49-52 (the caption in the table for McKPal95 says 48-52). Our lambda of $\\approx 10^7$ translates\n", "essentially to infinity, i.e., Nash equilibrium." ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "LogitQREMixedStrategyProfile(lam=1040316.548725,profile=[[0.5000005980476384, 0.4999994019523616], [0.20000000000165133, 0.7999999999983487]])" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data4 = g.mixed_strategy_profile()\n", "data4[g.players[0]] = [ 4*128*0.455, 4*128*(1.0-0.455) ]\n", "data4[g.players[1]] = [ 4*128*0.285, 4*128*(1.0-0.285) ]\n", "qre4 = gambit.nash.logit_estimate(data4)\n", "qre4" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As an estimation method, this works a treat if the game is small. However, under the hood, `logit_estimate` is solving a fixed-point problem, and fixed-point problems are computationally difficult problems, meaning the running times does not scale well as you make the size of the problem (i.e., the game) larger. A practical feasible limit for estimating QRE is with games of perhaps 100 strategies in total - less if one also wants to recover estimates of e.g. risk-aversion parameters (of which more anon).\n", "\n", "Recently, in several papers, Camerer, Palfrey, and coauthors have been using a method first proposed by Bajari and Hortacsu in 2005. The idea is that, given the actual observed data, under the assumption that the model (QRE) is correct, then one can compute a consistent estimator of the expected payoffs for each strategy from the existing data, and from there compute a consistent estimator of lambda.\n", "\n", "This is an interesting development because it finesses the problem of having to compute fixed points, and therefore one can compute estimates of lambda (and more interestingly of other parameters) in a computationally efficient way.\n", "\n", "To fix ideas, return to `data1`. We can ask Gambit to compute the expected payoffs to players facing that empirical distribution of play:" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/latex": [ "$\\left[[0.527, 0.473],[0.366, 0.634]\\right]$" ], "text/plain": [ "[[0.527, 0.473], [0.366, 0.634]]" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p1 = data1.copy()\n", "p1.normalize()\n", "p1" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[[0.40772400000000003, 0.17656900000000003], [0.5269693, 0.5871307000000001]]" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p1.strategy_values()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The idea of Bajari-Hortacsu is to take these expected payoffs and for any given $\\lambda$, say the $\\lambda=1.84$ estimated above, compute the logit response probabilities, say for the first player:" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([ 0.60475682, 0.39524318])" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "resp = 1.84*numpy.array(p1.strategy_values(g.players[0]))\n", "resp = numpy.exp(resp)\n", "resp /= resp.sum()\n", "resp" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To estimate $\\lambda$, then, it is a matter of picking the $\\lambda$ that maximises the likelihood of the actual choice probabilities against those computed via the logit rule. If we assume for the moment the same $\\lambda$ for\n", "both players, we see this is going to be very efficient: the choice probabilities are monotonic in $\\lambda$, and\n", "we have a one-dimensional optimisation problem, so it is going to be very fast to find the likelihood-maximising\n", "choice -- even if we had hundreds or thousands of strategies!\n", "\n", "It takes just a few lines of code to set up the optimisation:" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": false }, "outputs": [], "source": [ "import scipy.optimize\n", "\n", "def estimate_payoff_method(freqs):\n", " def log_like(freqs, values, lam):\n", " logit_probs = [ [ math.exp(lam*v) for v in player ] for player in values ]\n", " sums = [ sum(v) for v in logit_probs ]\n", " logit_probs = [ [ v/s for v in vv ]\n", " for (vv, s) in zip(logit_probs, sums) ]\n", " logit_probs = [ v for player in logit_probs for v in player ]\n", " logit_probs = [ max(v, 1.0e-293) for v in logit_probs ]\n", " return sum([ f*math.log(p) for (f, p) in zip(list(freqs), logit_probs) ])\n", " p = freqs.copy()\n", " p.normalize()\n", " v = p.strategy_values()\n", " res = scipy.optimize.minimize(lambda x: -log_like(freqs, v, x[0]), (0.1,),\n", " bounds=((0.0, None),))\n", " return res.x[0]\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now, we can estimate the QRE using the same data as above, for each of the four groups of periods, and compare the resulting estimates of $\\lambda$. In each pair, the first value is the $\\lambda$ as estimated by the payoff method, the second as estimated by the (traditional) fixed-point path-following method." ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(1.0070478027919727, 1.8458712502750365)" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "estimate_payoff_method(data1), qre1.lam" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(1.5178672707029293, 1.567976743237242)" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "estimate_payoff_method(data2), qre2.lam" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(3.3446122798176647, 3.30645430631916)" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "estimate_payoff_method(data3), qre3.lam" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(0.0, 1040316.5487249079)" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "estimate_payoff_method(data4), qre4.lam" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We get different estimates $\\hat{\\lambda}$ for the different methods. This is of course completely OK; they are different estimation procedures so we don't expect to get the same answer. But there are some patterns: in three of the four cases, the payoff method estimates a smaller $\\hat{\\lambda}$ than the fixed-point method, that is, it estimates less precise behaviour. In the last case, where the fixed-point method claims play is close to Nash, the payoff method claims it is closest to uniform randomisation.\n", "\n", "We can pursue this idea further by some simulation exercises. Suppose we knew that players were actually playing a QRE with a given value of $\\lambda$, which we set to $1.5$ for our purposes here, as being roughly in the range observed over most of the Ochs experiment. Using Gambit we can compute the corresponding mixed strategy profile." ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "LogitQREMixedStrategyProfile(lam=1.500000,profile=[[0.608210533987243, 0.391789466012757], [0.4105548658372969, 0.5894451341627032]])" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "qre = gambit.nash.logit_atlambda(g, 1.5)\n", "qre" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We knock together a little function which lets us simulate two players playing the game $N$ times according to the QRE mixed strategy profile at $\\lambda$, and then, for each simulated play, we use both methods to estimate $\\hat\\lambda$ based on the realised play. This is repeated `trials` times, and then the results are summarised for us in a handy dataset (a `pandas.DataFrame`)." ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def simulate_fits(game, lam, N, trials=100):\n", " qre = gambit.nash.logit_atlambda(game, lam).profile\n", " samples = [ ]\n", " for sample in xrange(trials):\n", " f = game.mixed_strategy_profile()\n", " for player in game.players:\n", " f[player] = numpy.random.multinomial(N, qre[player], size=1)[0]\n", " samples.append(f)\n", " labels = [ \"p%ds%d\" % (i, j)\n", " for (i, player) in enumerate(game.players)\n", " for (j, strategy) in enumerate(player.strategies) ]\n", " return pandas.DataFrame([ list(freqs) +\n", " [ gambit.nash.logit_estimate(freqs).lam,\n", " estimate_payoff_method(freqs),\n", " lam ]\n", " for freqs in samples ],\n", " columns=labels + [ 'fixedpoint', 'payoff', 'actual' ])\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's have a look at 100 simulations of 50 plays each with $\\lambda=1.5.$" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
p0s0p0s1p1s0p1s1fixedpointpayoffactual
0282215353.7551253.8535841.5
1311922281.2672901.2410871.5
2341622281.4736191.2589021.5
3282221291.1347531.0487831.5
4311920301.6577141.6413441.5
5292119311.7887331.7763691.5
6272320301.2561260.9430091.5
7302017332.5042502.5783771.5
8311918322.1753132.1707041.5
9282219311.7125251.5570341.5
10272322280.7299840.6279191.5
11331723271.2696071.1338441.5
12282222280.9185800.8721261.5
13321823271.1960561.1197061.5
14321822281.3463101.2713531.5
15311921291.4485291.4268561.5
16302019311.8491181.8729131.5
17252521290.0000000.0000001.5
18331722281.4143081.2743101.5
19361423271.4426531.0903331.5
20361424261.3257510.9908911.5
21262422280.4529200.3296091.5
22331723271.2696071.1338441.5
23311923271.1112481.0804771.5
24262418321.9692110.8309281.5
25341621291.6304211.4001391.5
26311922281.2672901.2410871.5
27381222281.6517981.1192941.5
28321827230.7732340.6741951.5
29302023271.0119301.0077271.5
........................
70311921291.4485291.4268561.5
71341619312.0041791.7217701.5
72272326240.3051400.3112051.5
73292119311.7887331.7763691.5
74341620301.8065021.5543441.5
75331719311.9742431.7948191.5
76292120301.5048631.4844701.5
77262422280.4529200.3296091.5
78311919311.8983631.8881691.5
79331719311.9742431.7948191.5
80381223271.5305321.0299231.5
81311920301.6577141.6413441.5
82282226240.4413270.4460561.5
83331726240.9341130.7952041.5
84282227230.3833770.3820681.5
85321817332.4878902.3670871.5
86292118322.1218592.1357671.5
87272322280.7299840.6279191.5
88302024260.8765990.8685811.5
89302018322.1513462.1971731.5
90302026240.6725150.6501231.5
91351525251.1637830.9071921.5
92272321290.9612870.7649321.5
93272324260.4445150.4355541.5
94292113375.1722185.4416561.5
95262419311.4703230.6407701.5
96361420301.8760471.4351281.5
97321824261.0656470.9861061.5
98242621290.0000000.0000001.5
99302017332.5042502.5783771.5
\n", "

100 rows × 7 columns

\n", "
" ], "text/plain": [ " p0s0 p0s1 p1s0 p1s1 fixedpoint payoff actual\n", "0 28 22 15 35 3.755125 3.853584 1.5\n", "1 31 19 22 28 1.267290 1.241087 1.5\n", "2 34 16 22 28 1.473619 1.258902 1.5\n", "3 28 22 21 29 1.134753 1.048783 1.5\n", "4 31 19 20 30 1.657714 1.641344 1.5\n", "5 29 21 19 31 1.788733 1.776369 1.5\n", "6 27 23 20 30 1.256126 0.943009 1.5\n", "7 30 20 17 33 2.504250 2.578377 1.5\n", "8 31 19 18 32 2.175313 2.170704 1.5\n", "9 28 22 19 31 1.712525 1.557034 1.5\n", "10 27 23 22 28 0.729984 0.627919 1.5\n", "11 33 17 23 27 1.269607 1.133844 1.5\n", "12 28 22 22 28 0.918580 0.872126 1.5\n", "13 32 18 23 27 1.196056 1.119706 1.5\n", "14 32 18 22 28 1.346310 1.271353 1.5\n", "15 31 19 21 29 1.448529 1.426856 1.5\n", "16 30 20 19 31 1.849118 1.872913 1.5\n", "17 25 25 21 29 0.000000 0.000000 1.5\n", "18 33 17 22 28 1.414308 1.274310 1.5\n", "19 36 14 23 27 1.442653 1.090333 1.5\n", "20 36 14 24 26 1.325751 0.990891 1.5\n", "21 26 24 22 28 0.452920 0.329609 1.5\n", "22 33 17 23 27 1.269607 1.133844 1.5\n", "23 31 19 23 27 1.111248 1.080477 1.5\n", "24 26 24 18 32 1.969211 0.830928 1.5\n", "25 34 16 21 29 1.630421 1.400139 1.5\n", "26 31 19 22 28 1.267290 1.241087 1.5\n", "27 38 12 22 28 1.651798 1.119294 1.5\n", "28 32 18 27 23 0.773234 0.674195 1.5\n", "29 30 20 23 27 1.011930 1.007727 1.5\n", ".. ... ... ... ... ... ... ...\n", "70 31 19 21 29 1.448529 1.426856 1.5\n", "71 34 16 19 31 2.004179 1.721770 1.5\n", "72 27 23 26 24 0.305140 0.311205 1.5\n", "73 29 21 19 31 1.788733 1.776369 1.5\n", "74 34 16 20 30 1.806502 1.554344 1.5\n", "75 33 17 19 31 1.974243 1.794819 1.5\n", "76 29 21 20 30 1.504863 1.484470 1.5\n", "77 26 24 22 28 0.452920 0.329609 1.5\n", "78 31 19 19 31 1.898363 1.888169 1.5\n", "79 33 17 19 31 1.974243 1.794819 1.5\n", "80 38 12 23 27 1.530532 1.029923 1.5\n", "81 31 19 20 30 1.657714 1.641344 1.5\n", "82 28 22 26 24 0.441327 0.446056 1.5\n", "83 33 17 26 24 0.934113 0.795204 1.5\n", "84 28 22 27 23 0.383377 0.382068 1.5\n", "85 32 18 17 33 2.487890 2.367087 1.5\n", "86 29 21 18 32 2.121859 2.135767 1.5\n", "87 27 23 22 28 0.729984 0.627919 1.5\n", "88 30 20 24 26 0.876599 0.868581 1.5\n", "89 30 20 18 32 2.151346 2.197173 1.5\n", "90 30 20 26 24 0.672515 0.650123 1.5\n", "91 35 15 25 25 1.163783 0.907192 1.5\n", "92 27 23 21 29 0.961287 0.764932 1.5\n", "93 27 23 24 26 0.444515 0.435554 1.5\n", "94 29 21 13 37 5.172218 5.441656 1.5\n", "95 26 24 19 31 1.470323 0.640770 1.5\n", "96 36 14 20 30 1.876047 1.435128 1.5\n", "97 32 18 24 26 1.065647 0.986106 1.5\n", "98 24 26 21 29 0.000000 0.000000 1.5\n", "99 30 20 17 33 2.504250 2.578377 1.5\n", "\n", "[100 rows x 7 columns]" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "simdata = simulate_fits(g, 1.5, 50)\n", "simdata" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In what proportion of these simulated plays does the fixed-point method estimate a higher $\\hat\\lambda$ than the payoff-based method? (This very compact notation that pandas allows us to use will be familiar to users of e.g. R.)" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "0.85999999999999999" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(simdata.fixedpoint>simdata.payoff).astype(int).mean()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can also get summary descriptions of the distributions of $\\hat\\lambda$ for each method individually. This confirms the payoff method does return systematically lower values of $\\hat\\lambda$ - and that they are lower than the true value, which we know by construction." ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "count 100.000000\n", "mean 1.495753\n", "std 0.778820\n", "min 0.000000\n", "25% 1.052218\n", "50% 1.459426\n", "75% 1.881626\n", "max 5.172218\n", "Name: fixedpoint, dtype: float64" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "simdata.fixedpoint.describe()" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "count 100.000000\n", "mean 1.352604\n", "std 0.784515\n", "min 0.000000\n", "25% 0.871240\n", "50% 1.257109\n", "75% 1.641344\n", "max 5.441656\n", "Name: payoff, dtype: float64" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "simdata.payoff.describe()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can visualise the results by doing a scatterplot comparing the estimated $\\hat\\lambda$ by the two methods for each simulated play. Each point in this scatterplot corresponds to one simulated outcome." ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def method_scatterplot(df, lam):\n", " plt.plot([ row['payoff']/(1.0+row['payoff']) for (index, row) in df.iterrows() ],\n", " [ row['fixedpoint']/(1.0+row['fixedpoint']) for (index, row) in df.iterrows() ],\n", " 'kp')\n", " plt.plot([ 0, 1 ], [ 0, 1 ], 'k--')\n", " plt.plot([ lam/(1.0+lam) ], [ lam/(1.0+lam) ], 'm*', ms=20)\n", " plt.xticks([ 0.0, 0.25, 0.50, 0.75, 1.00 ],\n", " [ '0.00', '0.50', '1.00', '2.00', 'Nash' ])\n", " plt.xlabel('Estimated lambda via payoff method')\n", " plt.yticks([ 0.0, 0.25, 0.50, 0.75, 1.00 ],\n", " [ '0.00', '0.50', '1.00', '2.00', 'Nash' ])\n", " plt.ylabel('Estimated lambda via fixed point method')\n", " plt.show()" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "method_scatterplot(simdata, 1.5)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In the case of a 2x2 game, we can do something else to visualise what is going on. Because the space of mixed strategy profiles is just equivalent to a square, we can project the QRE correspondence down onto a square. This next function sets that up." ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def correspondence_plot(game, df=None):\n", " corresp = gambit.nash.logit_principal_branch(game)\n", " plt.plot([ x.profile[game.players[0]][0] for x in corresp ],\n", " [ x.profile[game.players[1]][0] for x in corresp ], 'k--')\n", " plt.xlabel(\"Pr(Player 0 strategy 0)\")\n", " plt.ylabel(\"Pr(Player 1 strategy 0)\")\n", " \n", " for lam in numpy.arange(1.0, 10.1, 1.0):\n", " qrelam = gambit.nash.logit_atlambda(game, lam).profile\n", " plt.plot([ qrelam[game.players[0]][0] ],\n", " [ qrelam[game.players[1]][0] ], 'kd')\n", " \n", " if df is None: return\n", "\n", " for (index, sample) in df.iterrows():\n", " lam = sample['payoff']\n", " fitted = gambit.nash.logit_atlambda(game, lam).profile\n", " plt.plot([ sample['p0s0']/(sample['p0s0']+sample['p0s1']),\n", " fitted[game.players[0]][0] ],\n", " [ sample['p1s0']/(sample['p1s0']+sample['p1s1']),\n", " fitted[game.players[1]][0] ], 'r')\n", " \n", " lam = sample['fixedpoint']\n", " fitted = gambit.nash.logit_atlambda(game, lam).profile\n", " plt.plot([ sample['p0s0']/(sample['p0s0']+sample['p0s1']),\n", " fitted[game.players[0]][0] ],\n", " [ sample['p1s0']/(sample['p1s0']+sample['p1s1']),\n", " fitted[game.players[1]][0] ], 'b')" ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n/1kta0KM2LYJAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "correspondence_plot(g)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now, we can add to this correspondence plot information about our simulated data and fits. For each simulated observation, we plot the simulated strategy frequencies. We then plot from that point a red line, which links the observed frequencies to the fitted point on the QRE correspondence using the payoff method, and a blue line, which links the observed frequencies to the fitted point using the fixed-point method. It becomes clear that the fixed-point method (blue) lines generally link up to points farther along the correspondence, i.e. ones with higher $\\lambda$." ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "correspondence_plot(g, simdata)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Other games from McKPal95" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "It is reasonable to ask whether this biased performance is due to some special characteristic of the games studied by Ochs. We can look to some other games from McKelvey-Palfrey (1995) to investigate this further.\n", "\n", "The second case study is a constant-sum game with four strategies for each player reported in\n", "\n", "O'Neill, B. (1987) Nonmetric test of the minimax theory of two-person zerosum games. *Proceedings of the National Academy of Sciences of the USA*, **84**:2106-2109." ] }, { "cell_type": "code", "execution_count": 31, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([[5, -5, -5, -5],\n", " [-5, -5, 5, 5],\n", " [-5, 5, -5, 5],\n", " [-5, 5, 5, -5]], dtype=object)" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "matrix = numpy.array([ [ 5, -5, -5, -5 ],\n", " [ -5, -5, 5, 5 ],\n", " [ -5, 5, -5, 5 ],\n", " [ -5, 5, 5, -5 ] ], dtype=gambit.Rational)\n", "matrix" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We again follow McKPal95 and translate these payoffs into 1982 cents for comparability." ] }, { "cell_type": "code", "execution_count": 32, "metadata": { "collapsed": true }, "outputs": [], "source": [ "matrix *= gambit.Rational(913, 1000)\n", "game = gambit.Game.from_arrays(matrix, -matrix)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We simulate our data around the $\\hat\\lambda\\approx 1.3$ reported by McKPal95." ] }, { "cell_type": "code", "execution_count": 33, "metadata": { "collapsed": true }, "outputs": [], "source": [ "simdata = simulate_fits(g, 1.3, 50)" ] }, { "cell_type": "code", "execution_count": 34, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "0.79000000000000004" ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(simdata.fixedpoint>simdata.payoff).astype(int).mean()" ] }, { "cell_type": "code", "execution_count": 35, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "count 100.000000\n", "mean 1.330206\n", "std 0.863340\n", "min 0.000000\n", "25% 0.720926\n", "50% 1.256126\n", "75% 1.844871\n", "max 3.610687\n", "Name: fixedpoint, dtype: float64" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "simdata.fixedpoint.describe()" ] }, { "cell_type": "code", "execution_count": 36, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "count 100.000000\n", "mean 1.137151\n", "std 0.768048\n", "min 0.000000\n", "25% 0.602237\n", "50% 1.080477\n", "75% 1.599950\n", "max 3.032108\n", "Name: payoff, dtype: float64" ] }, "execution_count": 36, "metadata": {}, "output_type": "execute_result" } ], "source": [ "simdata.payoff.describe()" ] }, { "cell_type": "code", "execution_count": 37, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "method_scatterplot(simdata, 1.5)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Another game considered by McKPal95 is a 5x5 constant-sum game from\n", "\n", "Rapoport, A. and Boebel, R. (1992) Mixed strategies in strictly competitive games: A further test of the minimax hypothesis. *Games and Economic Behavior* **4**: 261-283.\n", "\n", "We put the estimation approaches through their paces, around the $\\hat\\lambda \\approx 0.25$ reported by McKPal95." ] }, { "cell_type": "code", "execution_count": 38, "metadata": { "collapsed": true }, "outputs": [], "source": [ "matrix = numpy.array([ [ 10, -6, -6, -6, -6 ],\n", " [ -6, -6, 10, 10, 10 ],\n", " [ -6, 10, -6, -6, 10 ],\n", " [ -6, 10, -6, 10, -6 ],\n", " [ -6, 10, 10, -6, -6 ] ], dtype=gambit.Rational)\n", "matrix *= gambit.Rational(713, 1000)\n", "game = gambit.Game.from_arrays(matrix, -matrix)\n", "simdata = simulate_fits(g, 0.25, 50)" ] }, { "cell_type": "code", "execution_count": 39, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "count 100.000000\n", "mean 0.467369\n", "std 0.568382\n", "min 0.000000\n", "25% 0.000000\n", "50% 0.301702\n", "75% 0.757745\n", "max 2.084625\n", "Name: fixedpoint, dtype: float64" ] }, "execution_count": 39, "metadata": {}, "output_type": "execute_result" } ], "source": [ "simdata.fixedpoint.describe()" ] }, { "cell_type": "code", "execution_count": 40, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "count 100.000000\n", "mean 0.399141\n", "std 0.493687\n", "min 0.000000\n", "25% 0.000000\n", "50% 0.264003\n", "75% 0.643454\n", "max 1.925047\n", "Name: payoff, dtype: float64" ] }, "execution_count": 40, "metadata": {}, "output_type": "execute_result" } ], "source": [ "simdata.payoff.describe()" ] }, { "cell_type": "code", "execution_count": 41, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nByuRGXzNjHGEAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "method_scatterplot(simdata, 0.25)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Estimating other parameters" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "While it appears, from these (still preliminary) results, that the payoff method for estimating $\\lambda$ is biased towards estimates which are more \"noisy\" than the true behaviour, this may not in practice be much of a concern.\n", "\n", "In the view of this researcher, the real strength of the logit model is in using it to estimate other parameters of interest. The logit model has some attractive foundations in terms of information theory which make it ideal for this task (in addition to being computationally quite tractable).\n", "\n", "It is precisely in these applications where the payoff-based estimation approach is most attractive. The fixed-point method becomes progressively more computationally infeasible as the game gets larger, or as the number of parameters to be considered grows. The payoff approach on the other hand scales much more attractively. What we really want to know, then, is not so much whether $\\hat\\lambda$ is biased, but whether estimates of *other* parameters of interest are systematically biased as well.\n", "\n", "We pick this up by looking at some examples from\n", "\n", "Goeree, Holt, and Palfrey (2002), Risk averse behavior in generalized matching pennies games." ] }, { "cell_type": "code", "execution_count": 42, "metadata": { "collapsed": true }, "outputs": [], "source": [ "matrix1 = numpy.array([ [ 200, 160 ], [ 370, 10 ]], dtype=gambit.Decimal)\n", "matrix2 = numpy.array([ [ 160, 10 ], [ 200, 370 ]], dtype=gambit.Decimal)\n", "game = gambit.Game.from_arrays(matrix1, matrix2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The idea in GHP2002 is to estimate simultaneously a QRE with a common constant-relative risk aversion parameter $r$. This utility function transforms the basic payoff matrix into (scaled) utilities given CRRA paramater $r$." ] }, { "cell_type": "code", "execution_count": 43, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def transform_matrix(m, r):\n", " r = gambit.Decimal(str(r))\n", " return (numpy.power(m, 1-r) - numpy.power(10, 1-r)) / \\\n", " (numpy.power(370, 1-r) - numpy.power(10, 1-r))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The next few functions set up the optimisation. For the purposes of the talk, we simply look over a discrete grid of possible risk aversion parameters (to keep the running time short and reliable for a live demo!)" ] }, { "cell_type": "code", "execution_count": 44, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def estimate_risk_fixedpoint_method(matrix1, matrix2, freqs):\n", " def log_like(r):\n", " tm1 = transform_matrix(matrix1, r)\n", " tm2 = transform_matrix(matrix2, r)\n", " g = gambit.Game.from_arrays(tm1, tm2)\n", " profile = g.mixed_strategy_profile()\n", " for i in xrange(len(profile)):\n", " profile[i] = freqs[i]\n", " qre = gambit.nash.logit_estimate(profile)\n", " logL = numpy.dot(numpy.array(list(freqs)), numpy.log(list(qre.profile)))\n", " return logL\n", " results = [ (x0, log_like(x0))\n", " for x0 in numpy.linspace(0.01, 0.99, 100) ]\n", " results.sort(key=lambda r: -r[1])\n", " return results[0][0]" ] }, { "cell_type": "code", "execution_count": 45, "metadata": { "collapsed": false }, "outputs": [], "source": [ "def estimate_payoff_method(freqs):\n", " def log_like(freqs, values, lam):\n", " logit_probs = [ [ math.exp(lam*v) for v in player ] for player in values ]\n", " sums = [ sum(v) for v in logit_probs ]\n", " logit_probs = [ [ v/s for v in vv ]\n", " for (vv, s) in zip(logit_probs, sums) ]\n", " logit_probs = [ v for player in logit_probs for v in player ]\n", " logit_probs = [ max(v, 1.0e-293) for v in logit_probs ]\n", " return sum([ f*math.log(p) for (f, p) in zip(list(freqs), logit_probs) ])\n", " p = freqs.copy()\n", " p.normalize()\n", " v = p.strategy_values()\n", " res = scipy.optimize.minimize(lambda x: -log_like(freqs, v, x[0]), (0.1,),\n", " bounds=((0.0, 10.0),))\n", " return log_like(freqs, v, res.x[0])\n", "\n", "def estimate_risk_payoff_method(matrix1, matrix2, freqs):\n", " def log_like(r):\n", " tm1 = transform_matrix(matrix1, r)\n", " tm2 = transform_matrix(matrix2, r)\n", " g = gambit.Game.from_arrays(tm1, tm2)\n", " profile = g.mixed_strategy_profile()\n", " for i in xrange(len(profile)):\n", " profile[i] = freqs[i]\n", " logL = estimate_payoff_method(profile)\n", " return logL\n", " results = [ (x0, log_like(x0))\n", " for x0 in numpy.linspace(0.01, 0.99, 100) ]\n", " results.sort(key=lambda r: -r[1])\n", " return results[0][0]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This is a variation on the simulator driver, where we will focus on collecting statistics on the risk aversion parameters estimated." ] }, { "cell_type": "code", "execution_count": 46, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def simulate_fits(game, matrix1, matrix2, r, lam, N, trials=100):\n", " qre = gambit.nash.logit_atlambda(game, lam).profile\n", " samples = [ ]\n", " for sample in xrange(trials):\n", " f = game.mixed_strategy_profile()\n", " for player in game.players:\n", " f[player] = numpy.random.multinomial(N, qre[player], size=1)[0]\n", " samples.append(f)\n", " labels = [ \"p%ds%d\" % (i, j)\n", " for (i, player) in enumerate(game.players)\n", " for (j, strategy) in enumerate(player.strategies) ]\n", " return pandas.DataFrame([ list(freqs) +\n", " [ estimate_risk_fixedpoint_method(matrix1, matrix2, freqs),\n", " estimate_risk_payoff_method(matrix1, matrix2, freqs),\n", " r ]\n", " for freqs in samples ],\n", " columns=labels + [ 'r_fixedpoint', 'r_payoff', 'actual' ])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "GHP02 report a risk aversion parameter estimate of $r=0.44$ for this game, so we adopt this as the true value. Likewise, they report a logit parameter estimate of $\\frac{1}{\\lambda}=0.150$ which we use as the parameter for the data generating process in the simulation." ] }, { "cell_type": "code", "execution_count": 47, "metadata": { "collapsed": true }, "outputs": [], "source": [ "game = gambit.Game.from_arrays(transform_matrix(matrix1, gambit.Decimal(\"0.44\")),\n", " transform_matrix(matrix2, gambit.Decimal(\"0.44\")))" ] }, { "cell_type": "code", "execution_count": 48, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
p0s0p0s1p1s0p1s1r_fixedpointr_payoffactual
0406067330.4851520.5049490.44
1495170300.6138380.6138380.44
2356569310.5643430.5742420.44
3564468320.9108080.9108080.44
4485262380.3762630.3762630.44
5514964360.5049490.5049490.44
6475367330.4950510.4950510.44
7564468320.9108080.9108080.44
8524870300.7029290.7029290.44
9336769310.5841410.5940400.44
10505067330.5544440.5544440.44
11396169310.5247470.5445450.44
12505067330.5544440.5544440.44
13495162380.3960610.3960610.44
14544664360.6633330.6633330.44
15455567330.4851520.4851520.44
16514962380.4455560.4455560.44
17425871290.5643430.5742420.44
18465469310.5346460.5346460.44
19455562380.3663640.3663640.44
20485267330.5148480.5148480.44
21485266340.4851520.4851520.44
22534771290.7722220.7722220.44
23485274260.7029290.7029290.44
24415960400.3465660.3564650.44
25554565350.7722220.7722220.44
26435768320.4950510.5049490.44
27435762380.3663640.3762630.44
28435762380.3663640.3762630.44
29396165350.4554550.4653540.44
\n", "
" ], "text/plain": [ " p0s0 p0s1 p1s0 p1s1 r_fixedpoint r_payoff actual\n", "0 40 60 67 33 0.485152 0.504949 0.44\n", "1 49 51 70 30 0.613838 0.613838 0.44\n", "2 35 65 69 31 0.564343 0.574242 0.44\n", "3 56 44 68 32 0.910808 0.910808 0.44\n", "4 48 52 62 38 0.376263 0.376263 0.44\n", "5 51 49 64 36 0.504949 0.504949 0.44\n", "6 47 53 67 33 0.495051 0.495051 0.44\n", "7 56 44 68 32 0.910808 0.910808 0.44\n", "8 52 48 70 30 0.702929 0.702929 0.44\n", "9 33 67 69 31 0.584141 0.594040 0.44\n", "10 50 50 67 33 0.554444 0.554444 0.44\n", "11 39 61 69 31 0.524747 0.544545 0.44\n", "12 50 50 67 33 0.554444 0.554444 0.44\n", "13 49 51 62 38 0.396061 0.396061 0.44\n", "14 54 46 64 36 0.663333 0.663333 0.44\n", "15 45 55 67 33 0.485152 0.485152 0.44\n", "16 51 49 62 38 0.445556 0.445556 0.44\n", "17 42 58 71 29 0.564343 0.574242 0.44\n", "18 46 54 69 31 0.534646 0.534646 0.44\n", "19 45 55 62 38 0.366364 0.366364 0.44\n", "20 48 52 67 33 0.514848 0.514848 0.44\n", "21 48 52 66 34 0.485152 0.485152 0.44\n", "22 53 47 71 29 0.772222 0.772222 0.44\n", "23 48 52 74 26 0.702929 0.702929 0.44\n", "24 41 59 60 40 0.346566 0.356465 0.44\n", "25 55 45 65 35 0.772222 0.772222 0.44\n", "26 43 57 68 32 0.495051 0.504949 0.44\n", "27 43 57 62 38 0.366364 0.376263 0.44\n", "28 43 57 62 38 0.366364 0.376263 0.44\n", "29 39 61 65 35 0.455455 0.465354 0.44" ] }, "execution_count": 48, "metadata": {}, "output_type": "execute_result" } ], "source": [ "simdata = simulate_fits(game, matrix1, matrix2, 0.44, 1.0/0.150, 100, trials=30)\n", "simdata" ] }, { "cell_type": "code", "execution_count": 49, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "count 30.000000\n", "mean 0.550485\n", "std 0.151260\n", "min 0.346566\n", "25% 0.462879\n", "50% 0.519798\n", "75% 0.606414\n", "max 0.910808\n", "Name: r_fixedpoint, dtype: float64" ] }, "execution_count": 49, "metadata": {}, "output_type": "execute_result" } ], "source": [ "simdata.r_fixedpoint.describe()" ] }, { "cell_type": "code", "execution_count": 50, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "count 30.000000\n", "mean 0.554444\n", "std 0.149471\n", "min 0.356465\n", "25% 0.470303\n", "50% 0.524747\n", "75% 0.608889\n", "max 0.910808\n", "Name: r_payoff, dtype: float64" ] }, "execution_count": 50, "metadata": {}, "output_type": "execute_result" } ], "source": [ "simdata.r_payoff.describe()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## (Tentative) conclusions\n", "\n", "* The payoff-based approach to estimating QRE is attractive and offers hope of fitting much richer models.\n", "* Preliminary indications are that estimated QRE parameters $\\hat\\lambda$ obtained by using the payoff method are biased (in the direction of understating precision), so these should be used with care in small samples.\n", "* At least in the generalized matching pennies game, the bias in $\\hat\\lambda$ does not seem to result in any bias in risk attitude estimates." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.12" } }, "nbformat": 4, "nbformat_minor": 0 }