1 Overview

Miller, Saunders, and Farhart (AJPS 2016) [Open access]

Question. イデオロギーに動機付けられた陰謀論(例:保守派が好む陰謀論)を支持するのはどのような人々か?

この論文では政治的な要因に焦点を当てサーベイデータを用いた実証分析を行う.

1.1 Data

Data in Harvard Dataverse

分析プログラム(Stata, .do)とデータ(Stata, .dta)は Creative Commons CC0 ライセンスで配布されている.

授業の履修者は Moodle から Miller2016_MTurk.dta (元ファイル:MTurk.dta)をダウンロード可能.

注:MTurk (Mechanical Turk) はAmazonが提供するクラウドソーシングサービスで,オンライン調査(アンケート)などが可能.

意欲のある履修者向けの宿題(提出不要):論文で使用しているもう一方のデータセット (American National Election Study, ANES) で以下と同様の分析をする.

setwd("c://ws_stat")
library(tidyverse)
cons <- haven::read_dta("Miller2016_MTurk.dta")
# str(cons)

主な変数:

  • 自認する立場
    • Conservative: dummy variable for self-identified as conservative
  • 陰謀論をどの程度信じているか
    • conspiracy1: Conspiracy: Obama was not born in the U.S.
    • conspiracy3: Conspiracy: Government knew about 9/11 prior to attacks
    • con_index_rep2: Conservative conspiracy index
    • con_index_dem4: Liberal conspiracy index
    • negdemindex: -1 × (Liberal conspiracy index)
  • 回答者の知識・態度
    • polknow_alt: political knowledge index (例:ロシアの大統領の名前を正答できるか)
    • trust_comb: trust index (連邦政府やメディアが正しいことを行っていると信頼するか)
summary(cons[, c("con_index_rep2", "polknow_alt", "trust_comb")])
##  con_index_rep2     polknow_alt       trust_comb    
##  Min.   :0.00000   Min.   :0.0000   Min.   :0.0000  
##  1st Qu.:0.08333   1st Qu.:0.4286   1st Qu.:0.2500  
##  Median :0.25000   Median :0.6429   Median :0.4167  
##  Mean   :0.28333   Mean   :0.5995   Mean   :0.3857  
##  3rd Qu.:0.41667   3rd Qu.:0.7857   3rd Qu.:0.5000  
##  Max.   :1.00000   Max.   :1.0000   Max.   :1.0000  
##  NA's   :93                         NA's   :136
table(cons$Conservative)  # frequency distribution table 
## 
##    0    1 
## 1514  689
table(cons$conspiracy1)
## 
##                 0 0.333333343267441 0.666666686534882                 1 
##              1797               670               357               158
table(cons$conspiracy3)
## 
##                 0 0.333333343267441 0.666666686534882                 1 
##               622              1080               892               363
summary(cons$age)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##   18.00   25.00   30.00   34.29   41.00   81.00     261
table(cons$female)
## 
##    0    1 
## 1190 1633

注:Stata では . が欠損値を表すが,read_dta で読み込むと NA として認識される.

.dta ファイルに含まれていた変数のラベルは以下のように確認できる(ただし,ラベルが長すぎてRに読み込む際に途中で切れてしまっている).

attr(cons$Conservative, "label")
## [1] "Conservative Dummy without Moderates: Recode of ideo7"
attr(cons$con_index_rep2, "label")
## [1] "Conservative Conspiracy Index (Avg of conspiracy1 conspiracy2 conspiracy7 conspi"

諸事情により(交互作用項の効果を描画するため)ラベルを短くしておく.

attr(cons$Conservative, "label") <- "Self-identified Ideology"
attr(cons$con_index_rep2, "label") <- "Conservative Conspiracy Index"
attr(cons$con_index_dem4, "label") <- "Liberal Conspiracy Index"

2 Hypothesis 1 / 仮説1:保守派はリベラル派よりもイデオロギー的に一貫した陰謀を支持する

2.1 Descriptive evidence (Table 1)

保守派はリベラル派よりも「保守層が好む陰謀論」を支持し,その逆にリベラル派は保守派よりも「リベラル層が好む陰謀論」を支持する.

ポイントはその程度の差. 保守派とリベラル派の「保守派が好む陰謀論」の支持率の差が大きく,保守派とリベラル派の「リベラル派が好む陰謀論」の支持率の差が小さいなら,仮説1は支持される.

2.1.1 Descriptive statistics

conservative_conspiracy: 「保守層が好む陰謀論」の支持率の平均 ― 保守派 vs. リベラル派

liberal_conspiracy: 「リベラル層が好む陰謀論」の支持率の平均 ― 保守派 vs. リベラル派

cons %>%
  group_by(Conservative) %>%
  summarise(conservative_conspiracy = mean(con_index_rep2, na.rm = TRUE),
            liberal_conspiracy = mean(con_index_dem4, na.rm = TRUE))
