Technically Impossible

Lets look at the weak link in your statement. Anything "Technically Impossible" basically means we haven't figured out how yet.

PYR103 week 2, 3 主成分分析

特定テーマに限定した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主成分と呼ぶ。

固有値固有ベクトルとの関係


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

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} \\



\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

\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} \\



N= \left\{
\begin{array}{c}
n \\
n-1
\end{array}
\right\}
TEX

N= \left\{
\begin{array}{c}
n \\
n-1
\end{array}
\right\}



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\}
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 | R Documentation
N-1の自由度が適用される。

scale. = TRUE 相関行列による分析
scale. = FALSE 分散共分散行列による分析
$sdev 主成分の標準偏差
$rotation 負荷量

princomp function | R Documentation

cor = TRUE 相関行列による分析
cor = FALSE 分散共分散行列による分析
score = TRUE 主成分スコアを計算する。
$sdev 主成分の標準偏差
$loadings 負荷量
$scores 主成分スコア

PCA function | R Documentation

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
>