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
120
因子分析(仮)
因子分析について
変数の背景に別の関係性があることを仮定して推定する方法
Ringa_hyj
January 06, 2021
Tweet
Share
More Decks by Ringa_hyj
See All by Ringa_hyj
DVCによるデータバージョン管理
ringa_hyj
0
14
deeplakeによる大規模データのバージョン管理と深層学習フレームワークとの接続
ringa_hyj
0
15
Hydraを使った設定ファイル管理とoptunaプラグインでのパラメータ探索
ringa_hyj
0
19
ClearMLで行うAIプロジェクトの管理(レポート,最適化,再現,デプロイ,オーケストレーション)
ringa_hyj
0
14
Catching up with the tidymodels.[Japan.R 2021 LT]
ringa_hyj
3
800
多次元尺度法MDS
ringa_hyj
0
260
階層、非階層クラスタリング
ringa_hyj
0
92
tidymodels紹介「モデリング過程料理で表現できる説」
ringa_hyj
0
400
深層学習をつかった画像スタイル変換の話と今までの歴史
ringa_hyj
0
380
Other Decks in Science
See All in Science
位相的データ解析とその応用例
brainpadpr
1
820
局所保存性・相似変換対称性を満たす機械学習モデルによる数値流体力学
yellowshippo
1
140
Transformers are Universal in Context Learners
gpeyre
0
650
The thin line between reconstruction, classification, and hallucination in brain decoding
ykamit
1
1.1k
大規模言語モデルの開発
chokkan
PRO
85
41k
はじめての「相関と因果とエビデンス」入門:“動機づけられた推論” に抗うために
takehikoihayashi
17
7.1k
第61回コンピュータビジョン勉強会「BioCLIP: A Vision Foundation Model for the Tree of Life」
x_ttyszk
1
1.6k
Introduction to Image Processing: 2.Frequ
hachama
0
380
トラブルがあったコンペに学ぶデータ分析
tereka114
2
1.3k
Improving Search @scale with efficient query experimentation @BerlinBuzzwords 2024
searchhub
0
260
HAS Dark Site Orientation
astronomyhouston
0
5.5k
インフラだけではない MLOps の話 @事例でわかるMLOps 機械学習の成果をスケールさせる処方箋 発売記念
icoxfog417
PRO
2
660
Featured
See All Featured
Bash Introduction
62gerente
610
210k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.2k
How to Ace a Technical Interview
jacobian
276
23k
It's Worth the Effort
3n
183
28k
Optimising Largest Contentful Paint
csswizardry
33
3k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
3
180
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
[RailsConf 2023] Rails as a piece of cake
palkan
53
5.1k
Embracing the Ebb and Flow
colly
84
4.5k
Rails Girls Zürich Keynote
gr2m
94
13k
YesSQL, Process and Tooling at Scale
rocio
170
14k
A Modern Web Designer's Workflow
chriscoyier
693
190k
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は独自因子の分散行列である