社会科学における因果推論

5/ Lab session

宋財泫(関西大学)

1 本日の内容

本日の内容

  1. Rの導入(省略)
  2. データハンドリング
  3. 可視化
  4. 記述統計量の計算
  5. 平均処置効果の推定
    • 線形回帰分析
    • 多重比較
  6. 推定結果の可視化

2 データ操作

データ操作の手順

  1. データの読み込み
  2. 欠損値処理

パイプ演算子

行・列の抽出

  • 列の抽出:select()
    • 列名の変更:rename()
    • 列の位置変更:relocate()
  • 行の抽出:filter()

3 可視化

{ggplot2}の考え方

4 記述統計

記述統計量

必ず分析に使用するデータの記述統計量を報告すること

  • 分析に使われるケース(個体)、変数のみで十分
  • 分析に使われないケース(個体)、クリーニング前の変数は載せない。
  • よく使う記述統計量は平均値標準偏差最小値最大値
    • 中央値も入れるとなおさら良い
  • 実験データの場合、グループごとに掲載する場合もあるが、別途バランスチェックを行うなら不要

記述統計表の例

Mean Median Std.Dev Min Max
treat 0.301 0.000 0.459 0.000 1.000
educ 10.269 11.000 2.628 0.000 18.000
black 0.396 0.000 0.489 0.000 1.000
hispan 0.117 0.000 0.322 0.000 1.000
white 0.487 0.000 0.500 0.000 1.000
re74 4,557.547 1,042.330 6,477.964 0.000 35,040.070
re75 2,184.938 601.548 3,295.679 0.000 25,142.240
re78 6,792.834 4,759.019 7,470.731 0.000 60,307.930
変数名 平均値 中央値 標準偏差 最小値 最大値
女性 0.503 1 0.500 0 1
年齢 47.340 47 15.628 18 75
投票有無
 投票 0.736 1 0.441 0 1
 棄権 0.229 0 0.420 0 1
 参政権なし 0.035 0 0.184 0 1
感情温度
 自民党 41.130 50 28.015 0 100
 立憲民主党 34.248 40 25.947 0 100

記述統計量の計算方法

  • 方法1:R内蔵関数を利用する
    • mean()median()sd()min()max()
    • {dplyr}のsummarise()との組み合わせが効率的
    • 複数の変数の記述統計量を計算する場合、更にacross()と組み合わせるか、別途のパッケージ({summarytools}など)を使った方が効率的
  • 方法2:{summarytools}のdescr()を利用する(推奨

バランスチェック

{cobalt}パッケージのbal.tab()を利用した標準化平均差の計算

Balance Measures
               Type Diff.Un     M.Threshold.Un
age         Contin. -0.2419 Not Balanced, >0.1
educ        Contin.  0.0448     Balanced, <0.1
race_black   Binary  0.6404 Not Balanced, >0.1
race_hispan  Binary -0.0827     Balanced, <0.1
race_white   Binary -0.5577 Not Balanced, >0.1
married      Binary -0.3236 Not Balanced, >0.1
re74        Contin. -0.5958 Not Balanced, >0.1
re75        Contin. -0.2870 Not Balanced, >0.1

Balance tally for mean differences
                   count
Balanced, <0.1         2
Not Balanced, >0.1     6

Variable with the greatest mean difference
   Variable Diff.Un     M.Threshold.Un
 race_black  0.6404 Not Balanced, >0.1

Sample sizes
    Control Treated
All     429     185

バランスチェック(可視化)

bal.tab() + love.plot()を利用した可視化

4 推定

線形回帰モデル

lm(formula, data, weights)
  • formula結果変数 ~ 説明変数1 + 説明変数2 + ...
  • data:結果変数および説明変数が格納されているデータフレーム名
    • パイプ演算子を使用する場合、データフレーム名 |> lm(formula, data = _)
  • weights:重み付け回帰分析の場合、重み変数の列名

処置効果

予測値

限界効果

5 可視化

棒グラフ

  • 幾何オブジェクト:geom_bar()、またはgeom_col()
  • マッピング
    • 必須:xy
    • その他:fillなど

点―範囲グラフ

  • 幾何オブジェクト:geom_pointrange()
  • マッピング
    • 必須:xyyminymax(または、xxminxmaxy
    • その他:coloralphashpaeなど