Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
因子分析(仮)
Search
Ringa_hyj
January 06, 2021
Science
0
150
因子分析(仮)
因子分析について
変数の背景に別の関係性があることを仮定して推定する方法
Ringa_hyj
January 06, 2021
Tweet
Share
More Decks by Ringa_hyj
See All by Ringa_hyj
DVCによるデータバージョン管理
ringa_hyj
0
120
deeplakeによる大規模データのバージョン管理と深層学習フレームワークとの接続
ringa_hyj
0
67
Hydraを使った設定ファイル管理とoptunaプラグインでのパラメータ探索
ringa_hyj
0
99
ClearMLで行うAIプロジェクトの管理(レポート,最適化,再現,デプロイ,オーケストレーション)
ringa_hyj
0
97
Catching up with the tidymodels.[Japan.R 2021 LT]
ringa_hyj
3
840
多次元尺度法MDS
ringa_hyj
0
290
階層、非階層クラスタリング
ringa_hyj
0
120
tidymodels紹介「モデリング過程料理で表現できる説」
ringa_hyj
0
440
深層学習をつかった画像スタイル変換の話と今までの歴史
ringa_hyj
0
430
Other Decks in Science
See All in Science
機械学習 - K-means & 階層的クラスタリング
trycycle
PRO
0
1k
NASの容量不足のお悩み解決!災害対策も兼ねた「Wasabi Cloud NAS」はここがスゴイ
climbteam
0
120
機械学習 - ニューラルネットワーク入門
trycycle
PRO
0
840
機械学習 - DBSCAN
trycycle
PRO
0
1k
システム数理と応用分野の未来を切り拓くロードマップ・エンターテインメント(スポーツ)への応用 / Applied mathematics for sports entertainment
konakalab
1
390
データベース12: 正規化(2/2) - データ従属性に基づく正規化
trycycle
PRO
0
960
深層学習を用いた根菜類の個数カウントによる収量推定法の開発
kentaitakura
0
180
AIに仕事を奪われる 最初の医師たちへ
ikora128
0
960
2025-06-11-ai_belgium
sofievl
1
150
サイゼミ用因果推論
lw
1
7.5k
Explanatory material
yuki1986
0
400
「美は世界を救う」を心理学で実証したい~クラファンを通じた新しい研究方法
jimpe_hitsuwari
1
160
Featured
See All Featured
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.9k
For a Future-Friendly Web
brad_frost
180
9.9k
How to train your dragon (web standard)
notwaldorf
96
6.2k
Reflections from 52 weeks, 52 projects
jeffersonlam
352
21k
Designing Experiences People Love
moore
142
24k
[RailsConf 2023] Rails as a piece of cake
palkan
57
5.8k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
44
2.5k
Six Lessons from altMBA
skipperchong
28
4k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
51
5.6k
Statistics for Hackers
jakevdp
799
220k
Building an army of robots
kneath
306
46k
Rails Girls Zürich Keynote
gr2m
95
14k
Transcript
因子分析 相関というよりも、潜在因子を説明する・見つける方法
多次元のデータを少数次元へと変換する 主成分分析と同じような気持ち 発端となる手法は「共通因子分析モデル」であるところがPCAとの違い (思想は同じで発達が違う。ネアンデルタール人とホモサピエンスのような関係)
分析に使う変数はすべて0~1に正規化されたデータであるという前提を置く = ′ − ഥ ′ ′ 2 1 =
1 + 1 因子分析は(正規化された)データを以下のように変形させる。 添え字 iはデータ点ごとのインデックスである あるクラスの期末試験の点数一覧があるなら iさんの科目1の点数である 科目1のテストの難しさをa1で表現する 科目ごとのノイズeも足す ※個人の能力 fi と表し、これはほかの科目でも共通であるため、添え字はiだけである。
a j を因子負荷量 f i を共通因子 (別名:因子得点 独立であるという前提時には直交因子とも呼ぶ。 相関を含む場合には斜交因子と。) e
ij は独自因子 共通因子はデータ点ごとの固有の値であるが、分解して増やすこともできる。 その場合a jが増えるので解釈は難しくなる
データの相関の計算 ノイズであるeは独立であるはず e*e = 0 ノイズと共通因子は独立であるはず e*f = 0 以上の独立の過程を元に、相関を計算すると、
= − ҧ − ҧ 1 1 − ҧ 2 1 σ 1 − ҧ 2 正規化したデータであるため、平均は0である 残った部分を因子分析のモデルに当てはめるならば以下のようになる 1 1 = 1 1 + +
これは展開によって計算できる (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 + +
ノイズは期待値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 = 因子負荷量(列ベクトル) ↑ 独自因子
行列形式で簡便に記述すると以下のようになる = + 行列形式で簡便に記述すると以下のようになる 以降から、特に因子負荷量である列ベクトルAをΛ(らむだ) として記述する 多因子を考えたい場合(aを増やしたい)、因子負荷量ベクトルは、 変数j × 共通因子i
の行列となる。
因子負荷量の求め方 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 = + + + これらを使うと、因子負荷量は以下のように表現(計算)できる 重心法(セントロイド法)
あ
そもそも、サーストンの多因子モデルは、多因子(行列) になっただけ。 = + AでもΛでもどっちでもいい AA^t はランクmである この対角要素を「共通性」として扱う Tの対角要素を「独自性(固有性)」として扱う j番目の変数xjの変動のうち、
f ik は共通因子で説明できる量のことである。 fをいくつにするか(k=1 or more ?) という問題は、経験的に決めるか、仮説があってからkを決める。
あ
主因子法 = + AA^t = R – T ここで左式の対角成分が「共通性」であるのだから、 右辺の対角成分である、1-t^2
たちを計算することで求まるはず この右辺を「縮約相関係数行列」 とよぶ
p次元データにm因子(fがm個) を当てはめて求める場合を考える 以下、 R = pの相関行列 p*p L = 因子負荷量行列
p*m Φ = 対角が分散Φiである対角行列 p*p (共通因子で説明できないばらつき・特異性・独自性) 尤度関数はg(L,Φ)であり、これの最大化を考える
まずΦを求める 1-共通性によってノイズ行列 T が求まるはず 因子負荷量行列 L は、固有値・固有ベクトルとして求まる
主因子法 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以下とか) 止める。
あ
因子負荷量を解釈する 共通因子=2と仮定してモデルを作ったとする Λ = 2*3行列だったならば、これをΘだけ回転を加える。 cosΘ –sinΘ sinΘ cosΘ という行列をかける。
逆方向(-Θ)に開店させる場合 計算略 cosΘ sinΘ -sinΘ cosΘ
さらに、 G^t G = I となることから、直交行列であることが分かる つまり、ΛをG行列で回転させて得た時の Λ*G = Λ_hat
もまた、Λの推定量である。 では、どのような回転が最も良いのか? 理屈は不明だが、 バリマックス回転が良い回転であることが知られている。 が最大となるように回転角度を決める方法 = ා =1 1 2 2 − 1 2 2
あ
f の推定 =1~ − −1 − これを最小化するには、 = −1
−1−1 ※ Tは独自因子の分散行列である