井出草平の研究ノート

タイタニック・データを用いた媒介分析[Mplus]

タイタニック・データを用いて名義変数の媒介項、2値の従属変数(アウトカム)の媒介分析を行う。アウトカムが2値なので2項ロジスティック回帰分析の一種である。

タイタニック・データの分析に意味があるわけではなく、あくまでも例題である。分析はMplusで行うがデータはRのパッケージに含まれているデータを利用するため、まずはRから始める。

タイタニックのデータを読み込む

Rのデータセットにはタイタニックは存在するが、ケース数が少ないので、titanicパッケージからデータを利用する。

library(titanic)
knitr::kable(head(titanic_train))
df1 <-titanic_train

f:id:iDES:20201011004155p:plain

どこまでの現実のデータと同じなのかは分からないが、よく見るタイタニックデータより詳細なデータが含まれている。

Mplusのデータ形式に変換する

RとMplusの連携はこちらで解説をした方法を使う。

ides.hatenablog.com

library(MplusAutomation)
variable.names(df1) # 変数名を書き出し

Mplusの扱うデータは数字でないといけないので、性別(文字型)を数字にリコードしておく。

library(memisc) # memisicパッケージの読み込み。
df1$Sex <- memisc::recode(df1$Sex, 1 <- "male", 2<-"female") #リコード
df1$Sex <- as.numeric(as.character(df1$Sex)) # 一度文字型に変更してから数値型に変更する
str(df1)

Mplus用のデータを書き出し。

prepareMplusData(df1, filename="titanic.dat", 
                keepCols=c("Survived","Pclass","Sex","Age","Fare"),
                overwrite=T)

以上までがRでの作業である。

シンプルなモデル

f:id:iDES:20201010233445p:plain

fare: 運賃
pclass: 客室等級, 3値, 1等216名/ 2等184名/ 3等491名
survived: 生死, 2値, 1:生存/ 0:死亡

アウトカムはSurvivedで生死である。Pclassは客室等級である。馴染みのあるタイタニックデータには乗務員のデータもあったが、このデータは客のデータだけである。Fareは賃料であり、客室等級に比例していると予想できる。

コード

TITLE:     Binomial Logistic Regression Analysis with a Noninal Mediator 
           using Titanic Data

DATA:      FILE = titanic.dat;
           LISTWISE = ON;

VARIABLE:  NAMES = Survived Pclass Sex Age Fare;
           USEVARIABLES  = Survived Pclass Fare;
           MISSING = .;
           CATEGORICAL = Survived Pclass;

ANALYSIS:  ESTIMATOR = ML;
           BOOTSTRAP = 10000;

MODEL:     Survived on Pclass Fare;
           Pclass on Fare;
MODEL INDIRECT: Survived ind Pclass Fare;

OUTPUT:    CINTERVAL(BOOTSTRAP);
PLOT:      TYPE = PLOT3;

結果

推定値。

MODEL RESULTS

                                                    Two-Tailed
                    Estimate       S.E.  Est./S.E.    P-Value

 SURVIVED   ON
    PCLASS            -0.684      0.109     -6.277      0.000
    FARE               0.006      0.003      2.136      0.033

 PCLASS     ON
    FARE              -0.083      0.008    -11.114      0.000

 Thresholds
    SURVIVED$1        -0.213      0.204     -1.044      0.296
    PCLASS$1          -3.685      0.195    -18.940      0.000
    PCLASS$2          -2.004      0.138    -14.541      0.000

Fare→Survivedが直接効果である。P=0.033で5%有意であり、直接効果は残っている。

間接効果。

                                                    Two-Tailed
                    Estimate       S.E.  Est./S.E.    P-Value

Effects from FARE to SURVIVED

  Tot natural IE       0.002      0.000      5.985      0.000
  Pure natural DE      0.001      0.000      2.225      0.026
  Total effect         0.003      0.000      7.546      0.000

推定値は0.002でP=0.000なので弱いながらも間接効果があることが分かる。

直接効果、間接効果ともにある分析結果であった。

余談

www6.nhk.or.jp

タイタニックはなぜ沈没したのか? 出航前に船倉部の石炭庫で火災が発生し、鎮火せぬまま航海を続けたのが原因とする説を、豪華客船や乗組員の動きをCGで再現しつつ検証。

わりと面白かったドキュメンタリー。