ページ

2016年8月5日金曜日

【R】 就業力尺度(PROG)についてグラフィカルモデリングで分析してみた(その4)



前回までで無向グラフ(UG)を使って予測を行うまで出来た。もうほとんど目的を達しているのだが、今回は有効グラフ(DAG)に挑戦してみる。

といっても、あれこれ試してみた結果、UGからDAGを自動的に推測することは、私の手に余る状況であった。そんなわけで、今回は「手で」DAGを構築し、それがUGと矛盾していないことを示すことにする。



方針はこんな感じだ。まず、外生変数を決めておく。ここでは性別sexと出身地uの二つを変数とする。これらは、回答者が自分では左右できない属性であるから。

外生変数を決めると、UGを見ながら外生変数から別の変数(e、dep、i)に矢印を付けていく。

更に矢印を伸ばしていく。しかし困ったことが起きる。i→cmpはすぐに確定するが、e→depとするべきか、dep→eとするべきか(あるいは両側矢印とするべきか)決まらない。とりあえず前者にしておくが、後者でも別に悪くはないと思う。こうして得られたのが冒頭の図である。

なお、sexとuの間は何も線を引いていない。

dag0 <- dag(~sex + e*sex*u + dep*sex*e + i*u + cmp*i)
dag0m <- gRbase::moralize(dag0)
上の1行目はDAGを一から定義しているところ。これで出来たdag0をplot関数で表示すれば冒頭の図が出来る。 2行目はDAGからモラルグラフというものを作成している。これは、与えられたDAGと矛盾しないUGを作り出す。その結果が下の図のようになる。これは前回得られた結果と同じである。

こんな風にUGと矛盾しないDAGを得ることは出来た。ただし、e→depとするべきか、dep→eとするべきか、は相変わらず分からない。

今回はここまでとしよう。