Load Packages

library(broom)
library(foreign)
library(ggstance)
library(haven)
library(Hmisc)
library(nnet)
library(reshape2)
library(stargazer)
library(tidyverse)

1. 多項ロジットとは

  • 順序のない 3 つ以上の値をとる質的変数(カテゴリカル変数)を従属変数とするモデルを推定する方法  
  • 実例:
  1. 3 人の候補者(A, B, C)の誰に投票するのか
  2. 法案が採択される、否決される、時間切れになるのか
  3. 対外支援の方法が食糧支援、軍事支援、あるいは両方行うのか  
  4. 民主党を解党後に希望の党、立憲民主党、あるいは無所属になるのか  
  • ここでは 1992年に行われたアメリカ大統領選挙を事例として、多項ロジットの分析とその解釈を解説する

1. Data

  • American National Election Studies (ANES) から 1992年大統領選挙データ anes1992.POR をダウンロード
  • anes1992.POR は統計ソフト SPSS で使われるデータ
  • このデータに関する詳細(調査方法とデータのコードブック)
  • Hmisc パッケージをダウンロードしてから RSdutio でロード
library(Hmisc)

→ データを読み込む

anes <- spss.get("data/anes1992.POR", 
               use.value.labels = FALSE) #変数の値に付けられたラベルをオリジナルの数字として読み込むコマンド    
  • 読み込んだデータセットの大きさを確認
dim(anes)
[1] 2485 2105
  • N = 2485、変数の数は 2105 もある!
  • ここでの分析に必要な変数は次の 5 つ (I~V)

従属変数

  1. vote: 投票選択(1: Perot, 2: Bush, 3: Clionton)

独立変数

  1. econ: 経済悪化認識
    1: 良くなった
    2: 変わらない
    3: 悪くなった

  2. repub: 共和党支持
    1: 共和党支持
    0: それ以外

  3. dem: 民主党支持
    1: 民主党支持
    0: それ以外

  4. edu: 教育程度
    1-17 (教育を受けた年数)

  • オリジナルのデータセットには、これらの変数がないので、新たに作成する
  • これら 5 つの変数を作るために必要な変数だけを残す
anes <- anes %>% 
  select(V925609, V923535, V900317, V900554)
  • データフレーム anes に新たな変数 (vote, econ, repub, dem, edu) を付け加える
  • 現時点では変数の中には何も入っていない (= NA)
anes <- anes %>% 
  mutate(vote = NA) %>% 
  mutate(econ = NA) %>% 
  mutate(repub = NA) %>% 
  mutate(dem = NA) %>% 
  mutate(edu = NA)
投票先の候補者: vote
  • 変数 V925609 に含まれている値は 1, 2, 3 の 3 種類
  • これらの変数を次のように変更する
  • 1 が Perot, 2 が Bush, 3 が Clinton
anes$vote[anes$V925609 == 1] <- "Bush"
anes$vote[anes$V925609 == 2] <- "Clinton"
anes$vote[anes$V925609 == 3] <- "Perot"
経済悪化認識: econ
  • 変数 V923535 に含まれている値は 1, 3, 5 の 3 種類
  • 4 年前と比べて景気がどうなったかを問う問題
  • これらを次のように変更する

1: 良くなった => 1 に変更
3: 変わらない => 2 に変更
5: 悪くなった => 3 に変更

anes$econ[anes$V923535 == 1] <- 1
anes$econ[anes$V923535 == 3] <- 2
anes$econ[anes$V923535 == 5] <- 3
共和党支持: repub
  • 変数 V900317 に含まれている値は 1, 3, 4, 5 の 5 種類
    1: 共和党支持者
    2: 無党派
    3: 支持なし
    4: その他の政党
    5: 民主党支持

  • この変数から二つの変数 (repub, dem) を作る

  • V900317 の中身を確認

table(anes$V900317)

  1   2   3   4   5 
