特定テーマに限定したWikiを立ち上げる必要もなく、ブログの様に私見をまとめる必要もない、
- 講義の予習ノート
- 読書ノート
- メモ
などの雑記帳Wikiから移行した投稿。
統計クラスの予習ノート。
用語
contribution | 寄与度 寄与率 |
factor loading | 因子荷重 負荷量 |
factor score | 因子得点 |
principle component score | 主成分スコア |
主成分分析
極力、情報を減らさずに次元を減らす方法。→データをよく説明する軸を見つける。
- データの全体像を2本の軸で見つける。
- 寄与率の高い主成分を見つける。
分散共分散行列による分析と、相関行列による分析で結果が異なる。
主成分 | データ全体の特徴を表す指標 総合特性 観測値の線形結合で得られる変数 |
寄与率 | データ全体に対して、主成分が持つ情報の割合 主成分が持つ分散と、全体の分散の比率 |
固有値 | 主成分の分散 総合特性の分散 |
固有ベクトル | 線形結合(線形変換)の係数 |
因子負荷量 | 主成分と変数の相関係数 新しい変数への、元の変数の寄与を示す。 |
主成分スコア | 主成分との関係性。 |
特徴
- 変数の線形結合により、新しい変数を作る。
- 次元の縮約により、多変量のデータの特徴を把握する。
- 複数の変数の関係を整理して表現する。
- 多次元の変数が持つ情報を、より小さな次元で表現する。
分散 | 情報の多さを測る。 分散が大きいほど、情報が多い。 |
相関係数 | 情報の重複を測る。 相関係数が大きいほど、情報は重複している。 |
分散が最大、相関係数が最小、あるいは相関がない。→情報が多く、重複が少ない、あるいは重複がない。
p個の観測値から、新しい変数(総合特性)を得る。
n個体、p次元の変数から、新しい変数を得る。
- y1の係数w1pは、分散V(y1)が最大になるように求める。
- y2の係数w2pは、共分散Cov(y1, y2)=0で、V(y2)が最大になるように求める。
- ymの係数wmpは、共分散Cov(ym-2, ym)-Cov(ym-1, ym)=0で、V(ym)が最大になるように求める。
共分散が0→相関がない。
V(y1) >= V(y2) >= ... >= V(ym)となる。
ymを第m主成分と呼ぶ。
固有値、固有ベクトルとの関係
- データの総分散と、固有値の合計は等しい。
- 固有ベクトルの平方和は1。
- 固有ベクトルは直交する。固有ベクトルの内積は0。
- 固有ベクトルの転置行列×分散共分散行列×固有ベクトル行列=対角行列、その対角成分には固有値が降順に並ぶ。
🔎TEX
y=w_{1}x_{1}+w_{2}x_{2}+\cdots+w_{p}x_{p} \\ m \leq p \\ \begin{bmatrix} y_{1} \\ y_{2} \\ \vdots \\ y_{m} \end{bmatrix} = \begin{bmatrix} w_{11} & w_{12} & \cdots & w_{1p} \\ w_{21} & w_{22} & \cdots & w_{2p} \\ \vdots \\ w_{m1} & w_{m2} & \cdots & w_{mp} \end{bmatrix} \begin{bmatrix} x_{1} \\ x_{2} \\ \vdots \\ x_{p} \end{bmatrix} \\ \sum_{j=1}^{p} { w_{ij}^{2} } =1 \\ \begin{align} y &= \sum_{j=1}^{p} { w_{j} x_{j} } \\ y_{i} &= \sum_{j=1}^{p} { w_{j} x_{ij} } \end{align} \\
🔎TEX
\begin{align} V(y) &= \frac{ 1 }{ N } \sum_{i=1}^{N} ( y_{i} - \bar{y} )^2 \\ &= \frac{ 1 }{ N } \sum_{i=1}^{N} \{ \sum_{j=1}^{p} w_{j} ( x_{ij} - \bar{x}_{j} ) \}^2 \\ &= \sum_{i=1}^{p} \sum_{k=1}^{p} w_{j} s_{jk} w_{k} \end{align} \\
🔎TEX
N= \left\{ \begin{array}{c} n \\ n-1 \end{array} \right\}
🔎TEX
s_{jk} = \left\{ \begin{array}{ll} (j=k) & s_{j}^{2} = \frac{ 1 }{ N } \sum_{i=1}^{p} ( x_{ij} - \bar{x}_{j} )^2 \\ (j \neq k) & s_{jk} = \frac{ 1 }{ N } \sum_{i=1}^{p} ( x_{ij} - \bar{x}_{j} ) ( x_{ik} - \bar{x}_{k} ) \end{array} \right\}
主成分分析(馬場康維) 1(全3回)改訂版
主成分分析(馬場康維) 2(全3回)改訂版
主成分分析(馬場康維) 3(全3回)改訂版
R
prcomp function - RDocumentation
N-1の自由度が適用される。
scale. = TRUE | 相関行列による分析 |
scale. = FALSE | 分散共分散行列による分析 |
$sdev | 主成分の標準偏差 |
$rotation | 負荷量 |
princomp function - RDocumentation
cor = TRUE | 相関行列による分析 |
cor = FALSE | 分散共分散行列による分析 |
score = TRUE | 主成分スコアを計算する。 |
$sdev | 主成分の標準偏差 |
$loadings | 負荷量 |
$scores | 主成分スコア |
library(FactoMineR) | |
scale.unit = TRUE | 相関行列による分析 |
scale.unit = FALSE | 分散共分散行列による分析 |
graph = TRUE | グラフを表示 |
$eig | 固有値、分散の割合と累積率 |
$var | 変数の座標、変数と次元との相関係数、cosの2乗(情報量)、寄与率 |
$ind | 個別の座標、cosの2乗(情報量)、寄与率 |
$svd | 固有値分解 |
> pca = prcomp(swiss, scale. = TRUE) > pca Standard deviations (1, .., p=6): [1] 1.7887865 1.0900955 0.9206573 0.6625169 0.4522540 0.3476529 Rotation (n x k) = (6 x 6): PC1 PC2 PC3 PC4 PC5 PC6 Fertility -0.4569876 0.3220284 -0.17376638 0.53555794 -0.38308893 0.47295441 Agriculture -0.4242141 -0.4115132 0.03834472 -0.64291822 -0.37495215 0.30870058 Examination 0.5097327 0.1250167 -0.09123696 -0.05446158 -0.81429082 -0.22401686 Education 0.4543119 0.1790495 0.53239316 -0.09738818 0.07144564 0.68081610 Catholic -0.3501111 0.1458730 0.80680494 0.09947244 -0.18317236 -0.40219666 Infant.Mortality -0.1496668 0.8111645 -0.16010636 -0.52677184 0.10453530 -0.07457754 > > pca = princomp(swiss, cor = TRUE, scores = TRUE) > pca Call: princomp(x = swiss, cor = TRUE, scores = TRUE) Standard deviations: Comp.1 Comp.2 Comp.3 Comp.4 Comp.5 Comp.6 1.7887865 1.0900955 0.9206573 0.6625169 0.4522540 0.3476529 6 variables and 47 observations. > > library(FactoMineR) > pca = PCA(swiss, ncp = ncol(swiss), scale.unit = TRUE, graph = FALSE) > pca$svd$vs [1] 1.7887865 1.0900955 0.9206573 0.6625169 0.4522540 0.3476529 >