Upgrade to Pro — share decks privately, control downloads, hide ads and more …

因子分析(仮)

Ringa_hyj
January 06, 2021

 因子分析(仮)

因子分析について

変数の背景に別の関係性があることを仮定して推定する方法

Ringa_hyj

January 06, 2021
Tweet

More Decks by Ringa_hyj

Other Decks in Science

Transcript

  1. 因子分析
    相関というよりも、潜在因子を説明する・見つける方法

    View Slide

  2. 多次元のデータを少数次元へと変換する
    主成分分析と同じような気持ち
    発端となる手法は「共通因子分析モデル」であるところがPCAとの違い
    (思想は同じで発達が違う。ネアンデルタール人とホモサピエンスのような関係)

    View Slide

  3. 分析に使う変数はすべて0~1に正規化されたデータであるという前提を置く

    =

    ′ − ഥ





    2
    1
    = 1

    + 1
    因子分析は(正規化された)データを以下のように変形させる。
    添え字 iはデータ点ごとのインデックスである
    あるクラスの期末試験の点数一覧があるなら iさんの科目1の点数である
    科目1のテストの難しさをa1で表現する
    科目ごとのノイズeも足す
    ※個人の能力 fi と表し、これはほかの科目でも共通であるため、添え字はiだけである。

    View Slide

  4. a j を因子負荷量
    f i を共通因子
    (別名:因子得点
    独立であるという前提時には直交因子とも呼ぶ。
    相関を含む場合には斜交因子と。)
    e ij は独自因子
    共通因子はデータ点ごとの固有の値であるが、分解して増やすこともできる。
    その場合a jが増えるので解釈は難しくなる

    View Slide

  5. データの相関の計算
    ノイズであるeは独立であるはず e*e = 0
    ノイズと共通因子は独立であるはず e*f = 0
    以上の独立の過程を元に、相関を計算すると、

    =

    − ҧ



    − ҧ

    1

    1


    − ҧ

    2 1

    σ
    1

    − ҧ

    2
    正規化したデータであるため、平均は0である
    残った部分を因子分析のモデルに当てはめるならば以下のようになる
    1


    1



    =
    1


    1



    +


    +

    View Slide

  6. これは展開によって計算できる
    (AX+B)(CX+D) = AC X^2 + ADX + BCX + BD
    ここで、ノイズの期待値が0ならば、B,Dの関わる項は0になる。
    のこるはAC X^2
    共通因子であるf もまた、平均0,分散1であるので ←
    X^2は分散となり、1である。
    AC * 1 = aj * av
    が残る
    1


    1



    =
    1


    1



    +


    +

    View Slide

  7. ノイズは期待値0であり、分散をtと仮定する
    この場合、自己相関 r jj は
    aj ^2 + t j ^2 = 1
    となる。 ←
    分散共分散行列は
    1 12
    13
    21
    1 23
    31
    32
    1
    1
    2 + 1
    2 1
    2
    1
    3
    2
    1
    2
    2 + 2
    2 2
    3
    3
    1
    3
    2
    3
    2 + 3
    2


    1
    2
    2
    2
    3
    2
    +
    1
    2 0 0
    0 2
    2 0
    0 0 3
    2
    1
    2
    3
    1
    2
    3
    + diag 1
    22
    23
    2

    因子負荷量(列ベクトル) ↑
    独自因子

    View Slide

  8. 行列形式で簡便に記述すると以下のようになる
    = +
    行列形式で簡便に記述すると以下のようになる
    以降から、特に因子負荷量である列ベクトルAをΛ(らむだ) として記述する
    多因子を考えたい場合(aを増やしたい)、因子負荷量ベクトルは、
    変数j × 共通因子i の行列となる。

    View Slide

  9. 因子負荷量の求め方
    rank(ΛΛ^t) = 1 であるので
    ΛtΛ の二次小行列式が0である。 ← 1
    2 1
    2
    2
    1
    2
    2
    1
    2 2
    2 − 1
    2
    2
    1
    = 0

    ΛΛ^t の列和を t +i 総和をt ++ として表現する
    +
    = , +2
    + 3

    ++
    = , +2
    + 3
    2

    =
    +
    + +
    これらを使うと、因子負荷量は以下のように表現(計算)できる
    重心法(セントロイド法)

    View Slide


  10. View Slide

  11. そもそも、サーストンの多因子モデルは、多因子(行列) になっただけ。
    = + AでもΛでもどっちでもいい
    AA^t はランクmである
    この対角要素を「共通性」として扱う
    Tの対角要素を「独自性(固有性)」として扱う
    j番目の変数xjの変動のうち、
    f ik は共通因子で説明できる量のことである。
    fをいくつにするか(k=1 or more ?)
    という問題は、経験的に決めるか、仮説があってからkを決める。

    View Slide


  12. View Slide

  13. 主因子法
    = +
    AA^t = R – T
    ここで左式の対角成分が「共通性」であるのだから、
    右辺の対角成分である、1-t^2 たちを計算することで求まるはず
    この右辺を「縮約相関係数行列」 とよぶ

    View Slide

  14. p次元データにm因子(fがm個) を当てはめて求める場合を考える
    以下、
    R = pの相関行列 p*p
    L = 因子負荷量行列 p*m
    Φ = 対角が分散Φiである対角行列 p*p (共通因子で説明できないばらつき・特異性・独自性)
    尤度関数はg(L,Φ)であり、これの最大化を考える

    View Slide

  15. まずΦを求める
    1-共通性によってノイズ行列 T が求まるはず
    因子負荷量行列 L は、固有値・固有ベクトルとして求まる

    View Slide

  16. 主因子法
    step 1
    ΛΛ^t の相関行列の最大値を見つける。
    最大値のある列をj列とする
    ΛΛ^t のjj成分として代入する
    他の成分はそのまま
    step2
    step 1で得た対角行列の固有値と固有ベクトルを計算する。
    このとき、√固有値 * 固有ベクトル = 因子負荷量 ak
    である
    得られたakによる行列をΛ_hat とする。
    (akはp*mの行列であるはず)
    step3
    独自因子の分散は T = 1 – Σ ak^2 である
    求めたTをΛ_hat Λ_hat ^t の対角行列に代入し、再び固有値・固有ベクトルを求める
    Tの変化量が少なくなったら(二乗ノルムが0.0001以下とか) 止める。

    View Slide


  17. View Slide

  18. 因子負荷量を解釈する
    共通因子=2と仮定してモデルを作ったとする
    Λ = 2*3行列だったならば、これをΘだけ回転を加える。
    cosΘ –sinΘ
    sinΘ cosΘ
    という行列をかける。
    逆方向(-Θ)に開店させる場合
    計算略
    cosΘ sinΘ
    -sinΘ cosΘ

    View Slide

  19. さらに、 G^t G = I となることから、直交行列であることが分かる
    つまり、ΛをG行列で回転させて得た時の Λ*G = Λ_hat もまた、Λの推定量である。
    では、どのような回転が最も良いのか?
    理屈は不明だが、
    バリマックス回転が良い回転であることが知られている。
    が最大となるように回転角度を決める方法
    = ා
    =1

    1





    2 2

    1





    2
    2

    View Slide


  20. View Slide

  21. f の推定

    =1~


    −1

    これを最小化するには、

    = −1 −1−1
    ※ Tは独自因子の分散行列である

    View Slide