330 386  94   3 540 
  • 共和党支持者 (V900317 = 1) は 330 人いる
    → この人たちを repub = 1 と指定
  • repub の作成 (repub = 1 共和党支持者、repub = 0 それ以外の人々)
anes$repub[anes$V900317 == 1] <- 1
anes$repub[anes$V900317 >= 2 & anes$V900317 <=5] <- 0
民主党支持: dem
  • 変数 V900317 に含まれている値は 1, 3, 4, 5 の 5 種類
    1: 共和党支持者
    2: 無党派
    3: 支持なし
    4: その他の政党
    5: 民主党支持

  • この変数から二つの変数 (repub, dem) を作る

  • V900317 の中身を確認

table(anes$V900317)

  1   2   3   4   5 
330 386  94   3 540 
  • 民主党支持者は 540 人いる → この人たちを dem = 1 と指定
  • dem の作成 (dem = 1 民主党支持者、dem = 0 それ以外の人々)
anes$dem[anes$V900317 == 5] <- 1
anes$dem[anes$V900317 >= 1 & anes$V900317 <= 4] <- 0
教育程度: edu
  • 変数 V900554 に含まれている値は回答者が教育を受けた年数 (0 から 17)
unique(anes$V900554)
 [1] NA 14  8 12 16 11 17  9 13  7 15 10  6  2  5  3  0  4  1
  • この変数に edu と名前を付ける
anes$edu <- anes$V900554
  • 分析に必要な変数だけを選び中身を確認
anes <- anes %>% 
  select(vote, econ, repub, dem, edu)
summary(anes)
     vote                econ           repub             dem        
 Length:2485        Min.   :1.000   Min.   :0.0000   Min.   :0.0000  
 Class :character   1st Qu.:3.000   1st Qu.:0.0000   1st Qu.:0.0000  
 Mode  :character   Median :3.000   Median :0.0000   Median :0.0000  
                    Mean   :2.772   Mean   :0.2439   Mean   :0.3991  
                    3rd Qu.:3.000   3rd Qu.:0.0000   3rd Qu.:1.0000  
                    Max.   :3.000   Max.   :1.0000   Max.   :1.0000  
                    NA's   :217     NA's   :1132     NA's   :1132    
      edu       
 Min.   : 0.00  
 1st Qu.:12.00  
 Median :12.00  
 Mean   :12.56  
 3rd Qu.:14.25  
 Max.   :17.00  
 NA's   :1129   
  • データフレーム anes から欠損値 (NA) を削除する
anes = na.omit(anes)
  • データセットを確認する
DT::datatable(anes)
  • 変数の型を確認
str(anes)
'data.frame':   786 obs. of  5 variables:
 $ vote : chr  "Perot" "Clinton" "Bush" "Clinton" ...
 $ econ : num  3 3 3 3 3 3 3 2 3 3 ...
 $ repub: num  0 0 1 0 0 0 0 1 0 0 ...
 $ dem  : num  1 1 0 1 1 0 0 0 0 1 ...
 $ edu  : 'labelled' int  14 14 8 12 12 16 12 8 12 11 ...
  ..- attr(*, "label")= Named chr "EDUCATION: R"
  .. ..- attr(*, "names")= chr "V900554"
 - attr(*, "na.action")= 'omit' Named int [1:1699] 1 2 3 4 5 6 7 8 9 10 ...
  ..- attr(*, "names")= chr [1:1699] "1" "2" "3" "4" ...
  • 従属変数 vote の型を character から factor に変更する
anes$vote <- as.factor(anes$vote)

3. 多項ロジットモデル

  • Multinomial logistic model
  • 多項ロジットモデルの推定には nnet packageを使う
  • 最初に relevel function を使って応答変数 vote のベースラインを決める
  • ここでは「ペローへの投票」に関心があるので「ペロー」をベースラインに指定する
anes$vote <- relevel(anes$vote, ref = "Perot")
  • multinom 関数を使って多項ロジットを実行する
