はじめに

Collier and Hoeffler (2004)は、内戦の発生原因に関する論争を引き起こした論文であり、また今日まで続く「紛争の機会費用仮説」を考える際に重要な論文である。

論文はOxford Economic Papersに収録されており、有料でアクセスできる。本稿執筆時点(2021年7月)では、ニューヨーク大学のDebraj Ray先生の授業教材から無料でダウンロード可能である(https://pages.nyu.edu/debraj/Courses/Readings/CollierHoeffler.pdf)。

オリジナルのデータセットは本稿執筆時には公開されていない。本稿で使用したデータセットは、内戦発生を説明するモデルとしてCollier and Hoeffler(2004)とFearon and Latin(2003)を比較したWard, Greenhil and Bakke (2010)(DOI: 10.1177/0022343309356491)(本稿執筆時点ではオープンアクセス論文)が使用したデータセットの一部である。Ward, Greenhil, Bakke(2010)のデータセットには、Collier and Hoeffler (2004)のデータセットが含まれており、Wardらによれば、それはオックスフォード大学のサイト(http://users.ox.ac.uk/*ball0144/g&g.zip) に公開されていたオリジナルのデータセットをそのまま使用したということである。 なお、今回の再現に当たっては龍谷大学の浜中新吾ゼミからデータを提供していただいた。感謝いたします。

使用されている分析方法

Collier and Hoeffler (2004)で使用されている分析方法は主にロジスティック回帰分析である。1960年から1999年の分析期間を5年ごとに分割し、それぞれの期間で戦争が発生した場合は1、しなかった場合は0を投入した2値変数を従属変数とする。

Rでは、ロジスティック回帰分析はglm()を用いて分析することが一般的である。glm()は以下のようにオプションのfamilyを設定することで、ロジスティック回帰分析に基づく推定を行うことができる。

glm(y~x,data=data,family = binomial(link = "logit"))

また、Collier and Hoeffler(2004)では二つのモデルを比較する方法としてJ-testが採用されている。Rではlmtestパッケージのjtestで実行することができるが、この関数ではCollier and Hoeffler(2004)が行った分析結果を直接に再現することはできない。Collier and Hoeffler(2004)は二つのモデルからそれぞれ得られた推定値を他方のモデルに変数として投入することで、その推定値が格納された変数と、それ以外の変数の統計的有意性の変化から適切なモデルを判別しようと試みている。Collier and Hoeffler(2004)のデータセットには、二つのモデルそれぞれから得られた推定値が変数として格納されているので、それを用いればJ-testの再現は可能である。

頑健性チェックではロジスティック回帰分析の固定効果推定と変量効果推定、年ダミーを投入したプール推定が採用されている。ここでは、ロジスティック回帰分析の固定効果推定方法としてsurvivalパッケージのclogit()を使用した。これは、回帰式のフォーミュラの最後にstrata(id)を設定する。idは、データセットのものを使用した。

clogit(y~x+strata(id),data = data)

変量効果推定に関しては、lme4パッケージのglmerを用いた。これは変量効果を推定する変数をフォーミュラの最後にカッコ書きで指定する。また、オプションでロジスティック回帰分析を行うことを指定する。

glmer(y~x+(1|id),data=data,family = binomial(link = "logit"))

プール推定で投入される年ダミーは、データセットに含まれるyear変数をファクターに変換して投入した。
頑健性チェックでは、発生が稀な現象に対するロジスティック回帰分析の手法として、King and Zeng (2001)によって開発されたレアイベント・ロジット分析が採用されている。これはRではZeligパッケージのzelig()関数で実行することができる。ただし、zelig()は分析結果を自動でリスト形式で出力しないので、分析結果をstargazer等のパッケージを利用して一覧出力することができない。ここでは、分析結果のデータから手作業でリストを作成し、簡便な表を作成した。

再現ができなかった部分

頑健性チェックでは、独立変数の一つであるpeace durationの再設定が行われている。しかし、オリジナルのデータセットにはこの再設定済みの変数が収録されていないため、今回の再現実験ではこの点の再現を見送った。
また、一部の分析では回帰係数やp値がわずかに一致しない場合があったが、これはCollier and Hoefller (2004)が分析に使用した統計分析環境とRの違いに起因すると考えらえる。

表3の再現

表3の分析

load("ch.RData")
t3model1 <- glm(as.factor(warsa) ~ 
                 sxp + sxp2 + coldwar + +secm+gy1 + peace + prevwara+mount+geogia +
                 lnpop + frac, 
               family = binomial(link = logit),
               data = ch)
t3model2<-glm(as.factor(warsa) ~ 
                sxp + sxp2 + coldwar + +secm+gy1 + peace +mount+geogia +
                lnpop + frac, 
              family = binomial(link = logit),
              data = ch)
t3model3<-glm(as.factor(warsa) ~ 
                sxp + sxp2 + coldwar +lngdp_+gy1 + peace +mount+geogia +frac+
                lnpop,
              family = binomial(link = logit),
              data = ch)
t3model4<-glm(as.factor(warsa)~
                sxp + sxp2 + lngdp_ + peace + lnpop + diaspeaa,
              family = binomial(link = logit),
              data = ch)
Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
t3model5<-glm(as.factor(warsa)~
                sxp + sxp2 + lngdp_ + peace + lnpop + diahpeaa + difdpeaa,
              family = binomial(link = logit),
              data = ch)
Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

表3の作成

ここでは、modelsummaryパッケージのmodelsummary()を使用して表を作成している。この関数は、一覧表示する分析結果をリストで指定する。また、表示させる変数名やその順はcoef_map=で指定する。ここでは、あらかじめベクトルに格納し、そのオブジェクト名で指定している。

library(modelsummary)
var_names_3<-c("sxp" = "Primary commodity exports/GDP",
             "sxp2" = "(Primary commodity exports/GDP)^2",
             "coldwar" = "Post-coldwar","secm" = "Male secondary schooling",
             "lngdp_" = "Ln GDP per capita","gy1" = "GDP growth", 
             "peace" = "Peace duration","prevwara" = "Previous war",
             "mount" = "Mountainous terrain",
             "geogia" = "Geographic dispersion",
             "frac" = "Social fractionalization",
             "lnpop" = " Ln population","diaspeaa" = "Diaspora/peace",
             "diahpeaa" = "Diaspora corrected/peace",
             "difdpeaa" = "(Diaspora-diaspora corrected)/peace")
modellist<-list()
modellist[["1"]]<-t3model1
modellist[["2"]]<-t3model2
modellist[["3"]]<-t3model3
modellist[["4"]]<-t3model4
modellist[["5"]]<-t3model5
msummary(modellist,"html",gof_omit = "AIC|BIC",coef_map = var_names_3,
         stars = c("*" = 0.1, "**" = 0.05, "***" = 0.01),
         title = "再現:Collier and Hoeffler (2004) Table 3")
再現:Collier and Hoeffler (2004) Table 3
1 2 3 4 5
Primary commodity exports/GDP 18.149*** 18.900*** 16.476*** 17.567*** 17.403***
(6.007) (5.948) (5.207) (6.744) (6.749)
(Primary commodity exports/GDP)^2 -27.445** -29.123** -23.017** -28.815* -28.456*
(11.996) (11.905) (9.972) (15.350) (15.364)
Post-coldwar -0.326 -0.207 -0.454
(0.469) (0.450) (0.416)
Male secondary schooling -0.025** -0.024**
(0.010) (0.010)
Ln GDP per capita -0.837*** -1.237*** -1.243***
(0.253) (0.283) (0.284)
GDP growth -0.117*** -0.118*** -0.105**
(0.044) (0.044) (0.042)
Peace duration -0.003 -0.004*** -0.004*** -0.002 -0.002
(0.002) (0.001) (0.001) (0.001) (0.001)
Previous war 0.464
(0.547)
Mountainous terrain 0.013 0.014 0.008
(0.009) (0.009) (0.008)
Geographic dispersion -2.211** -2.129** -0.865
(1.038) (1.032) (0.948)
Social fractionalization 0.000 0.000 0.000**
(0.000) (0.000) (0.000)
Ln population 0.669*** 0.686*** 0.493*** 0.295** 0.296**
(0.163) (0.162) (0.129) (0.141) (0.141)
Diaspora/peace 700.934*
(363.290)
Diaspora corrected/peace 741.155*
(387.634)
(Diaspora-diaspora corrected)/peace 823.941
(556.022)
Num.Obs. 688 688 750 595 595
Log.Lik. -128.494 -128.849 -146.855 -93.272 -93.229
* p < 0.1, ** p < 0.05, *** p < 0.01

表4の再現

表4の分析

t4model1<-glm(as.factor(warsa)~ elfo + rf + pol16 + etdo4590 + dem + peace +
                mount + geogia + lnpop,
              family = binomial(link = logit),
              data = ch)
t4model2<-glm(as.factor(warsa)~ elfo + rf + pol16 + etdo4590 + dem + peace +
                mount + geogia + lnpop + ygini,
              family = binomial(link = logit),
              data = ch)
t4model3<-glm(as.factor(warsa)~ elfo + rf + pol16 + etdo4590 + dem + peace +
                mount + geogia + lnpop + lgini,
              family = binomial(link = logit),
              data = ch)

表4の作成

var_names_t4<-c("elfo" = "Ethnic fractionalization",
                "rf" = "Religious fractionalization", 
                "pol16" = "Polarization α =1.6", 
                "etdo4590" ="Ethnic dominance (45-90%)", "dem" = "Democracy",
                "peace" = "Peace duration", "mount" = "Mountainous terrain",
                "geogia" = "Geographic dispersion", "lnpop" = "Ln population",
                "ygini" = "Income inequality", "lgini" = "Land inequality")
mlist_t4<-list()
mlist_t4[["1"]]<-t4model1
mlist_t4[["2"]]<-t4model2
mlist_t4[["3"]]<-t4model3
msummary(mlist_t4,"html",gof_omit = "AIC|BIC",coef_map = var_names_t4,
         stars = c("*" = 0.1, "**" = 0.05, "***" = 0.01),
         title = "再現:Collier and Hoeffler (2004) Table 4")
再現:Collier and Hoeffler (2004) Table 4
1 2 3
Ethnic fractionalization 0.010* 0.011 0.012
(0.006) (0.007) (0.008)
Religious fractionalization -0.003 -0.006 -0.004
(0.007) (0.008) (0.009)
Polarization α =1.6 -3.067 -4.682 -6.536
(7.021) (8.267) (8.578)
Ethnic dominance (45-90%) 0.414 0.575 1.084*
(0.496) (0.586) (0.629)
Democracy -0.109** -0.083 -0.121**
(0.044) (0.051) (0.053)
Peace duration -0.004*** -0.003*** -0.004***
(0.001) (0.001) (0.001)
Mountainous terrain 0.011 0.007 0.000
(0.007) (0.009) (0.009)
Geographic dispersion -0.509 -0.763 -1.293
(0.856) (1.053) (1.102)
Ln population 0.221** 0.246** 0.299**
(0.096) (0.119) (0.133)
Income inequality 0.015
(0.018)
Land inequality 0.461
(1.305)
Num.Obs. 850 604 603
Log.Lik. -185.568 -133.461 -117.124
* p < 0.1, ** p < 0.05, *** p < 0.01

表5の再現

表5の分析

t5model1<-glm(as.factor(warsa) ~ 
                sxp + sxp2 + coldwar + secm + gy1 + peace + mount + geogia +
                lnpop + frac + grievxb, 
              family = binomial(link = logit),
              data = ch)
t5model2<-glm(as.factor(warsa)~ elfo + rf + pol16 + etdo4590 + dem + peace +
                mount + geogia + lnpop + greedxb,
              family = binomial(link = logit),
              data = ch)
t5model3<-glm(as.factor(warsa)~
                sxp + sxp2 + coldwar + secm + gy1 + peace + mount + geogia +
                lnpop + frac + elfo + rf + pol16 + etdo4590 + dem + ygini, 
              family = binomial(link = logit),
              data = ch)
t5model4<-glm(as.factor(warsa)~
                sxp + sxp2 + coldwar + secm + gy1 + peace + mount + geogia +
                lnpop + frac + elfo + rf + pol16 + etdo4590 + dem, 
              family = binomial(link = logit),
              data = ch)
t5model5<-glm(as.factor(warsa)~
                sxp + sxp2 + secm + gy1 + peace + geogia +
                lnpop + frac + etdo4590, 
              family = binomial(link = logit),
              data = ch)
t5model6<-glm(as.factor(warsa)~
                sxp + sxp2 + lngdp_ + gy1 + peace + geogia +
                lnpop + frac + etdo4590, 
              family = binomial(link = logit),
              data = ch)
t5model7<-glm(as.factor(warsa)~
                sxp + sxp2 + secm + gy1 + peace + geogia +
                lnpop + frac + etdo4590 + oilsxp + oilsxp2, 
              family = binomial(link = logit),
              data = ch)
Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

表5の作成

var_names_5<-c("sxp" = "Primary commodity exports/GDP",
               "sxp2" = "(Primary commodity exports/GDP)^2",
               "coldwar" = "Post-coldwar","secm" = "Male secondary schooling",
               "lngdp_" = "Ln GDP per capita","gy1" = "GDP growth", 
               "peace" = "Peace duration","mount" = "Mountainous terrain",
               "geogia" = "Geographic dispersion", "lnpop" = " Ln population",
               "frac" = "Social fractionalization",
               "elfo" = "Ethnic fractionalization",
               "rf" = "Religious fractionalization", 
               "pol16" = "Polarization α =1.6", 
               "etdo4590" ="Ethnic dominance (45-90%)", "dem" = "Democracy",
               "ygini" = "Income inequality", 
               "grievxb" = "Greivane predicted value",
               "greedxb" = "Opportunity predicted value",
               "oilsxp" = "Primary commodity exports / GDP * oil dummy",
               "oilsxp2" = "(Primary commodity exports / GDP)^2 * oil dummy")
mlist_t5<-list()
mlist_t5[["1"]]<-t5model1
mlist_t5[["2"]]<-t5model2
mlist_t5[["3"]]<-t5model3
mlist_t5[["4"]]<-t5model4
mlist_t5[["5"]]<-t5model5
mlist_t5[["6"]]<-t5model6
mlist_t5[["7"]]<-t5model7
msummary(mlist_t5,gof_omit = "AIC|BIC",coef_map = var_names_5,
         stars = c("*" = 0.1, "**" = 0.05, "***" = 0.01),
         title = "再現:Collier and Hoeffler (2004) Table 5")
再現:Collier and Hoeffler (2004) Table 5
1 2 3 4 5 6 7
Primary commodity exports/GDP 19.107*** 37.072*** 23.385*** 18.937*** 16.773*** 50.608***
(5.996) (10.292) (6.691) (5.865) (5.206) (13.093)
(Primary commodity exports/GDP)^2 -30.262** -69.270*** -36.335*** -29.443** -23.800** -130.998***
(12.014) (21.696) (12.998) (11.781) (10.040) (42.931)
Post-coldwar -0.208 -0.873 -0.281
(0.457) (0.644) (0.459)
Male secondary schooling -0.021** -0.029** -0.022** -0.032*** -0.034***
(0.011) (0.013) (0.011) (0.010) (0.011)
Ln GDP per capita -0.950***
(0.245)
GDP growth -0.108** -0.045 -0.108** -0.115*** -0.098** -0.134***
(0.044) (0.062) (0.045) (0.043) (0.041) (0.046)
Peace duration 0.000 0.001 0.000 -0.003*** -0.004*** -0.004*** -0.003***
(0.002) (0.001) (0.002) (0.001) (0.001) (0.001) (0.001)
Mountainous terrain 0.005 0.001 0.005 0.015
(0.010) (0.008) (0.012) (0.009)
Geographic dispersion -1.976* 0.053 -4.032*** -1.962* -2.487** -0.992 -2.871**
(1.049) (1.101) (1.490) (1.149) (1.005) (0.909) (1.130)
Ln population 0.489** -0.022 0.927*** 0.697*** 0.768*** 0.510*** 1.123***
(0.193) (0.136) (0.250) (0.181) (0.166) (0.128) (0.226)
Social fractionalization 0.000** -0.001** -0.001 0.000** 0.000*** 0.000***
(0.000) (0.000) (0.000) (0.000) (0.000) (0.000)
Ethnic fractionalization 0.008 0.041** 0.023
(0.007) (0.019) (0.015)
Religious fractionalization -0.005 0.015 0.014
(0.008) (0.020) (0.019)
Polarization α =1.6 -9.338 -25.276* -15.992
(8.734) (13.389) (10.518)
Ethnic dominance (45-90%) 1.210* 2.020** 1.592** 0.670* 0.480 0.769**
(0.648) (0.915) (0.746) (0.354) (0.328) (0.368)
Democracy -0.036 -0.018 -0.042
(0.054) (0.062) (0.054)
Income inequality 0.025
(0.024)
Greivane predicted value 0.765*
(0.413)
Opportunity predicted value 1.044***
(0.211)
Primary commodity exports / GDP * oil dummy -28.275***
(9.351)
(Primary commodity exports / GDP)^2 * oil dummy 106.459***
(38.704)
Num.Obs. 665 665 479 665 688 750 654
Log.Lik. -126.695 -125.290 -89.551 -124.595 -128.212 -146.843 -114.199
* p < 0.1, ** p < 0.05, *** p < 0.01

表6の再現

表6の分析

表6は頑健性チェックである。外れ値に該当しそうな観察対象を外して分析している。ここでは、それぞれのパターンで部分集合を作成して回帰モデルに投入した。前述の通り、モデル5と6はオリジナルのデータセットに変数が欠落しているために、ここでは再現を見送った。

ch_t6_model1<-ch[!(ch$country=="Iran" | ch$country=="Romania"),]
t6model1<-glm(as.factor(warsa)~
                    sxp + sxp2 + secm + gy1 + peace + geogia + frac +
                    etdo4590 + lnpop,
                  family = binomial(link = "logit"),
                  data = ch_t6_model1)
ch_t6_model2<-ch_t6_model1[!(ch_t6_model1$country=="Angola" & ch_t6_model1$year==1970),]
ch_t6_model2<-ch_t6_model2[!(ch_t6_model2$country=="Zaire" & ch_t6_model2$year==1990),]
ch_t6_model2<-ch_t6_model2[!(ch_t6_model2$country=="Zaire" & ch_t6_model2$year==1995),]
ch_t6_model2<-ch_t6_model2[!(ch_t6_model2$country=="Iraq" & ch_t6_model2$year==1980),]
t6model2<-glm(as.factor(warsa)~
                sxp + sxp2 + secm + gy1 + peace + geogia + frac +
                etdo4590 + lnpop,
              family = binomial(link = "logit"),
              data = ch_t6_model2)
ch_t6_model3<-ch[!(ch$country=="Congo" & ch$year==1995),]
ch_t6_model3<-ch[!(ch_t6_model3$country=="Iran" & ch_t6_model3$year==1970),]
ch_t6_model3<-ch[!(ch_t6_model3$country=="Romania" & ch_t6_model3$year==1985),]
t6model3<-glm(as.factor(warsa)~
                sxp + sxp2 + secm + gy1 + peace + geogia + frac +
                etdo4590 + lnpop,
              family = binomial(link = "logit"),
              data = ch_t6_model3)
ch_t6_model4<-ch[!(ch$country=="Saudi Arabia" | ch$country=="Guyana" |
                     ch$country=="Oman" | ch$country=="Trinidad and Tobago"),]
t6model4<-glm(as.factor(warsa)~
                sxp + sxp2 + secm + gy1 + peace + geogia + frac +
                etdo4590 + lnpop,
              family = binomial(link = "logit"),
              data = ch_t6_model4)

表6の作成

var_names_6<-c("sxp" = "Primary commodity exports/GDP",
               "sxp2" = "(Primary commodity exports/GDP)^2",
               "secm" = "Male secondary schooling","gy1" = "GDP growth", 
               "peace" = "Peace duration","geogia" = "Geographic dispersion",
               "frac" = "Social fractionalization",
               "etdo4590" ="Ethnic dominance","lnpop" = " Ln population")
mlist_t6<-list()
mlist_t6[["Excluding Iran and Romania"]]<-t6model1
mlist_t6[["Excluding Iran and Romania and growth collapses"]]<-t6model2
mlist_t6[["Excluding influential data points"]]<-t6model3
mlist_t6[["Excluding high primary commodity exporters"]]<-t6model4
msummary(mlist_t6,gof_omit = "AIC|BIC",coef_map = var_names_6,
         stars = c("*" = 0.1, "**" = 0.05, "***" = 0.01),
         title = "再現:Collier and Hoeffler (2004) Table 6",
         notes = list("注1:推定値の一部は完全に再現できなかった。",
                      "注2:モデル5とモデル6は必要なデータがないために再現を見送った。"))
再現:Collier and Hoeffler (2004) Table 6
Excluding Iran and Romania Excluding Iran and Romania and growth collapses Excluding influential data points Excluding high primary commodity exporters
Primary commodity exports/GDP 19.696*** 19.137*** 18.973*** 18.771***
(6.607) (6.477) (5.869) (6.063)
(Primary commodity exports/GDP)^2 -34.090** -31.903** -29.534** -28.466**
(14.352) (13.825) (11.797) (12.299)
Male secondary schooling -0.035*** -0.036*** -0.031*** -0.031***
(0.011) (0.011) (0.010) (0.010)
GDP growth -0.140*** -0.119** -0.115*** -0.122***
(0.047) (0.049) (0.043) (0.044)
Peace duration -0.004*** -0.004*** -0.004*** -0.004***
(0.001) (0.001) (0.001) (0.001)
Geographic dispersion -2.114* -2.272** -2.506** -2.449**
(1.080) (1.087) (1.007) (1.008)
Social fractionalization 0.000** 0.000** 0.000** 0.000**
(0.000) (0.000) (0.000) (0.000)
Ethnic dominance 0.727** 0.776** 0.673* 0.647*
(0.368) (0.370) (0.353) (0.354)
Ln population 0.747*** 0.737*** 0.769*** 0.772***
(0.174) (0.176) (0.166) (0.168)
Num.Obs. 674 671 687 662
Log.Lik. -118.404 -115.434 -128.149 -127.551
* p < 0.1, ** p < 0.05, *** p < 0.01
注1:推定値の一部は完全に再現できなかった。
注2:モデル5とモデル6は必要なデータがないために再現を見送った。

表7の再現

表7の分析

library(lme4)
library(survival)
library(Zelig)
t7_model1<-glmer(as.factor(warsa)~
                   sxp + sxp2 + secm + gy1 + peace + geogia + frac + etdo4590 +
                   lnpop + (1 | id),
                 family = binomial(link = "logit"),
                 data = ch)
Warning: Some predictor variables are on very different scales: consider
rescaling
t7_model2<-clogit(warsa~
                    sxp + sxp2 + secm + gy1 + peace + geogia + frac + lnpop +
                    strata(id),
                  data = ch)
t7_model3<-glm(as.factor(warsa)~
                 sxp + sxp2 + secm + gy1 + peace + geogia + frac + etdo4590 +
                 lnpop +as.factor(year),
               family = binomial(link = "logit"),
               data = ch)
t7_model4<-zelig(warsa~
                    sxp + sxp2 + secm + gy1 + peace + geogia + frac + etdo4590 +
                    lnpop,
                  model="relogit",
                  data = ch)
Warning: `tbl_df()` was deprecated in dplyr 1.0.0.
Please use `tibble::as_tibble()` instead.
Warning: `group_by_()` was deprecated in dplyr 0.7.0.
Please use `group_by()` instead.
See vignette('programming') for more help
How to cite this model in Zelig:
  Christine Choirat, Christopher Gandrud, James Honaker, Kosuke Imai, Gary King, and Olivia Lau. 2021.
  relogit: Rare Events Logistic Regression for Dichotomous Dependent Variables
  in Christine Choirat, Christopher Gandrud, James Honaker, Kosuke Imai, Gary King, and Olivia Lau,
  "Zelig: Everyone's Statistical Software," https://zeligproject.org/

表7の作成

前述の通り、ここでレアイベント・ロジット分析に用いたzelig()関数は、分析結果をリスト形式で保管しない。このため、手作業でこれを行う。また、レアイベント・ロジット分析の結果以外の一覧表示を最初に作成し、続いてレアイベント・ロジット分析の結果を別の表で表示する。

t7_model4_coef<-data.frame(t7_model4$get_coef())
t7_model4_se<-data.frame(t7_model4$get_se())
t7_model4_2<-data.frame(
  term=c("sxp","sxp2","secm","gy1","peace","geogia","frac","etdo4590","lnpop"),
  estimate= t7_model4_coef[-1,1],
  std.error= t7_model4_se[-1,1]
)
t7_model4_3<-data.frame(
  nobs=688
)
t7_model4_list<-list(
  tidy = t7_model4_2,
  glance = t7_model4_3
)
class(t7_model4_list)<-"modelsummary_list"
var_names_7<-c("sxp" = "Primary commodity exports/GDP",
               "sxp2" = "(Primary commodity exports/GDP)^2",
               "secm" = "Male secondary schooling","gy1" = "(GDP growth)t-1", 
               "peace" = "Peace duration","geogia" = "Geographic dispersion",
               "frac" = "Social fractionalization",
               "etdo4590" = "Ethnic dominance","lnpop" = " Ln population",
               "as.factor(year)1970" = "T70-74",
               "as.factor(year)1975" = "T75-79",
               "as.factor(year)1980" = "T80-84",
               "as.factor(year)1985" = "T85-89",
               "as.factor(year)1990" = "T90-94",
               "as.factor(year)1995" = "T95-99")
gof_list<-list(
  list("raw"="nobs","clean"="N","fmt"=0),
  list("raw"="r.squared", "clean"="R2","fmt"=2)
)
mlist_t7<-list()
mlist_t7[["Random effects"]]<-t7_model1
mlist_t7[["Fixed effects"]]<-t7_model2
mlist_t7[["Pooled logit plus time dummies"]]<-t7_model3
msummary(mlist_t7,
         coef_map = var_names_7,gof_map=gof_list,
         stars = c("*" = 0.1, "**" = 0.05, "***" = 0.01),
         title = "再現:Collier and Hoeffler (2004) Table 7",
         notes = list("注:推定値の一部は完全には一致しない。"))
Random effect variances not available. Returned R2 does not account for random effects.
再現:Collier and Hoeffler (2004) Table 7
Random effects Fixed effects Pooled logit plus time dummies
Primary commodity exports/GDP 18.937*** 35.850** 18.895***
(5.860) (14.436) (5.988)
(Primary commodity exports/GDP)^2 -29.443** -65.967** -29.815**
(11.779) (26.964) (12.098)
Male secondary schooling -0.032*** 0.007 -0.031***
(0.010) (0.033) (0.010)
(GDP growth)t-1 -0.115*** -0.045 -0.129***
(0.043) (0.072) (0.047)
Peace duration -0.004*** 0.011*** -0.004***
(0.001) (0.003) (0.001)
Geographic dispersion -2.487** 115.363 -2.447**
(1.005) (74.562) (1.018)
Social fractionalization 0.000** -0.007 0.000**
(0.000) (0.006) (0.000)
Ethnic dominance 0.670* 0.682*
(0.354) (0.359)
Ln population 0.768*** 0.010 0.762***
(0.165) (1.410) (0.170)
T70-74 0.725
(0.602)
T75-79 0.578
(0.608)
T80-84 1.137*
(0.602)
T85-89 -0.013
(0.757)
T90-94 0.802
(0.677)
T95-99 -0.492
(0.921)
N 688 688 688
R2 0.05
* p < 0.1, ** p < 0.05, *** p < 0.01
注:推定値の一部は完全には一致しない。
mlist_t7_2<-list()
mlist_t7_2[["Rare events logit"]]<-t7_model4_list
msummary(mlist_t7_2,
         coef_map = var_names_7,gof_map=gof_list,
         title = "再現:Collier and Hoeffler (2004) Table 7-2",
         notes = list("注:p値の算出に必要なデータがパッケージから引き渡されないので、アスタリスクは表示されない"))
再現:Collier and Hoeffler (2004) Table 7-2
Rare events logit
Primary commodity exports/GDP 17.161
(5.865)
(Primary commodity exports/GDP)^2 -25.594
(11.781)
Male secondary schooling -0.030
(0.010)
(GDP growth)t-1 -0.110
(0.043)
Peace duration -0.004
(0.001)
Geographic dispersion -2.394
(1.005)
Social fractionalization 0.000
(0.000)
Ethnic dominance 0.644
(0.354)
Ln population 0.726
(0.166)
N 688
注:p値の算出に必要なデータがパッケージから引き渡されないので、アスタリスクは表示されない

再現は以上である。
コメント等があれば、松尾まで連絡してください。 matsuom★cc.utsunomiya-u.ac.jp