表3.4と表3.5

浜中コードには、なぜか表3.4と表3.5が含まれていない。おそらくは浜中の教育的配慮–これまでの再現実験ができれば、この二つの表もすぐにできるはず、いや、やってごらんなさい–ということだと考えよう。

表3.4

この表は、2006年のデータを用いており、対象は「全て」「民主主義国」「独裁国家」の3種類。この3種類のグループの「報道の自由」を、「産油国」と「非産油国」で比較する(片側t検定)というもの。なお、ロスの分析では等分散が前提とされている。

ロスの分析を参照すると、「民主主義国」と「独裁国家」は“democracy_update”の値を利用している(0なら独裁国家、1なら民主主義国)。「報道の自由」は“press_freedom”の値を使用し、産油国と非産油国の区別はこれまで通り“oil_gas_value100”の値を使用する(0なら非産油国、1なら産油国)。

これらのデータを元に、コードを作成する。

1行目(「すべての国家」)のレプリケーション

library(dplyr)#パッケージの展開
press<-filter(x,year==2006)#2006年を抽出し、"press"に格納
t.test(press_freedom~oil_gas_value100,data = press,
       var.equal = T,alternative = "greater")

    Two Sample t-test

data:  press_freedom by oil_gas_value100
t = 2.4091, df = 167, p-value = 0.00854
alternative hypothesis: true difference in means is greater than 0
95 percent confidence interval:
 2.988371      Inf
sample estimates:
mean in group 0 mean in group 1 
       54.04386        44.50909 

結果はロスと一致する(ロスのp値は0.0085)。

2行目(「民主主義国」)のレプリケーション

まず、念のため「民主主義国」と「独裁国家」を区別する“democracy_update”の内容を確認する。

table(press$democracy_update)

 0  1 
74 97 

独裁国家数(74ヶ国)、民主主義国(97ヶ国)がそれぞれ0と1で表されている。

これを元に、グループ分けを行なってから民主主義国の片側t検定を実施する。

#グループ分け
press_d<-filter(press,democracy_update==1)#民主主義国を"press_d"に格納
press_a<-filter(press,democracy_update==0)#独裁国家を"press_a"に格納
#等分散を前提として片側t検定を実行
t.test(press_freedom~oil_gas_value100,data = press_d,
       var.equal = T,alternative = "greater")

    Two Sample t-test

data:  press_freedom by oil_gas_value100
t = -0.30431, df = 93, p-value = 0.6192
alternative hypothesis: true difference in means is greater than 0
95 percent confidence interval:
 -8.13901      Inf
sample estimates:
mean in group 0 mean in group 1 
          65.70           66.96 

このコードもロスの結果と一致する(ロスのp値は0.6192)。

3行目(「独裁国家」)のレプリケーション

t.test(press_freedom~oil_gas_value100,data=press_a,
       alternative = "greater",var.equal = T)

    Two Sample t-test

data:  press_freedom by oil_gas_value100
t = 2.4617, df = 72, p-value = 0.008113
alternative hypothesis: true difference in means is greater than 0
95 percent confidence interval:
 3.134068      Inf
sample estimates:
mean in group 0 mean in group 1 
           35.5            25.8 

このコードもロスの分析結果と一致する(ロスのp値は0.0081)。

表3.5(p.107) 財務情報の公共状況 2006年

この表は、2006年のデータをサンプルとして、「政府の収入に関する情報」と「政府の支出に関する情報」が産油国と非産油国で異なるのかどうか、マン・ホイットニー・ウィルコクソン検定を行った結果である。マン・ホイットニー・ウィルコクソン検定は、表3.3で使用したものである。「非産油国」と「産油国」を区別するのはこれまでと同様に“oil_gas_value100”の値(0で非産油国、1で産油国)で行う。「政府の収入に関する情報」は“rev_data”、「政府の支出に関する情報」は“Govt_cons_data”を用いている。

まず、マン・ホイットニー・ウィルコクソン検定を行う。2006年のデータ抽出については、表3.4で“press”オブジェクトに格納しているので、これを使用する。

#パッケージの読み込み
library(coin)
#1行目の検定
wilcox_test(rev_data~as.factor(oil_gas_value100),data=press)

    Asymptotic Wilcoxon-Mann-Whitney Test

data:  rev_data by as.factor(oil_gas_value100) (0, 1)
Z = 1.7463, p-value = 0.08076
alternative hypothesis: true mu is not equal to 0

このコードのp値は0.08076であり、これはロスの分析におけるp値(0.0808)と一致する。

#2行目の検定
wilcox_test(Govt_cons_data~as.factor(oil_gas_value100),data=press)

    Asymptotic Wilcoxon-Mann-Whitney Test

data:  Govt_cons_data by as.factor(oil_gas_value100) (0, 1)
Z = 0.21694, p-value = 0.8283
alternative hypothesis: true mu is not equal to 0

このコードもロスの分析結果と一致する(p値は共に0.8283)

表の数値の確認

表3.5には、「収入に関する情報」と「支出に関する情報」を公表している割合が、非産油国と産油国ごとに表記されている。この数値はマン・ホイットニー・ウィルコクソン検定では表示されない。このため、改めてRでこの数値を計算して確認する必要がある。

変数のデータ数を数えて表示する関数に“table()”がある。また、それを割合表示する“prop.table()”関数がある。ここでは、この二つの関数を使って、各項目の割合を表示する。

#1行目「政府の収入に関する情報」の数値
prop.table(table(press$rev_data,press$oil_gas_value100),margin = 2)
   
            0         1
  0 0.3596491 0.5000000
  1 0.6403509 0.5000000

行頭は“rev_data”(政府の収入に関する情報)を公表している(1)としていない(0)を、列頭はこれまでも用いてきた、産油国・非産油国を区別する“oil_gas_vaalue100”の0(非産油国)と1(産油国)を表している。

表3.5では「政府の収入に関する情報」を公表している国を表示しているため、上記の表では2行目を参照することになる。2行目の1列目(0、つまり非産油国)は64%であり、2列目(1、つまり産油国)は50%であるから、数値はロスの分析と一致する。

#2行目「政府の支出に関する情報」
prop.table(table(press$Govt_cons_data,press$oil_gas_value100),margin = 2)
   
             0          1
  0 0.09649123 0.10714286
  1 0.90350877 0.89285714

上記1行目と同様に、2行目を見ればいいので、非産油国で90%、産油国で89%であり、ロスの分析と一致する。