model_1 <- multinom(vote ~ econ + 
                   repub + 
                   dem +
                   edu,
                   data = anes)
# weights:  18 (10 variable)
initial  value 863.509259 
iter  10 value 672.629849
final  value 670.413362 
converged

3.1 結果とその解釈

stargazer(model_1, type="html")
Dependent variable:
Bush Clinton
(1) (2)
econ -0.593*** 0.196
(0.204) (0.223)
repub 0.776*** -1.036***
(0.247) (0.294)
dem -0.417 1.240***
(0.284) (0.234)
edu 0.003 -0.023
(0.042) (0.039)
Constant 1.857** 0.258
(0.774) (0.798)
Akaike Inf. Crit. 1,360.827 1,360.827
Note: p<0.1; p<0.05; p<0.01
  • 出力された係数は log odds (= logit)

  • 従属変数 vote の baseline = Perot

  • econ (Bush) の係数 (-0.593) の意味
    → 経済が悪化したと認識する有権者ほど、Bush ではなく Perot に投票する

  • repub (Bush) の係数 (0.776) の意味
    → 無党派に比べて共和党支持者ほど、Perot ではなく Bush に投票する  

  • repub (Clinton) の係数 (-1.036) の意味
    → 無党派に比べて共和党支持者ほど、Clinton ではなく Perot に投票する

  • dem (Clinton) の係数 (1.240) の意味
    → 無党派に比べて民主党支持者ほど、Perot ではなく Clinton に投票する

  • ここで推定するモデルは次のとおり

Bush

\[ln(\frac{P(vote = Bush)}{P(vote = Perot)}) = 1.857 -0.593econ + 0.776repub - 0.417dem + 0.003edu\]

Clinton

\[ln(\frac{P(vote = Clinton)}{P(vote = Perot)}) = 0.258 + 0.196econ - 1.036repub + 1.240dem -0.023edu\]

  • multinom 関数には p 値を出力する機能が付いていない
    → 次の方法で計算する

Calculate p-values using Wald tests

z <- summary(model_1)$coefficients/summary(model_1)$standard.errors
z
        (Intercept)       econ     repub       dem         edu
Bush      2.3982571 -2.9104878  3.144169 -1.467071  0.07291528
Clinton   0.3236059  0.8761285 -3.521014  5.310532 -0.58033862
# 2-tailed z model_1
p <- (1 - pnorm(abs(z), 0, 1)) * 2
p
        (Intercept)        econ        repub          dem       edu
Bush      0.0164733 0.003608651 0.0016655907 1.423569e-01 0.9418735
Clinton   0.7462364 0.380960168 0.0004299004 1.093056e-07 0.5616863

分析結果を可視化して示してみる  

pres_mlogit <- tidy(model_1) %>% 
    filter(term != "(Intercept)") %>% 
    mutate(
        upr95 = estimate + 1.96 * `std.error`,
        lwr95 = estimate - 1.96 * `std.error`,
        y.level = if_else(y.level == "Bush", "Bush", "Clinton"),
        term = factor(term, c("econ", "repub", "dem", "edu"))
    )
coef_label <- c("econ" = "経済悪化認識",
                "repub" = "共和党支持",
                "dem" = "民主党支持",
                "edu" = "教育程度")