## # A tibble: 3 × 3
##   Conservative      conservative_conspiracy liberal_conspiracy
##   <dbl+lbl>                           <dbl>              <dbl>
## 1  0 [Liberal]                        0.188              0.500
## 2  1 [Conservative]                   0.447              0.334
## 3 NA                                  0.323              0.470

合成されたインデックスの差は,「保守派が好む陰謀論」では 0.19 - 0.45 = -0.26,「リベラル派が好む陰謀論」では 0.50 - 0.33 = 0.17 なので,仮説1とは整合している.

2.1.2 Test

Stata: ttest conspiracy1, by(Conservative) level(95) unequal etc.

保守派とリベラル派の「保守派が好む陰謀論」の支持率の差の検定.

t.test(conspiracy1 ~ Conservative, data = cons)  # Obama 
## 
##  Welch Two Sample t-test
## 
## data:  conspiracy1 by Conservative
## t = -22.968, df = 958.13, p-value < 2.2e-16
## alternative hypothesis: true difference in means between group 0 and group 1 is not equal to 0
## 95 percent confidence interval:
##  -0.3345162 -0.2818512
## sample estimates:
## mean in group 0 mean in group 1 
##      0.09259259      0.40077633
t.test(con_index_rep2 ~ Conservative, data = cons)  # index 
## 
##  Welch Two Sample t-test
## 
## data:  con_index_rep2 by Conservative
## t = -29.458, df = 1109.9, p-value < 2.2e-16
## alternative hypothesis: true difference in means between group 0 and group 1 is not equal to 0
## 95 percent confidence interval:
##  -0.2767355 -0.2421732
## sample estimates:
## mean in group 0 mean in group 1 
##       0.1877800       0.4472344

保守派とリベラル派の「リベラル派が好む陰謀論」の支持率の差の検定.

t.test(conspiracy3 ~ Conservative, data = cons)  # 9/11 
## 
##  Welch Two Sample t-test
## 
## data:  conspiracy3 by Conservative
## t = 0.84234, df = 1224.1, p-value = 0.3998
## alternative hypothesis: true difference in means between group 0 and group 1 is not equal to 0
## 95 percent confidence interval:
##  -0.01682104  0.04213250
## sample estimates:
## mean in group 0 mean in group 1 
##       0.4337084       0.4210526
t.test(con_index_dem4 ~ Conservative, data = cons)  # index 
## 
##  Welch Two Sample t-test
## 
## data:  con_index_dem4 by Conservative
## t = 16.925, df = 1103.4, p-value < 2.2e-16
## alternative hypothesis: true difference in means between group 0 and group 1 is not equal to 0
## 95 percent confidence interval:
##  0.1467243 0.1852054
## sample estimates:
## mean in group 0 mean in group 1 
##       0.4997430       0.3337781

2.2 Formal test: Regression (Table 2)

個人属性(年齢,性別,人種,所得,政治に関する知識,etc.)を制御したもとで,保守派かどうかが「保守派が好む陰謀論」に与える影響と,保守派かどうかが「リベラル派が好む陰謀論」に与える影響の大きさを比べる.

影響の大きさは回帰式の回帰係数として定量化する.

\[ \mbox{Conservative conspiracy} = \beta_0 + \beta_1 \mbox{Self-identified as conservative} + \beta_2 \mbox{Political knowledge} + \beta_3 \mbox{Trust} + \cdots \]

懸念:教育や所得など bad control となっている可能性のある変数がコントロールに含まれる.

Stata: reg con_index_rep2 Conservative polknow_alt ... etc.

lm_cons <- lm(con_index_rep2 ~ Conservative + polknow_alt + trust_comb + extraversion + agreeableness + conscientiousness + emostab + openness + auth + efficacy + needcog_comb + needeval_comb_alt + ideo_extr + fed_power + religiosity + educ_alt + income + female + age_alt + latino + white, data = cons)
# summary(lm_cons)
lm_lib <- lm(con_index_dem4 ~ Conservative + polknow_alt + trust_comb + extraversion + agreeableness + conscientiousness + emostab + openness + auth + efficacy + needcog_comb + needeval_comb_alt + ideo_extr + fed_power + religiosity + educ_alt + income + female + age_alt + latino + white, data = cons)
# summary(lm_lib)

推定結果(一部の変数のみ)をまとめて表示する.

# install.packages("modelsummary")  # run only the first time 
library(modelsummary)
msummary(list(lm_cons, lm_lib), gof_omit = "AIC|BIC|Log.Lik.|F|RMSE", 
         stars = TRUE, coef_omit = c(5:16, 21:22))
 (1)   (2)
