A set of strategies for all players that are all best response.
The idea is that such set of strategies is stable as noboy has a reason to unilaterally change
Epistemic -> people reason their way to equilibrium.
Evolution -> Groups of people mutually learn their way to
equilibrium.
We are going to analyze these ideas in detail
Experimental Econ. test game theory in the lab using several distinct timing and matching protocols.
but each round are randomly and anonymously: matched with someone new.
some counterparts for a number of rounds.
Two players (row and column) meet and pick either C or D.
Thus, the action set is {C,D}
C | D | |
---|---|---|
C | 10,10 | 5,20 |
D | 20,5 | 8,8 |
C | D | |
---|---|---|
C | 10,10 | 5,20 |
D | 20,5 | 8,8 |
Note that they can improve their payoffs by playing (C,C).
The 20 is usually called the temptation payoff, and 10 is the
reward payoff.
Experimental Results:
Modest cooperation (C) in one shot games with low-temptation and high reward.
Modest initial cooperation and decay in strangers.
Think about backward induction (aka BI): NE should be the same.
But, data shows early cooperation and eventual defection.
Why?
Reputation Suppose that there is small prob. that your counterparty cooperates until defection, then it can be rational
to pretend to be this type of player in early rounds and defect later.
$\epsilon$ -equilibrium: When the rewards of C are high, Ss are willing to accept minor deviations from BR, causing them to cooperate. Note that benefits of cooperation get higher, the larger the game is repeated!
C | D | |
---|---|---|
C | 2,2 | 0,3 |
D | 3,0 | 1,1 |
We analyze these games with trigger strategies
Cooperation
The (standard) theory predicts cooperation if the discount factor is big enough.
But, how can we run these type of games?
C doesn't emerge when discount rates are too low for it to emerge in standard theory (Dalbo and Frechette, 2011).
Higher $\delta$, we observe higher C (Dalbo, 2005)
R | L | |
---|---|---|
U | 10,5 | 5,10 |
D | 5,10 | 10,5 |
In this case, we cannot find a Pure Nash Equilibrium. Let's try to figure out if other type of equilibrium exists
let's call $q$ the prob. of playing R and $p$ the probability of playing p.
Therefore, the payoffs for playing U and D are
$$ \pi^U = 10\times q + 5\times (1-q) $$$$ \pi^D = 5\times q + 10\times (1-q) $$Let's substract one from the other,
$$ \Delta \pi = \pi^U-\pi^D = 5q - 5(1-q) = 10q-5 $$Now,
If Player 2 plays $q=1$ or R, then $\Delta \pi>0$ or $\pi^U>\pi^D$. Thus, Player 1 picks $p=1$ or U
If Player 2 plays $q=0$ or L, then $\Delta \pi<0$ or $\pi^U<\pi^D$. Thus, Player 1 picks $p=1$ or D
Note that we can say that Player 1 is indifferent between U and D when $\pi^D=\pi^L$. This is true when $q=0$
Perhaps, a graph it is more useful to represent the different responses:
### Code to draw a Best Response Function
import numpy as np
import matplotlib.pyplot as plt
from __future__ import print_function
from ipywidgets import interact, interactive, fixed, interact_manual
import ipywidgets as widgets
%matplotlib inline
q = np.arange(0,1.01,.01) #The prob. of playing P(right)
def plotbr(a,b,c,d,no):
## a,b,c,d, the payoff matrix
piup = a*(q)+b*(1-q)
pido = c*(q)+d*(1-q)
pile = b*(q)+d*(1-q)
piri = d*q + c*(1-q)
dpi = piup-pido
d2pi = pile-piri
lp = np.copy(dpi)
lq =np.copy(d2pi)
lp[dpi>0]=1
lp[dpi<0]=0
lq[d2pi>0]=1
lq[d2pi<0]=0
if no>0:
plt.title('Figure 1: The best response of Player 1')
plt.plot(q,lp,linewidth=5)
else:
plt.title('Figure 2: The best response of Player 1 and 2')
plt.plot(q,lp,lq,q,linewidth=5)
plt.xlabel('P(right)')
plt.ylabel('P(up)')
plt.ylim(-0.1,1.1)
plt.xlim(-0.1,1.1)
plt.show()
plotbr(10,5,5,10,1)
Figure 1 shows the best choice (aka best response) of players 1. Using similar ideas, we can do the graph for both players
plotbr(10,5,5,10,-1)
From Figure 2, we realize that both best responses intersect at 0.5. Both players are doing the best when they pick $(p,q)=(.5,5)$. In this case, they are mixing between both choices. We will say that this game have a unique mixed NE.
from IPython.core.display import HTML
def css_styling():
import os
styles = open(os.path.expanduser("custom.css"), "r").read()
return HTML(styles)
css_styling()