pres_mlogit <- pres_mlogit %>% 
  mutate(
    y.level = fct_rev(fct_inorder(y.level)),
    term = fct_rev(term)
  ) %>% 
  ggplot(aes(x = estimate, y = term)) +
  geom_vline(xintercept = 0, size = .7, colour = "lightgreen") +
  geom_pointrangeh(aes(xmin = lwr95, xmax = upr95,
                       col = y.level, shape = y.level),
                   size = .6, position = position_dodgev(height = .75)) +
  labs(x = "Estimate (Log Odds)", y = NULL) +
  geom_text(aes(x = 1.1, y = 0.6), label = "(Base category = Perot)") +
  scale_y_discrete(labels = coef_label) +
  scale_color_manual(name = "Candidates",
                     values = c(`Bush` = "red",
                                `Clinton` = "blue"),
                     guide = guide_legend(reverse = TRUE)) +
  scale_shape_manual(name = "Candidates",
                     values = c(`Bush` = 16,
                                `Clinton` = 15),
                     guide = guide_legend(reverse = TRUE)) +
  theme(legend.position = c(.5, .5),
        legend.box.background = element_rect(color = "black"),
        legend.box.margin = margin(t = 1, l = 1)) +
  theme_bw(base_family = "HiraKakuProN-W3")
pres_mlogit

3.2 予測確率

  • Predicted Probabilities
  • fitted 関数を使って、予測確率を計算できる
  • 最初の 6 人の回答者の予測確率を表示する
head(fitted(model_1))
         Perot       Bush   Clinton
1127 0.1312976 0.09755898 0.7711434
1128 0.1312976 0.09755898 0.7711434
1129 0.2441778 0.58729487 0.1685273
1130 0.1268679 0.09369150 0.7794406
1131 0.1268679 0.09369150 0.7794406
1132 0.2660521 0.30182754 0.4321204
  • 3 人の候補者の予測確率のサマリーを表示させる
summary(fitted(model_1))
     Perot             Bush            Clinton       
 Min.   :0.1055   Min.   :0.07610   Min.   :0.04019  
 1st Qu.:0.1291   1st Qu.:0.09756   1st Qu.:0.16172  
 Median :0.1688   Median :0.28750   Median :0.45595  
 Mean   :0.1896   Mean   :0.31679   Mean   :0.49364  
 3rd Qu.:0.2478   3rd Qu.:0.59889   3rd Qu.:0.77114  
 Max.   :0.2684   Max.   :0.85432   Max.   :0.81764  
  • クリントンへの投票の平均が49.3%、ブッシュが 31.7%、ペローが 19%だとわかる

3.3 平均予測確率

  • Averaged predicted probabilities
  • 経済悪化の認識 (econ) の値を変化させた時に、Perot、Bush、Clintonへの投票がどのように変化するかシミュレーションしてみる
  • まず、シミュレーションで使う、データを入れるための入れ物 (dvote) を作り、その中に変数の平均値を入れる
dvote <- data.frame(vote = c("Perot", "Bush", "Clinton"), 
                   econ = mean(anes$econ),
                   repub = mean(anes$repub),
                   dem = mean(anes$dem),
                   edu = mean(anes$edu))
dvote
     vote     econ    repub       dem      edu
1   Perot 2.774809 0.264631 0.4427481 13.09669
2    Bush 2.774809 0.264631 0.4427481 13.09669
3 Clinton 2.774809 0.264631 0.4427481 13.09669
  • model_1 で得た結果を使って、全ての独立変数が平均値の時に3人の候補者が得る平均予測確率を計算する
predict(model_1, 
        newdata = dvote, 
        "probs")
     Perot      Bush   Clinton
1 0.222399 0.2917931 0.4858079
2 0.222399 0.2917931 0.4858079
3 0.222399 0.2917931 0.4858079
summary(anes)
      vote          econ           repub             dem              edu      
 Perot  :149   Min.   :1.000   Min.   :0.0000   Min.   :0.0000   Min.   : 2.0  
 Bush   :249   1st Qu.:3.000   1st Qu.:0.0000   1st Qu.:0.0000   1st Qu.:12.0  
 Clinton:388   Median :3.000   Median :0.0000   Median :0.0000   Median :13.0  
               Mean   :2.775   Mean   :0.2646   Mean   :0.4427   Mean   :13.1  
               3rd Qu.:3.000   3rd Qu.:1.0000   3rd Qu.:1.0000   3rd Qu.:16.0  
               Max.   :3.000   Max.   :1.0000   Max.   :1.0000   Max.   :17.0  