(Intercept) 0.200*** 0.721***
(0.030) (0.034)
Conservative 0.208*** -0.177***
(0.009) (0.010)
polknow_alt -0.177*** -0.120***
(0.021) (0.024)
trust_comb -0.076** -0.300***
(0.027) (0.030)
educ_alt -0.054*** -0.023
(0.014) (0.015)
income 0.016 -0.058***
(0.013) (0.014)
female 0.013 0.003
(0.008) (0.009)
age_alt 0.022 0.060**
(0.020) (0.022)
Num.Obs. 1951 1951
R2 0.449 0.284
R2 Adj. 0.443 0.276
+ p < 0.1, * p < 0.05, ** p < 0.01, *** p < 0.001

Conservative ダミーの回帰係数は,「保守派が好む陰謀論」をアウトカムとした場合の方が大きい.

注:論文では Seemingly Unrelated Regression と呼ばれる分析手法を用いて Conservative ダミーの回帰係数の大きさを統計的に比較している.

3 Hypothesis 2 / 仮説2:知識が豊富なほどイデオロギー的に一貫した陰謀を支持する

イデオロギーと知識の交互作用項(交差項)を導入する.

\[ \mbox{Conservative conspiracy} = \beta_0 + \beta_1 \mbox{Self-identified as conservative} + \beta_2 \mbox{Political knowledge} \\ + \beta_3 \mbox{Self-identified as conservative} \times \mbox{Political knowledge} + \beta_4 \mbox{Trust} + \cdots \]

Stata: reg con_index_rep2 i.Conservative##c.polknow_alt trust_comb ... etc.

w*z で「w + z + w×z」が説明変数として加えられる.

w:z は「w×z」に対応する. つまり w*zw + z + w:z は同じ.

lm_cons_h2 <- lm(con_index_rep2 ~ Conservative + polknow_alt + Conservative:polknow_alt + trust_comb + extraversion + agreeableness + conscientiousness + emostab + openness + auth + efficacy + needcog_comb + needeval_comb_alt + ideo_extr + fed_power + religiosity + educ_alt + income + female + age_alt + latino + white, data = cons)
# summary(lm_cons_h2)
lm_lib_h2 <- lm(con_index_dem4 ~ Conservative + polknow_alt + Conservative:polknow_alt + trust_comb + extraversion + agreeableness + conscientiousness + emostab + openness + auth + efficacy + needcog_comb + needeval_comb_alt + ideo_extr + fed_power + religiosity + educ_alt + income + female + age_alt + latino + white, data = cons)
# summary(lm_lib_h2)

推定結果(一部の変数のみ)をまとめて表示する.

msummary(list(lm_cons_h2, lm_lib_h2), gof_omit = "AIC|BIC|Log.Lik.|F|RMSE", 
         stars = TRUE, coef_omit = c(5:16, 21:22))
 (1)   (2)
(Intercept) 0.292*** 0.659***
(0.031) (0.035)
Conservative -0.030 -0.018
(0.027) (0.030)
polknow_alt -0.296*** -0.042
(0.024) (0.027)
trust_comb -0.067* -0.306***
(0.027) (0.030)
educ_alt -0.057*** -0.021
(0.014) (0.015)
income 0.011 -0.054***
(0.013) (0.014)
female 0.017* 0.001
(0.008) (0.009)
age_alt 0.022 0.060**
(0.020) (0.022)
Conservative × polknow_alt 0.362*** -0.241***
(0.038) (0.043)
Num.Obs. 1951 1951
R2 0.474 0.295
R2 Adj. 0.468 0.287
+ p < 0.1, * p < 0.05, ** p < 0.01, *** p < 0.001

知識によってイデオロギーの効果がどのように異なるかを可視化する(Figure 1).

Stata: marginsplot ect.

# install.packages("sjPlot")
library(sjPlot)
plot_model(model = lm_cons_h2, type = "pred", terms = c("polknow_alt", "Conservative"), ci.lvl = 0.95)

plot_model(model = lm_lib_h2, type = "pred", terms = c("polknow_alt", "Conservative"), ci.lvl = 0.95)

知識が豊富なほどイデオロギーに一貫した陰謀論をより支持する現象は,保守層でのみ確認される.

注:論文のFigure 1とは信頼区間が僅かに異なる.

4 Hypothesis 3 / 仮説3:イデオロギーに一貫した知識の交互作用効果が信頼によって消える

本演習では省略するが,3要因の交互作用項を用いることで分析する.

Stata: reg con_index_rep2 i.Conservative##c.trust_comb##c.polknow_alt ... etc.

R:

lm_cons_h3 <- lm(con_index_rep2 ~ Conservative*polknow_alt*trust_comb + extraversion + agreeableness + conscientiousness + emostab + openness + auth + efficacy + needcog_comb + needeval_comb_alt + ideo_extr + fed_power + religiosity + educ_alt + income + female + age_alt + latino + white, data = cons)
summary(lm_cons_h3)

.