Chapter 4 離散選択モデル
離散選択モデルの説明はこちらからどうぞ。
4.1 検証する仮説
「自社の店舗が多い地域ほど出店確率が高まるのでは?」という仮説をFamilymartに関して検証してみます。ドミナント戦略が取られていれば、この仮説通りになっているはずです。三田論コンビニ班の簡易的な分析です。
4.2 データの読み込み
各(メッシュ)地域における、2011年~2018年ごとのFamilymart, LAWSONの参入行動とその地域特性を示したデータです。例えば、メッシュ地域362327851(head()
でデータを見た時に一番上にでてくる地域)は2013年にFamilymartが初めて参入したことがわかります。
## Mesh_area Open_year Familymart_Entry LAWSON_Entry Familymart_existed
## 1 362327851 2011 0 0 0
## 2 362327851 2012 0 0 0
## 3 362327851 2013 1 0 0
## 4 362327851 2014 0 0 1
## 5 362327851 2015 0 0 1
## 6 362327851 2016 0 0 1
## LAWSON_existed pop n_employee super_count F_count L_count
## 1 0 13 2 1 1 0
## 2 0 13 2 1 1 0
## 3 0 13 2 1 1 0
## 4 0 13 2 1 1 0
## 5 0 10 2 1 1 0
## 6 0 10 2 1 1 0
○変数の説明
変数名 | 説明 |
---|---|
Mesh_area | メッシュ地域 |
Open_year | 2011~2018年 |
Familymart_Entry | Familymartの参入したら1をとるダミー変数 |
LAWSON_Entry | LAWSONの参入したら1をとるダミー変数 |
Familymart_existed | Familymartの既存店舗数 |
LAWSON_existed | LAWSONの既存店舗数 |
pop | 当該地域の従業員の人口 |
n_employee | 当該地域の従業員の数 |
super_count | スーパーの店舗数 |
4.3 データの把握
## Mesh_area Open_year Familymart_Entry LAWSON_Entry
## Min. :362327851 Min. :2011 Min. :0.00000 Min. :0.00000
## 1st Qu.:392725222 1st Qu.:2013 1st Qu.:0.00000 1st Qu.:0.00000
## Median :392726806 Median :2014 Median :0.00000 Median :0.00000
## Mean :389777896 Mean :2014 Mean :0.08962 Mean :0.05601
## 3rd Qu.:392746145 3rd Qu.:2016 3rd Qu.:0.00000 3rd Qu.:0.00000
## Max. :402707402 Max. :2018 Max. :1.00000 Max. :1.00000
## Familymart_existed LAWSON_existed pop n_employee
## Min. :0.0000 Min. :0.0000 Min. : 1.0 Min. : 2.0
## 1st Qu.:0.0000 1st Qu.:0.0000 1st Qu.: 539.8 1st Qu.: 102.0
## Median :0.0000 Median :0.0000 Median :1224.5 Median : 279.0
## Mean :0.4611 Mean :0.3626 Mean :1484.6 Mean : 611.7
## 3rd Qu.:1.0000 3rd Qu.:1.0000 3rd Qu.:2140.5 3rd Qu.: 705.0
## Max. :5.0000 Max. :5.0000 Max. :5244.0 Max. :12554.0
## super_count F_count L_count
## Min. :0.0000 Min. :0.0000 Min. :0.0000
## 1st Qu.:0.0000 1st Qu.:0.0000 1st Qu.:0.0000
## Median :0.0000 Median :1.0000 Median :0.0000
## Mean :0.5377 Mean :0.7264 Mean :0.4764
## 3rd Qu.:1.0000 3rd Qu.:1.0000 3rd Qu.:1.0000
## Max. :8.0000 Max. :3.0000 Max. :2.0000
4.4 推定
4.4.1 計量経済学モデル
今回は被説明変数Familymart\_Entry_i
がダミー変数を取る(0と1だけなので離散変数)ので、ロジットモデルやプロビットモデルに代表される離散選択モデルで推定します。\(\lambda_i\)が\(\mu\)より大きい場合にFamilymart\_Entry_i
が1を取り、それ以外の場合にFamilymart\_Entry_i
が0を取るというモデルを考えます。
\[ Familymart\_Entry_{i} = \begin{cases} 1 & (\lambda_i \ge \mu) \\ 0 & (\lambda_i < \mu) \end{cases} \]
\(\lambda_i\)は以下のような回帰式で表現出来るとします。今回の仮説が成り立っているなら、\(\beta_{1}\)は正になるはずです。
\[ \lambda_{i} = \alpha + \beta_{1}\times Familymart\_existed_{i}+ \beta_{2}\times pop_{i} + u_{i} \]
離散選択モデルでは、選択確率を求めることが出来ます。\(P(Familymart\_Entry = 1)\)はFamilymartが参入する確率です。\(F(\cdot)\)は累積分布関数を示しており、ロジットモデルなら、ロジスティック分布、プロビットモデルなら標準正規分布の累積分布関数である。
\[ P(Familymart\_Entry = 1) = F(\alpha + \beta_{1}\times Familymart\_existed_{i}+ \beta_{2}\times pop_{i} + u_{i} ) \]
ロジットモデルとプロビットモデルの両方でこれから推定してみます。
4.4.2 ロジットモデル
ロジットモデルを推定する際はglm()
関数を使います。基本的にはOLS推定と一緒ですが、()内でロジットモデルであることを指定するため、family = binominal(link = "logit")
と指定します。結果をout_logit
に保存します。
4.4.3 解釈
推定結果を出力する時にはいつも通りsummary()
です。
##
## Call:
## glm(formula = Familymart_Entry ~ Familymart_existed + pop, family = binomial(link = "logit"),
## data = df)
##
## Deviance Residuals:
## Min 1Q Median 3Q Max
## -0.7445 -0.4593 -0.4129 -0.3569 3.0002
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -2.502e+00 1.439e-01 -17.385 < 2e-16 ***
## Familymart_existed -5.813e-01 1.589e-01 -3.659 0.000253 ***
## pop 2.595e-04 7.334e-05 3.538 0.000404 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 1023.2 on 1695 degrees of freedom
## Residual deviance: 1002.4 on 1693 degrees of freedom
## AIC: 1008.4
##
## Number of Fisher Scoring iterations: 5
離散選択モデルのポイントとして、結果を解釈する際にパラメータの値をそのまま使うことが出来ません。その代わりに、いくつか係数を解釈する際に使われる項目がありますが、ここでは平均限界効果を紹介します。この指標は、ある説明変数を1単位増やした際に、確率が平均的にどの程度変化するのかを表すものです。ライブラリmargins
を使えば、一瞬で出力されます。
既存店舗が1店舗増えることで、参入確率は4.6%ほど下がる傾向にあるみたいです。仮説は検証されませんでしたね。
## factor AME SE z p lower upper
## Familymart_existed -0.0468 0.0130 -3.6026 0.0003 -0.0723 -0.0214
## pop 0.0000 0.0000 3.4951 0.0005 0.0000 0.0000
4.4.4 プロビットモデル
プロビットモデルもロジットモデルとほぼ同じです。唯一違うのはfamily = binominal(link = "probit")
と指定して、プロビットモデルで推定することを明示します。
4.4.5 解釈
こちらも同じです。
##
## Call:
## glm(formula = Familymart_Entry ~ Familymart_existed + pop, family = binomial(link = "probit"),
## data = df)
##
## Deviance Residuals:
## Min 1Q Median 3Q Max
## -0.7137 -0.4597 -0.4145 -0.3627 3.0476
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -1.438e+00 7.199e-02 -19.976 < 2e-16 ***
## Familymart_existed -2.681e-01 7.584e-02 -3.535 0.000408 ***
## pop 1.300e-04 3.818e-05 3.406 0.000659 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 1023.2 on 1695 degrees of freedom
## Residual deviance: 1003.3 on 1693 degrees of freedom
## AIC: 1009.3
##
## Number of Fisher Scoring iterations: 5
こちらも同じです。少し確率は下がったようです。
## factor AME SE z p lower upper
## Familymart_existed -0.0426 0.0121 -3.5112 0.0004 -0.0664 -0.0188
## pop 0.0000 0.0000 3.3889 0.0007 0.0000 0.0000
4.5 推定結果の整理
ロジットモデルとプロビットモデルの結果を比較してみます
ちなみに、OLS推定でも推定自体は出来ます。線形確率モデルとも呼ばれたりします。
ロジットモデルとプロビットモデルとで正負は一致しています。
##
## ===============================================================
## Dependent variable:
## -------------------------------------------
## Familymart_Entry
## OLS logistic probit
## (1) (2) (3)
## ---------------------------------------------------------------
## Familymart_existed -0.039*** -0.581*** -0.268***
## (0.010) (0.159) (0.076)
##
## pop 0.00002*** 0.0003*** 0.0001***
## (0.00001) (0.0001) (0.00004)
##
## Constant 0.076*** -2.502*** -1.438***
## (0.011) (0.144) (0.072)
##
## ---------------------------------------------------------------
## Observations 1,696 1,696 1,696
## R2 0.011
## Adjusted R2 0.010
## Log Likelihood -501.215 -501.668
## Akaike Inf. Crit. 1,008.430 1,009.337
## Residual Std. Error 0.284 (df = 1693)
## F Statistic 9.840*** (df = 2; 1693)
## ===============================================================
## Note: *p<0.1; **p<0.05; ***p<0.01