3.2.1 有権者(共和党支持+民主党支持)の投票  

  • 経済悪化の認識の度合い (econ) を 1(最善)から 3(最悪)に 1 単位ずつ変化させたデータフレーム (decon) を作る
  • その際、他の独立変数 (dem, edu, repub) を平均値に固定させる
decon <- data.frame(repub = rep(c("0", "1"), each = 9), 
                     econ = rep(c(1:3), 3)) %>%
  mutate(dem = 0.4427,
         edu = 13.1,
         repub = 0.2646) 
DT::datatable(decon)
  • 上で作ったデータ (decon) と model_1 で得られた推定された平均予測確率をマージする
## store the predicted probabilities for each value of econ   
pp.econ <- cbind(decon, 
                  predict(model_1, 
                          newdata = decon, 
                          type = "probs", 
                          se = TRUE))
  • 得られたデータを表示させる
pp.econ
    repub econ    dem  edu     Perot      Bush   Clinton
1  0.2646    1 0.4427 13.1 0.1586363 0.5965452 0.2448186
2  0.2646    2 0.4427 13.1 0.2018341 0.4193494 0.3788165
3  0.2646    3 0.4427 13.1 0.2257065 0.2590993 0.5151942
4  0.2646    1 0.4427 13.1 0.1586363 0.5965452 0.2448186
5  0.2646    2 0.4427 13.1 0.2018341 0.4193494 0.3788165
6  0.2646    3 0.4427 13.1 0.2257065 0.2590993 0.5151942
7  0.2646    1 0.4427 13.1 0.1586363 0.5965452 0.2448186
8  0.2646    2 0.4427 13.1 0.2018341 0.4193494 0.3788165
9  0.2646    3 0.4427 13.1 0.2257065 0.2590993 0.5151942
10 0.2646    1 0.4427 13.1 0.1586363 0.5965452 0.2448186
11 0.2646    2 0.4427 13.1 0.2018341 0.4193494 0.3788165
12 0.2646    3 0.4427 13.1 0.2257065 0.2590993 0.5151942
13 0.2646    1 0.4427 13.1 0.1586363 0.5965452 0.2448186
14 0.2646    2 0.4427 13.1 0.2018341 0.4193494 0.3788165
15 0.2646    3 0.4427 13.1 0.2257065 0.2590993 0.5151942
16 0.2646    1 0.4427 13.1 0.1586363 0.5965452 0.2448186
17 0.2646    2 0.4427 13.1 0.2018341 0.4193494 0.3788165
18 0.2646    3 0.4427 13.1 0.2257065 0.2590993 0.5151942
  • 経済悪化の認識の度合い (econ) の値ごとの Perot, Bush, Clinton それぞれの平均予測確率は異なる
    → 可視化するため、wide 形式のデータを long 形式のデータに melt 関数を使って変換し lpp と名前を付ける
## melt data set to long for ggplot2
lpp <- melt(pp.econ, 
            id.vars = "econ", 
            value.name = "probability")
  • 変換したデータを表示させる
DT::datatable(lpp)
  • 変数 variable の値を確認する
unique(lpp$variable)
[1] repub   dem     edu     Perot   Bush    Clinton
Levels: repub dem edu Perot Bush Clinton
  • dem, edu は使わないのでドロップする
lpp <- lpp %>% 
  dplyr::filter(variable !="repub") %>% 
  dplyr::filter(variable !="dem") %>% 
  dplyr::filter(variable !="edu") 
DT::datatable(lpp)
theme_set(theme_bw(base_family = "HiraKakuProN-W3"))
## plot predicted probabilities across Margin values for each level of pcr
## facetted by program type
line_repub <- ggplot(lpp, 
                   aes(x = econ, 
                       y = probability, 
                       color = variable)) + 
  geom_line() + 
  labs(x = "経済悪化の認識", 
       y = "投票",
       fill = "候補者") +
  ggtitle("経済悪化の認識が投票に与える影響: 1992年米國大統領選挙")

