SlideShare a Scribd company logo
1 of 38
主成分分析(PCA)
~ggbiplot・bPCA~
広島大学大学院教育学研究科
難波 修史
第6回Hiroshima.R
2016/02/20
自己紹介
•難波 修史(なんば しゅうし)
•広島大学大学院教育学研究科M2
•感情表情の表出・認知の研究してます。
•R歴:ちょこちょこ
•twitter:@NSushi
主成分分析とは
•英語で書くとPrincipal component
analysis(以下PCA
•データ解析で用いられる次元縮約手法
•文字通り、全体の指標を端的に判断す
るために、複数の要素から2~3程度の
“主成分”を計算する。
もっとわかりやすく
• 参照:http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1236450762
幅が不明 高さが不明
長さが不明
※あくまでイメージです。
斜め45度から見れば?
全部の情報(総合的な車の大きさ)は見える
※ただし各々の精度は落ちる
つまり・・・
•主成分分析とは、一度の視覚で
全体像を見るためのものである。
•どこの角度から見れば、もっと
も良好に全体が見渡せるのか、
それを調べる分析である。
by uminin0055さん
想像してください
•n個の個体につき,p個の変数
•(n × p)の行列(=X):列 iの変数
x1 x2 x3 x... xi x... xp
個体1 x11 x12 x13 x... x1i x... x1p
個体2 x21 x22 x23 x... x2i x... x2p
個体... x.. x.. x.. x... x.. x... x..
個体n xn 1 xn 2 xn 3 x... xni x... xnp
Xn × p →
縮約!!!
• p次元のデータをq次元の下位空間 (q ≦ p) に
縮約するための線型結合の一般式
• zq (第q主成分) = a1qx1 + a2qx2 + … + anqxp
• Zn × q (主成分得点)
= Xn × p ・An × q(行列の演算
• Zでデータをできるだけ説明したい
⇒ Zの分散を最大化するように各係数を決定
第1 第2 … 第i … 第q
x1の係数 a11 a12 a... a1i a... a1p
x2の係数 a21 a22 a... a2i a... a2p
x.. a.. a.. a... a.. a... a..
xn の係数 an 1 an 2 a... ani a... anp
An × q →
PCAをやる上でのアドバイス
• PCAはスケール不変性(スケールを変えて
も特徴が変化しない性質)を持たない
ー> p個の変数は全て標準化すべき
•主成分の数は手法に依存
•2 or 3つの主成分は視覚化の目的のために
使用できる
じゃあ、やってみよう^^
•R内にはたくさんのPCA用のパッ
ケージや機能がある
•prcompをつかうっす
+ ggbiplot
使用するデータ:iris
•説明不要の大人気Data
•Sepal = がく片の長さと幅
•Petal = 花びらの長さと幅
•Species = 花の種類
data (iris)
str (iris) #dataの構造確認
PCAの準備
•まずは連続変数に対してlog変換を
• Venables, W. N., Brian D. R. Modern applied statistics with S-PLUS. Springer-verlag. (Section 11.1)
log.ir <- log(iris[, 1:4])
ir.species <- iris[, 5] #主成分の視覚化用
データの標準化
#PCA: center = T and scale. = T are highly advisable
ir.pca <- prcomp(log.ir, center=T, scale. = T)
•変数の大きさや歪度がPCの結果に影響
するため、PCA前の歪度変換(center
and scale. = T)がいい感じだよ
標準偏差+固有ベクトル
•prcomp = 利用可能な主成分を返す。
•print = 各4PC (さっきのz) の標準偏差
+連続変数 (さっきのx) の線型結合
係数である固有ベクトル (さっきのa)
x1~x4
a1~a4
Plot:各PCの分散
• plot = 分散 (y軸) と主成分 (x軸) のplot
•必要なPCの数を視覚的に判別可能
plot (ir.pca,
type = “l”)
Summary:主成分の重要性
summary (ir.pca)
•最初の行=各主成分の標準偏差
•2行目=各標準偏差の2乗が合計に占める
割合(寄与率)
•3行目=2行目の累積(第2までで95%)
ggbiplot:図にしてみよう
•まずは準備編
library(devtools)
install_github (“ggbiplot”, “vqv”)
※github上で利用可能なfunctionです!
library(ggbiplot)
ggbiplot:描くのだ
• g <- ggbiplot(ir.pca, obs.scale = 1,
var.scale = 1, groups = ir.species,
ellipse = T, circle = T)
• g <- g + scale_color_discrete(name = ‘’)
• g <- g + theme(legend.direction = ‘horizontal’,
legend.position = ‘top’)
• print(g)
main関数
groups消す
speciesの
位置変える
できたのがこれ
Box and Cox変換:準備
• 上記では対数変換してるけど、より一般的
なBox and Cox変換(偏ったデータを正規分
布に近づける変換)も可能だよ。
•caret packageのpreProcessで一発よ
require(caret)
trans = preProcess(iris[,1:4],
method = c(“BoxCox”, “center”,
“scale”, “pca”))
Box and Coxの結果
#Box(ryの各主成分
PC = predict (trans, iris[,1:4])
# 固有ベクトル
trans$rotation
ちなみにggbiplotは
prcomp() or princomp()の
objectしか認識しません
PCAについていろいろ
調べてると。。。
BGM:なんとかかんとかUC
bPCAとはなんぞや?
• PCAからJan Smyckaが着想し、開発してる
パッケージ
• データが多変量正規分布しているものと
して考えることで、MCMCを用いてデー
タに多変量正規分布を当てはめ、平均及
び共分散の事後分布を求めることで、
PCAの主成分、得点、固有値の事後分布
を求めることができる。
いいところ
• (共分散行列を通して)変数間の結合に
関する事前情報を提供可能
• PCAの安定性(不確実性)を評価可能:
特にサンプルサイズが小さい時
• PCや固定ベクトルに関する事後分布をさ
らなる利用のために抽出できる
あかんところ
• 変数が多いと極端に遅い
• 根本的なMVN(多変量正規分布)の前提が
問題
• summaryやplottingにおいて、MCMC連鎖の中
で変数間の重要な結びつきをこわしうる:
JAGS sampler内で固定値・固定ベクトル・主
成分をすべて計算するのが現状最善の策
• JAGSを通してMCMCするのでstanに慣れてると(*´Д`)レベル (QOL) が下がる。
とりあえずいれてみよう
#もちろんdevtoolsを読み込んでから
install_github(“bPCA”, username=“petrkeil”)
library(bPCA)
# またirisつかいましょう
str(iris)
summary(iris[,1:4)
sim.bPCA関数
bPCA.fitted <- sim.bPCA(iris[,1:4],
n.chains=3, n.iter=1000, n.burnin=500)
•#prior 共分散行列も選択可能です
•#詳しくはhelp(sim.bPCA)
固有値
•固有値(=主成分得点のSDの2乗:
元のデータの情報の含有レベル)
eigenvalplots.bPCA(bPCA.fitted,
iris[,1:4)
eigenvalplots.bPCAの図
2.5, 50, 97.5%分位点の事後分布
#下限・真ん中・上限の事後分布をplot
biplots.bPCA(bPCA.fitted, iris[,1:4],
axes.to.plot=1:2, scale=0.1)
固有ベクトルの事後分布
#固有ベクトルの事後分布の要約
loading.chain
<- get.loadings.chain.bPCA(bPCA.fitted,
iris[,1:4])
summary.loadings.bPCA(loading.chain,
vars.to.get=1:4, axes.to.get=1;2)
出てくるFigure
Console上
まだ発展途上なので多少はね?
• We do not guarantee the very idea to be correct
by共同開発者っぽい人
引用:http://www.petrkeil.com/?p=2316
• 気になる人はぜひ色々調べてみて下さい!
• 今後に期待大ですね!
※パッケージは2014年11月以降更新されてい
ません。
まとめ
• PCA=データを縮約して視覚化する手法
• データ前処理 -> prcomp
-> ggbiplot -> キモチイイ
• bPCAというものもあるらしい
※(MCMCハァハァ(*´Д`)する方専用
• 間違い・修正点などなにかございましたら
twitter:@NSushi までお願いします!
参考サイト
• https://www1.doshisha.ac.jp/~mjin/R/24/24.html
• https://tgmstat.wordpress.com/2013/11/21/introd
uction-to-principal-component-analysis-pca/
• http://www.r-bloggers.com/computing-and-
visualizing-pca-in-r/
• http://www.petrkeil.com/?p=2316
• http://statsbeginner.hatenablog.com/entry/2014/0
7/27/121214

More Related Content

What's hot

高速なガンマ分布の最尤推定法について
高速なガンマ分布の最尤推定法について高速なガンマ分布の最尤推定法について
高速なガンマ分布の最尤推定法についてhoxo_m
 
ベイズファクターとモデル選択
ベイズファクターとモデル選択ベイズファクターとモデル選択
ベイズファクターとモデル選択kazutantan
 
機械学習と機械発見:自然科学研究におけるデータ利活用の再考
機械学習と機械発見:自然科学研究におけるデータ利活用の再考機械学習と機械発見:自然科学研究におけるデータ利活用の再考
機械学習と機械発見:自然科学研究におけるデータ利活用の再考Ichigaku Takigawa
 
Rパッケージ“KFAS”を使った時系列データの解析方法
Rパッケージ“KFAS”を使った時系列データの解析方法Rパッケージ“KFAS”を使った時系列データの解析方法
Rパッケージ“KFAS”を使った時系列データの解析方法Hiroki Itô
 
Rで因子分析 商用ソフトで実行できない因子分析のあれこれ
Rで因子分析 商用ソフトで実行できない因子分析のあれこれRで因子分析 商用ソフトで実行できない因子分析のあれこれ
Rで因子分析 商用ソフトで実行できない因子分析のあれこれHiroshi Shimizu
 
StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章
StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章
StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章nocchi_airport
 
4 データ間の距離と類似度
4 データ間の距離と類似度4 データ間の距離と類似度
4 データ間の距離と類似度Seiichi Uchida
 
DARM勉強会第3回 (missing data analysis)
DARM勉強会第3回 (missing data analysis)DARM勉強会第3回 (missing data analysis)
DARM勉強会第3回 (missing data analysis)Masaru Tokuoka
 
基礎からのベイズ統計学 輪読会資料 第4章 メトロポリス・ヘイスティングス法
基礎からのベイズ統計学 輪読会資料 第4章 メトロポリス・ヘイスティングス法基礎からのベイズ統計学 輪読会資料 第4章 メトロポリス・ヘイスティングス法
基礎からのベイズ統計学 輪読会資料 第4章 メトロポリス・ヘイスティングス法Ken'ichi Matsui
 
Prophet入門【理論編】Facebookの時系列予測ツール
Prophet入門【理論編】Facebookの時系列予測ツールProphet入門【理論編】Facebookの時系列予測ツール
Prophet入門【理論編】Facebookの時系列予測ツールhoxo_m
 
Cmdstanr入門とreduce_sum()解説
Cmdstanr入門とreduce_sum()解説Cmdstanr入門とreduce_sum()解説
Cmdstanr入門とreduce_sum()解説Hiroshi Shimizu
 
StanとRでベイズ統計モデリング読書会(Osaka.stan) 第6章
StanとRでベイズ統計モデリング読書会(Osaka.stan) 第6章StanとRでベイズ統計モデリング読書会(Osaka.stan) 第6章
StanとRでベイズ統計モデリング読書会(Osaka.stan) 第6章Shushi Namba
 
比例ハザードモデルはとってもtricky!
比例ハザードモデルはとってもtricky!比例ハザードモデルはとってもtricky!
比例ハザードモデルはとってもtricky!takehikoihayashi
 
10分でわかる主成分分析(PCA)
10分でわかる主成分分析(PCA)10分でわかる主成分分析(PCA)
10分でわかる主成分分析(PCA)Takanori Ogata
 
協調フィルタリング入門
協調フィルタリング入門協調フィルタリング入門
協調フィルタリング入門hoxo_m
 
GEE(一般化推定方程式)の理論
GEE(一般化推定方程式)の理論GEE(一般化推定方程式)の理論
GEE(一般化推定方程式)の理論Koichiro Gibo
 
グラフィカルモデル入門
グラフィカルモデル入門グラフィカルモデル入門
グラフィカルモデル入門Kawamoto_Kazuhiko
 

What's hot (20)

高速なガンマ分布の最尤推定法について
高速なガンマ分布の最尤推定法について高速なガンマ分布の最尤推定法について
高速なガンマ分布の最尤推定法について
 
ベイズファクターとモデル選択
ベイズファクターとモデル選択ベイズファクターとモデル選択
ベイズファクターとモデル選択
 
機械学習と機械発見:自然科学研究におけるデータ利活用の再考
機械学習と機械発見:自然科学研究におけるデータ利活用の再考機械学習と機械発見:自然科学研究におけるデータ利活用の再考
機械学習と機械発見:自然科学研究におけるデータ利活用の再考
 
Rパッケージ“KFAS”を使った時系列データの解析方法
Rパッケージ“KFAS”を使った時系列データの解析方法Rパッケージ“KFAS”を使った時系列データの解析方法
Rパッケージ“KFAS”を使った時系列データの解析方法
 
Rで因子分析 商用ソフトで実行できない因子分析のあれこれ
Rで因子分析 商用ソフトで実行できない因子分析のあれこれRで因子分析 商用ソフトで実行できない因子分析のあれこれ
Rで因子分析 商用ソフトで実行できない因子分析のあれこれ
 
StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章
StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章
StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章
 
4 データ間の距離と類似度
4 データ間の距離と類似度4 データ間の距離と類似度
4 データ間の距離と類似度
 
DARM勉強会第3回 (missing data analysis)
DARM勉強会第3回 (missing data analysis)DARM勉強会第3回 (missing data analysis)
DARM勉強会第3回 (missing data analysis)
 
基礎からのベイズ統計学 輪読会資料 第4章 メトロポリス・ヘイスティングス法
基礎からのベイズ統計学 輪読会資料 第4章 メトロポリス・ヘイスティングス法基礎からのベイズ統計学 輪読会資料 第4章 メトロポリス・ヘイスティングス法
基礎からのベイズ統計学 輪読会資料 第4章 メトロポリス・ヘイスティングス法
 
MICの解説
MICの解説MICの解説
MICの解説
 
Prophet入門【理論編】Facebookの時系列予測ツール
Prophet入門【理論編】Facebookの時系列予測ツールProphet入門【理論編】Facebookの時系列予測ツール
Prophet入門【理論編】Facebookの時系列予測ツール
 
Cmdstanr入門とreduce_sum()解説
Cmdstanr入門とreduce_sum()解説Cmdstanr入門とreduce_sum()解説
Cmdstanr入門とreduce_sum()解説
 
StanとRでベイズ統計モデリング読書会(Osaka.stan) 第6章
StanとRでベイズ統計モデリング読書会(Osaka.stan) 第6章StanとRでベイズ統計モデリング読書会(Osaka.stan) 第6章
StanとRでベイズ統計モデリング読書会(Osaka.stan) 第6章
 
階層ベイズとWAIC
階層ベイズとWAIC階層ベイズとWAIC
階層ベイズとWAIC
 
比例ハザードモデルはとってもtricky!
比例ハザードモデルはとってもtricky!比例ハザードモデルはとってもtricky!
比例ハザードモデルはとってもtricky!
 
10分でわかる主成分分析(PCA)
10分でわかる主成分分析(PCA)10分でわかる主成分分析(PCA)
10分でわかる主成分分析(PCA)
 
潜在クラス分析
潜在クラス分析潜在クラス分析
潜在クラス分析
 
協調フィルタリング入門
協調フィルタリング入門協調フィルタリング入門
協調フィルタリング入門
 
GEE(一般化推定方程式)の理論
GEE(一般化推定方程式)の理論GEE(一般化推定方程式)の理論
GEE(一般化推定方程式)の理論
 
グラフィカルモデル入門
グラフィカルモデル入門グラフィカルモデル入門
グラフィカルモデル入門
 

More from Shushi Namba

回帰モデルとして見る信号検出理論
回帰モデルとして見る信号検出理論回帰モデルとして見る信号検出理論
回帰モデルとして見る信号検出理論Shushi Namba
 
ベイズモデリングで見る因子分析
ベイズモデリングで見る因子分析ベイズモデリングで見る因子分析
ベイズモデリングで見る因子分析Shushi Namba
 
表情から見た情動
表情から見た情動表情から見た情動
表情から見た情動Shushi Namba
 
今夜は動的モデリングよ~Dynrで簡単クッキング!~
今夜は動的モデリングよ~Dynrで簡単クッキング!~今夜は動的モデリングよ~Dynrで簡単クッキング!~
今夜は動的モデリングよ~Dynrで簡単クッキング!~Shushi Namba
 
Mental model for emotion
Mental model for emotionMental model for emotion
Mental model for emotionShushi Namba
 
ベイズ統計モデリングと心理学
ベイズ統計モデリングと心理学ベイズ統計モデリングと心理学
ベイズ統計モデリングと心理学Shushi Namba
 
馬に蹴られるモデリング
馬に蹴られるモデリング馬に蹴られるモデリング
馬に蹴られるモデリングShushi Namba
 
Rはいいぞ!むしろなぜ使わないのか!!
Rはいいぞ!むしろなぜ使わないのか!!Rはいいぞ!むしろなぜ使わないのか!!
Rはいいぞ!むしろなぜ使わないのか!!Shushi Namba
 
心理学における「再現性」の問題とBayes Factor
心理学における「再現性」の問題とBayes Factor心理学における「再現性」の問題とBayes Factor
心理学における「再現性」の問題とBayes FactorShushi Namba
 
変数同士の関連_MIC
変数同士の関連_MIC変数同士の関連_MIC
変数同士の関連_MICShushi Namba
 
がんばろう!はじめてのDnn!
がんばろう!はじめてのDnn!がんばろう!はじめてのDnn!
がんばろう!はじめてのDnn!Shushi Namba
 
Psychophysical functions@BCM勉強会
Psychophysical functions@BCM勉強会Psychophysical functions@BCM勉強会
Psychophysical functions@BCM勉強会Shushi Namba
 
Rでベイズをやってみよう!(コワい本1章)@BCM勉強会
Rでベイズをやってみよう!(コワい本1章)@BCM勉強会Rでベイズをやってみよう!(コワい本1章)@BCM勉強会
Rでベイズをやってみよう!(コワい本1章)@BCM勉強会Shushi Namba
 

More from Shushi Namba (13)

回帰モデルとして見る信号検出理論
回帰モデルとして見る信号検出理論回帰モデルとして見る信号検出理論
回帰モデルとして見る信号検出理論
 
ベイズモデリングで見る因子分析
ベイズモデリングで見る因子分析ベイズモデリングで見る因子分析
ベイズモデリングで見る因子分析
 
表情から見た情動
表情から見た情動表情から見た情動
表情から見た情動
 
今夜は動的モデリングよ~Dynrで簡単クッキング!~
今夜は動的モデリングよ~Dynrで簡単クッキング!~今夜は動的モデリングよ~Dynrで簡単クッキング!~
今夜は動的モデリングよ~Dynrで簡単クッキング!~
 
Mental model for emotion
Mental model for emotionMental model for emotion
Mental model for emotion
 
ベイズ統計モデリングと心理学
ベイズ統計モデリングと心理学ベイズ統計モデリングと心理学
ベイズ統計モデリングと心理学
 
馬に蹴られるモデリング
馬に蹴られるモデリング馬に蹴られるモデリング
馬に蹴られるモデリング
 
Rはいいぞ!むしろなぜ使わないのか!!
Rはいいぞ!むしろなぜ使わないのか!!Rはいいぞ!むしろなぜ使わないのか!!
Rはいいぞ!むしろなぜ使わないのか!!
 
心理学における「再現性」の問題とBayes Factor
心理学における「再現性」の問題とBayes Factor心理学における「再現性」の問題とBayes Factor
心理学における「再現性」の問題とBayes Factor
 
変数同士の関連_MIC
変数同士の関連_MIC変数同士の関連_MIC
変数同士の関連_MIC
 
がんばろう!はじめてのDnn!
がんばろう!はじめてのDnn!がんばろう!はじめてのDnn!
がんばろう!はじめてのDnn!
 
Psychophysical functions@BCM勉強会
Psychophysical functions@BCM勉強会Psychophysical functions@BCM勉強会
Psychophysical functions@BCM勉強会
 
Rでベイズをやってみよう!(コワい本1章)@BCM勉強会
Rでベイズをやってみよう!(コワい本1章)@BCM勉強会Rでベイズをやってみよう!(コワい本1章)@BCM勉強会
Rでベイズをやってみよう!(コワい本1章)@BCM勉強会
 

主成分分析(Pca)