因果推論 のために、 相関関係による仮説の探索 を進めるのは、とてもポピュラーですが、期待通りにならないことはよくあります。
例えば、下図の時のように、Yの変数と相関の高い変数として、X1とX2の2つを見たところ、Yはどちらとも相関がなかったりします。
隠れ変数の探索は、このような時に役に立つことがあります。
「隠れ変数」というのはこのサイトの造語です。 隠れ変数は、 因子分析 で言うところの「潜在変数」の一種です。
因子分析では、潜在変数がいくつかあって、それがデータとして得られている変数の背後にあると考えます。
ここでいう隠れ変数というのは、 データとして得られている変数を見た時に、例えば、潜在変数がひとつあることは容易に推定できるものの、 実はもうひとつある時に、もうひとつの方は推定できない状況の時の、推定できない方の潜在変数のことです。
隠れ変数があれば、上の例の場合は、下図のようになります。 このグラフは、横軸が原因系と考えている変数で縦軸がYです。
この図を見ると、YとPC2という変数はとても相関が高いことがわかります。
PC2が隠れ変数です。
隠れ変数が見つかるのは、X1やX2という変数が、2つの変数が合成されたものになっている場合です。
隠れ変数が見えないのは、X1やX2の変数を見ている時に見えているのは、合成した変数の片方だけです。
例えば、X1の数値が「10」で、
10 = 9 + 1
という計算の結果、この数値ができているのなら、「9」の方の変数の方が見えているもので、「1」の方の変数は見えません。
隠れ変数が隠れていたのは、小さな影響しかないように、合成されていたためになります。
隠れ変数が見つかると「見つかった!」となりますが、その後のデータ分析は、なかなか難しいです。
Y、X1、X2と違って、隠れ変数は実際に測定して得られたものではなく、計算上、存在が推測される変数なためです。
「X1とX2に合成されて含まれて来るような要因は、実際には何があるのか?」、といったように、 メタ知識 を駆使する必要があります。
上記は、隠れ変数が見つかった場合ですが、上記の例は、 主成分分析 を使って、隠れ変数を見つけています。
主成分分析 の主成分は、合成変数です。 そのため、X1を合成変数と考えて、その要素として主成分を計算するのは、変な感じがしますが、 この方法で見つかりました。
独立成分分析 や 因子分析 でも見つけることができます。 どれが適しているかは、データの構造によるようです。
隠れ変数の話は、 二重測定による判別能力の向上 と似ているところがあります。
隠れ変数は、X1やX2が片方しかなかったら、見つけることができません。 少なくとも2つ以上の変数が必要です。
同じ現象について、同じようなデータが複数あると無駄な感じがしますが、隠れ変数は、このようなデータがないと見つからないです。
一般的なデータ分析では、 重回帰分析 がとても面倒になったり、データの解釈がややこしくなるので、 多重共線性 は、嫌われがちなデータの性質です。
しかし、隠れ変数は、多重共線性があるように見えるデータから得られるものです。
隠れ変数のような変数があったとしても、いつでも抽出できる訳ではないです。
まず、X1やX2に含まれる割合があまり小さ過ぎると、隠れ過ぎていて見えないです。
また、X1やX2への含まれる割合が同じ場合も、見つかりにくくなります。
実施例では、Yの変数はデータから分けてから、主成分分析や独立成分分析をするようになっています。
分けたデータから出てきた主成分とYを比べる方法が、一番見つけやすいです。 こうしないと、隠れ変数の影響が誤差にしか見えず、見落としやすくなるようです。
Rによる実施例としては、 Rによる隠れ変数の分析 のページがあります。
Pythonによる実施例としては、 Pythonによる隠れ変数の分析 のページがあります。
順路
次は
有向グラフになるデータの構造