line_repub

結果の解釈 ・経済の悪化を認識している人ほど現職の大統領である Bush に投票しない
・経済の悪化を認識している人ほど野党候補者である Clinton に投票する

→ 経済状況認識の悪化は現職大統領への投票を妨げ、野党候補者への投票を促進する

3.2.2 共和党・民主党支持者ごとの投票  

  • 次に、経済悪化の認識の度合い (econ) を 1(最善)から 3(最悪)に 1 単位ずつ変化させた時の「共和党支持者と民主党支持者ごとの」平均予測確率を可視化する
  • データフレーム (decon_2) を作る
decon_2 <- data.frame(repub = rep(c("0", "1"), each = 9), 
                     econ = rep(c(1:3), 3)) %>%
  mutate(dem = 0.4427,
         edu = 13.1,
         repub = as.numeric(repub)) # 平均値を指定しないことに注意
DT::datatable(decon_2)
## store the predicted probabilities for each value of pcr and Margin  
pp.econ_2 <- cbind(decon_2, 
                  predict(model_1, 
                          newdata = decon_2, 
                          type = "probs", 
                          se = TRUE))
pp.econ_2
   repub econ    dem  edu     Perot      Bush    Clinton
1      0    1 0.4427 13.1 0.1641394 0.5026687 0.33319187
2      0    2 0.4427 13.1 0.1937695 0.3278652 0.47836528
3      0    3 0.4427 13.1 0.2025416 0.1893498 0.60810852
4      0    1 0.4427 13.1 0.1641394 0.5026687 0.33319187
5      0    2 0.4427 13.1 0.1937695 0.3278652 0.47836528
6      0    3 0.4427 13.1 0.2025416 0.1893498 0.60810852
7      0    1 0.4427 13.1 0.1641394 0.5026687 0.33319187
8      0    2 0.4427 13.1 0.1937695 0.3278652 0.47836528
9      0    3 0.4427 13.1 0.2025416 0.1893498 0.60810852
10     1    1 0.4427 13.1 0.1194127 0.7945580 0.08602932
11     1    2 0.4427 13.1 0.1800987 0.6621042 0.15779711
12     1    3 0.4427 13.1 0.2440938 0.4958077 0.26009847
13     1    1 0.4427 13.1 0.1194127 0.7945580 0.08602932
14     1    2 0.4427 13.1 0.1800987 0.6621042 0.15779711
15     1    3 0.4427 13.1 0.2440938 0.4958077 0.26009847
16     1    1 0.4427 13.1 0.1194127 0.7945580 0.08602932
17     1    2 0.4427 13.1 0.1800987 0.6621042 0.15779711
18     1    3 0.4427 13.1 0.2440938 0.4958077 0.26009847
  • 民主党支持者と共和党支持者ごとの Perot, Bush, Clinton への平均予測確率を計算して表示させてみる
by(pp.econ_2[, 5:7], pp.econ_2$repub, colMeans)  
pp.econ_2$repub: 0
    Perot      Bush   Clinton 
0.1868169 0.3399612 0.4732219 
------------------------------------------------------------ 
pp.econ_2$repub: 1
    Perot      Bush   Clinton 
0.1812018 0.6508233 0.1679750 
  • 非共和党支持者 (repub = 0) よりも共和党支持者 (repub = 1) の方が Bush に投票する (65.1% vs 34%)

  • 共和党支持者 (repub = 1) よりも共和党支持者 (repub = 0) の方が Clinton に投票する (47.3% vs 16.8%)

  • 経済悪化の認識の度合い (econ) の値ごとの Perot, Bush, Clinton それぞれの平均予測確率は異なる
    → 可視化するため、wide 形式のデータを long 形式のデータに melt 関数を使って変換し lpp_2 と名前を付ける

