Experimetrics: 16.4 Estimation of the QRE model

今回はExperimetrics本の16.3.2で求めたpursue-evade gameのQRE(Quantal Response Equilibrium)を使って、架空の被験者データから被験者の合理性を推定します。


推定に際し、次のように仮定します。

  • pursuer役の被験者について、各戦略の選択確率はどの被験者でも同じとする。また各戦略の選択確率は全てのラウンドを通して不変。
  • evaderの役割の被験者についても、各戦略の選択確率はどの被験者でも同じとする。また各戦略の選択確率は全てのラウンドを通して不変。

これにより、合理性を表すエラーパラメーターの推定には、それぞれの役割の各戦略の選択頻度の情報のみが必要となり、対数尤度関数は次のような形になります。
\[
LogL(\mu)=n_{PL}\ln p_{PL}(\mu)+n_{PR}\ln p_{PR}(\mu)+n_{EL}\ln p_{EL}(\mu)+n_{ER}\ln p_{ER}(\mu)
\]


Experimetrics本では、被験者は1ペア(1 pursuer、1 evader)のみで1000ラウンドプレイするとし、各プレイヤーの各戦略の選択頻度は次の値を仮定します。
\[
n_{PL}=500,\;\;\;n_{PR}=500,\;\;\;n_{EL}=667,\;\;\;n_{ER}=333
\]


QREはExperimetrics本の16.3.2で計算したものを使用してます。
hiroecon.hatenablog.com


Rプログラムは以下のようになります。

n1_0<-500 # number of times that pursuer chose L
n1_1<-500 # number of times that pursuer chose R
n2_0<-667 # number of times that evader chose L
n2_1<-333 # number of times that evader chose R

# load mu_p_q (computed in 16.3.2)
mu_p_q<-read.csv("/Users/Hiro/Documents/R/moffatt/mu_p_q.csv")

# log likelihood function
LL<-numeric(nrow(mu_p_q))
for (i in 1:nrow(mu_p_q)) {
  LL[i]<-n1_0*log(mu_p_q$p[i])+n1_1*log(1-mu_p_q$p[i])+n2_0*log(mu_p_q$q[i])+n2_1*log(1-mu_p_q$q[i])
}

LL[which.max(LL)]
mu_p_q$mu[which.max(LL)]
mu_p_q$p[which.max(LL)]
mu_p_q$q[which.max(LL)]

plot(mu_p_q$mu,LL)
abline(v=mu_p_q$mu[which.max(LL)])
text(1.7,-1385,expression(mu==0.72))


横軸は合理性の程度を表すエラーパラメーターの値、縦軸は対数尤度関数の値です。対数尤度関数の値が最大になるのは、エラーパラメーターの値が0.72のときになります。Experimetrics本の結果と同じです。
f:id:hiroecon:20180528085601p:plain

エラーパラメーターの値が0.72のときのQREにおける各戦略の選択確率は次の通り。
\begin{align*}
p_{PL}(\mu)&=0.5001529\\
p_{PR}(\mu)&=0.4998471\\
p_{EL}(\mu)&=0.6668134\\
p_{ER}(\mu)&=0.3331866
\end{align*}