## melt data set to long for ggplot2
lpp_2 <- melt(pp.econ_2, 
            id.vars = c("repub", "econ"), # repub と econ の二つの変数を残す  
            value.name = "probability")
unique(lpp_2$variable)
[1] dem     edu     Perot   Bush    Clinton
Levels: dem edu Perot Bush Clinton
  • dem, edu は使わないのでドロップする
lpp_2 <- lpp_2 %>% 
  dplyr::filter(variable !="dem") %>% 
  dplyr::filter(variable !="edu")
DT::datatable(lpp_2)
theme_set(theme_bw(base_family = "HiraKakuProN-W3"))
## plot predicted probabilities across Margin values for each level of pcr
## facetted by program type
line_repub_2 <- ggplot(lpp_2, 
                   aes(x = econ, 
                       y = probability, 
                       colour = variable)) +
  facet_grid(repub ~., scales = "free") +
  geom_line() + 
  labs(x = "経済悪化の認識", 
       y = "投票確率",
       fill = "候補者") +
  ggtitle("経済悪化の認識が投票に与える影響(共和党支持=1):92年米国大統領選挙")

line_repub_2

結果の解釈 ・経済状況認識の悪化は現職大統領への投票を妨げ、野党候補者への投票を促進する傾向は支持政党別に見ても確認できる
・共和党支持者 (1) と比べると、非共和党支持者 (0) の方がクリントンへの投票確率が高い
・非共和党支持者 (0) と比べると、共和党支持者 () の方がブッシュへの投票確率が高い

4. Multinominal Probit Model

  • 多項プロビットを行うために必要なパッケージ (MNP) をロードする
library(MNP)
model_2 <- mnp(as.factor(vote) ~ econ + 
                repub + 
                dem + 
                edu, 
              data = anes)
summary(model_2)

Call:
mnp(formula = as.factor(vote) ~ econ + repub + dem + edu, data = anes)


Coefficients:
                         mean  std.dev.      2.5%  97.5%
(Intercept):Bush     0.783831  0.436876  0.030191  1.706
(Intercept):Clinton -0.438091  0.569316 -1.640787  0.522
econ:Bush           -0.365981  0.153291 -0.679231 -0.114
econ:Clinton         0.243452  0.156397 -0.023275  0.578
repub:Bush           0.630262  0.268810  0.183406  1.156
repub:Clinton       -0.766057  0.322686 -1.380980 -0.148
dem:Bush            -0.506920  0.278020 -1.013459 -0.001
dem:Clinton          0.801020  0.286052  0.260367  1.309
edu:Bush             0.003215  0.021928 -0.038680  0.052
edu:Clinton         -0.017639  0.021607 -0.065060  0.021

Covariances:
                   mean std.dev.    2.5% 97.5%
Bush:Bush        0.9809   0.5123  0.1630 1.794
Bush:Clinton    -0.1564   0.3970 -0.9052 0.527
Clinton:Clinton  1.0191   0.5123  0.2062 1.837

Base category: Perot
Number of alternatives: 3
Number of observations: 786
Number of estimated parameters: 12
Number of stored MCMC draws: 5000
  • 多項ロジットとほぼ同様の結果が得られた
pres_mlogit

参考文献
  • 飯田健『計量政治分析』共立出版、2013年.
  • 宋財泫 (Jaehyun Song)・矢内勇生 (Yuki Yanai)「私たちのR: ベストプラクティスの探究」
  • 浅野正彦, 矢内勇生.『Rによる計量政治学』オーム社、2018年
  • 浅野正彦, 中村公亮.『初めてのRStudio』オーム社、2018年
  • Winston Chang, R Graphics Cookbook, O’Reilly Media, 2012.
  • Kieran Healy, DATA VISUALIZATION, Princeton, 2019
  • Kosuke Imai, Quantitative Social Science: An Introduction, Princeton University Press, 2017