SlideShare a Scribd company logo
1 of 14
2015/10/24
目 次
1. データ分析編の目的
2. 使用データについて
3. プロット図の出力
4. 因子分析
5. 因子得点によるクラスター分析
2
1. データ分析編の目的
Rを用いてどのようにデータの分析を行
うことができるのかという例を紹介する
具体的には、Rに組込データとして収録
されているstate.x77という米国各州につい
てのデータ(50×8)を用いて、州の類似
性や相違についての分析を行う
3
2. 使用データについて
Rの組込データとして収録されている
stateという米国の州別データのうち、8変
数50レコードの state.x77を使用する
4
data(state) # 米国の州別データのロード
help(state) # 内容一覧
state.x77 # 今回使用するデータ。 8変数50レコード。
summary(state.x77) # 基本統計量
pairs(state.x77) # 散布図行列描画
state.x77
変数名とその内容
変数名 内容
Population 1975年7月1日時点の推定人口
Income 1974年の1人当たり収入
Illiteracy 非識字率(1970年、人口%)
Life Exp 1969-71年の平均余命
Murder 人口10万人当たりの殺人・非過失故殺率
(1976年)
HS Grad 高校の卒業率(1970)
Frost 州都・大都市の最低気温が氷点下の平均日数
(1931-60年)
Area 面積(平方マイル)
5
3. プロット図の出力
# 散布図行列をA4サイズのpng形式で保存(200 dpi A4縦)
png(filename="pairs_x77.png", width=1654, height=2339,
pointsize = 32) pairs(state.x77)
dev.off()
# 8変数のヒストグラムをA4縦サイズにまとめて描画、png形式保存
require(MASS) # truehist関数が収録されているパッケージ
png(filename="hist_x77.png", width=1654, height=2339,
pointsize = 32)
par(mfrow=c(4,2)) # 4行2列に画面分割
for (i in 1:8) truehist(state.x77[,i],
xlab=colnames(state.x77)[i])
dev.off()
6
4. 因子分析
Rでの因子分析では、因子の数はユーザが指定
する。いくつか試してみて、最適な数を決める
(fac2 <- factanal(state.x77, factors=2))
(fac3 <- factanal(state.x77, factors=3))
(fac4 <- factanal(state.x77, factors=4))
(fac5 <- factanal(state.x77, factors=5))
8変数で5因子は多すぎるというエラーメッセー
ジが表示されるが、2~4因子の場合、因子数は
十分という検定結果が表示されている
7
因子数の選択
エラーがでなかった各因子数の因子負荷量を表示
させる
# 因子負荷量: 各変数の因子への貢献
par(mfrow=c(1,2)) # 1行2列に画面分割
barplot(fac2$loading[,1])
barplot(fac2$loading[,2])
par(mfrow=c(2,2)) # 2行2列に画面分割
barplot(fac3$loading[,1])
barplot(fac3$loading[,2])
barplot(fac3$loading[,3])
par(mfrow=c(2,2)) # 2行2列に画面分割
barplot(fac4$loading[,1])
barplot(fac4$loading[,2])
barplot(fac4$loading[,3])
barplot(fac4$loading[,4])
8
因子数の解釈
ここでは解釈しやすそうな2因子を選択
9
独自因子
uniquenessはモデルで説明できない情報の比率
round(fac2$uniquenesses, 3)
round(fac3$uniquenesses, 3)
round(fac4$uniquenesses, 3)
> round(fac2$uniquenesses, 3)
Population Income Illiteracy Life Exp Murder HS Grad Frost Area
0.859 0.498 0.353 0.337 0.005 0.146 0.681 0.651
> round(fac3$uniquenesses, 3)
Population Income Illiteracy Life Exp Murder HS Grad Frost Area
0.813 0.474 0.266 0.240 0.050 0.167 0.005 0.613
> round(fac4$uniquenesses, 3)
Population Income Illiteracy Life Exp Murder HS Grad Frost Area
0.584 0.473 0.005 0.165 0.050 0.219 0.301 0.327
round関数で丸めて小数点以下3桁まで表示させている 10
5. 因子得点によるクラスター分析
11
# 因子分析の因子得点(ここでは2因子)をres1に格納
res1 <- factanal(state.x77, factors=2, scores="Bartlett")$scores
# クラスター分析
res1.hc <- hclust(dist(res1), method="single") # 最近隣法
plot(res1.hc) # デンドログラム表示
州の分類
res1.cl6 <- cutree(res1.hc,k=6)
res1.cl8 <- cutree(res1.hc,k=8)
res1.cl10 <- cutree(res1.hc,k=10)
# 因子負荷量のプロット、分類色分けで
plot(res1, col=rainbow(10)[res1.cl10], pch=20,
ylim=c(-2.5,2.5), xlim=c(-2.5,2.5))
abline(h=-3:3, v=-3:3, col="gray", lty=3)
text(res1, rownames(state.x77))
points(res1, pch=20,
col=rainbow(10)[res1.cl10], cex=2)
12
任意のグループ数に州を分類し、因子負荷量を
グループ毎に色分けでプロットする
13
各州の特徴を可視化
14

More Related Content

What's hot

Tokyo r12 - R言語による回帰分析入門
Tokyo r12 - R言語による回帰分析入門Tokyo r12 - R言語による回帰分析入門
Tokyo r12 - R言語による回帰分析入門
Yohei Sato
 
[Tokyor08] Rによるデータサイエンス 第2部 第3章 対応分析
[Tokyor08] Rによるデータサイエンス第2部 第3章 対応分析[Tokyor08] Rによるデータサイエンス第2部 第3章 対応分析
[Tokyor08] Rによるデータサイエンス 第2部 第3章 対応分析
Yohei Sato
 
傾向スコア:その概念とRによる実装
傾向スコア:その概念とRによる実装傾向スコア:その概念とRによる実装
傾向スコア:その概念とRによる実装
takehikoihayashi
 
Rでコンジョイント分析
Rでコンジョイント分析Rでコンジョイント分析
Rでコンジョイント分析
osamu morimoto
 
PRML上巻勉強会 at 東京大学 資料 第5章5.1 〜 5.3.1
PRML上巻勉強会 at 東京大学 資料 第5章5.1 〜 5.3.1PRML上巻勉強会 at 東京大学 資料 第5章5.1 〜 5.3.1
PRML上巻勉強会 at 東京大学 資料 第5章5.1 〜 5.3.1
Len Matsuyama
 
PRML ベイズロジスティック回帰
PRML ベイズロジスティック回帰PRML ベイズロジスティック回帰
PRML ベイズロジスティック回帰
hagino 3000
 
遺伝子のアノテーション付加
遺伝子のアノテーション付加遺伝子のアノテーション付加
遺伝子のアノテーション付加
弘毅 露崎
 

What's hot (20)

RNAseqによる変動遺伝子抽出の統計: A Review
RNAseqによる変動遺伝子抽出の統計: A ReviewRNAseqによる変動遺伝子抽出の統計: A Review
RNAseqによる変動遺伝子抽出の統計: A Review
 
Rの高速化
Rの高速化Rの高速化
Rの高速化
 
分類分析 (taxometric analysis)
分類分析 (taxometric analysis)分類分析 (taxometric analysis)
分類分析 (taxometric analysis)
 
for関数を使った繰り返し処理によるヒストグラムの一括出力
for関数を使った繰り返し処理によるヒストグラムの一括出力for関数を使った繰り返し処理によるヒストグラムの一括出力
for関数を使った繰り返し処理によるヒストグラムの一括出力
 
12 非構造化データ解析
12 非構造化データ解析12 非構造化データ解析
12 非構造化データ解析
 
Chapter6.4
Chapter6.4Chapter6.4
Chapter6.4
 
Tokyo r12 - R言語による回帰分析入門
Tokyo r12 - R言語による回帰分析入門Tokyo r12 - R言語による回帰分析入門
Tokyo r12 - R言語による回帰分析入門
 
[Tokyor08] Rによるデータサイエンス 第2部 第3章 対応分析
[Tokyor08] Rによるデータサイエンス第2部 第3章 対応分析[Tokyor08] Rによるデータサイエンス第2部 第3章 対応分析
[Tokyor08] Rによるデータサイエンス 第2部 第3章 対応分析
 
傾向スコア:その概念とRによる実装
傾向スコア:その概念とRによる実装傾向スコア:その概念とRによる実装
傾向スコア:その概念とRによる実装
 
研究発表のためのパワーポイント資料作成の基本
研究発表のためのパワーポイント資料作成の基本研究発表のためのパワーポイント資料作成の基本
研究発表のためのパワーポイント資料作成の基本
 
うつ病の医療経済
うつ病の医療経済うつ病の医療経済
うつ病の医療経済
 
2 5 2.一般化線形モデル色々_ロジスティック回帰
2 5 2.一般化線形モデル色々_ロジスティック回帰2 5 2.一般化線形モデル色々_ロジスティック回帰
2 5 2.一般化線形モデル色々_ロジスティック回帰
 
Rでコンジョイント分析
Rでコンジョイント分析Rでコンジョイント分析
Rでコンジョイント分析
 
クラスタリングとレコメンデーション資料
クラスタリングとレコメンデーション資料クラスタリングとレコメンデーション資料
クラスタリングとレコメンデーション資料
 
人間の視覚的注意を予測するモデル - 動的ベイジアンネットワークに基づく 最新のアプローチ -
人間の視覚的注意を予測するモデル - 動的ベイジアンネットワークに基づく 最新のアプローチ -人間の視覚的注意を予測するモデル - 動的ベイジアンネットワークに基づく 最新のアプローチ -
人間の視覚的注意を予測するモデル - 動的ベイジアンネットワークに基づく 最新のアプローチ -
 
PRML上巻勉強会 at 東京大学 資料 第5章5.1 〜 5.3.1
PRML上巻勉強会 at 東京大学 資料 第5章5.1 〜 5.3.1PRML上巻勉強会 at 東京大学 資料 第5章5.1 〜 5.3.1
PRML上巻勉強会 at 東京大学 資料 第5章5.1 〜 5.3.1
 
PRML ベイズロジスティック回帰
PRML ベイズロジスティック回帰PRML ベイズロジスティック回帰
PRML ベイズロジスティック回帰
 
人工知能2018 強化学習の応用
人工知能2018 強化学習の応用人工知能2018 強化学習の応用
人工知能2018 強化学習の応用
 
10分でわかる主成分分析(PCA)
10分でわかる主成分分析(PCA)10分でわかる主成分分析(PCA)
10分でわかる主成分分析(PCA)
 
遺伝子のアノテーション付加
遺伝子のアノテーション付加遺伝子のアノテーション付加
遺伝子のアノテーション付加
 

Viewers also liked

Rによるやさしい統計学 第16章 : 因子分析
Rによるやさしい統計学 第16章 : 因子分析Rによるやさしい統計学 第16章 : 因子分析
Rによるやさしい統計学 第16章 : 因子分析
Hidekazu Tanaka
 

Viewers also liked (20)

普通のプログラミング言語R
普通のプログラミング言語R普通のプログラミング言語R
普通のプログラミング言語R
 
Rプログラミング01 はじめの一歩
Rプログラミング01 はじめの一歩Rプログラミング01 はじめの一歩
Rプログラミング01 はじめの一歩
 
Rデモ01_はじめの一歩2016
Rデモ01_はじめの一歩2016Rデモ01_はじめの一歩2016
Rデモ01_はじめの一歩2016
 
ロジカル・シンキング & システム設計・プログラミングについて
ロジカル・シンキング & システム設計・プログラミングについてロジカル・シンキング & システム設計・プログラミングについて
ロジカル・シンキング & システム設計・プログラミングについて
 
Rデモ02_入出力編2016
Rデモ02_入出力編2016Rデモ02_入出力編2016
Rデモ02_入出力編2016
 
Rデモ03_データ分析編2016
Rデモ03_データ分析編2016Rデモ03_データ分析編2016
Rデモ03_データ分析編2016
 
Functional Way
Functional WayFunctional Way
Functional Way
 
Rプログラミング02 データ入出力編
Rプログラミング02 データ入出力編Rプログラミング02 データ入出力編
Rプログラミング02 データ入出力編
 
MP in Haskell
MP in HaskellMP in Haskell
MP in Haskell
 
HTTP/2 in nginx(2016/3/11 社内勉強会)
HTTP/2 in nginx(2016/3/11 社内勉強会)HTTP/2 in nginx(2016/3/11 社内勉強会)
HTTP/2 in nginx(2016/3/11 社内勉強会)
 
Rによるやさしい統計学 第16章 : 因子分析
Rによるやさしい統計学 第16章 : 因子分析Rによるやさしい統計学 第16章 : 因子分析
Rによるやさしい統計学 第16章 : 因子分析
 
Rデータ処理入門
Rデータ処理入門Rデータ処理入門
Rデータ処理入門
 
From Java To Clojure (English version)
From Java To Clojure (English version)From Java To Clojure (English version)
From Java To Clojure (English version)
 
ネットワーク概論 サーバの構築理論
ネットワーク概論 サーバの構築理論ネットワーク概論 サーバの構築理論
ネットワーク概論 サーバの構築理論
 
Rはいいぞ!むしろなぜ使わないのか!!
Rはいいぞ!むしろなぜ使わないのか!!Rはいいぞ!むしろなぜ使わないのか!!
Rはいいぞ!むしろなぜ使わないのか!!
 
心理学における「再現性」の問題とBayes Factor
心理学における「再現性」の問題とBayes Factor心理学における「再現性」の問題とBayes Factor
心理学における「再現性」の問題とBayes Factor
 
おいしいLisp
おいしいLispおいしいLisp
おいしいLisp
 
レコメンド研究のあれこれ
レコメンド研究のあれこれレコメンド研究のあれこれ
レコメンド研究のあれこれ
 
はじめよう多変量解析~主成分分析編~
はじめよう多変量解析~主成分分析編~はじめよう多変量解析~主成分分析編~
はじめよう多変量解析~主成分分析編~
 
ソフトウエアジャパン2017 IT Forum AITC(1)
ソフトウエアジャパン2017 IT Forum AITC(1)ソフトウエアジャパン2017 IT Forum AITC(1)
ソフトウエアジャパン2017 IT Forum AITC(1)
 

More from wada, kazumi

Rによる富士山関数の描き方
Rによる富士山関数の描き方Rによる富士山関数の描き方
Rによる富士山関数の描き方
wada, kazumi
 

More from wada, kazumi (20)

Rによる繰り返しの並列処理
Rによる繰り返しの並列処理Rによる繰り返しの並列処理
Rによる繰り返しの並列処理
 
2018Rユーザ会用
2018Rユーザ会用2018Rユーザ会用
2018Rユーザ会用
 
Ⅳ. 可視化事例集 2017
Ⅳ. 可視化事例集 2017Ⅳ. 可視化事例集 2017
Ⅳ. 可視化事例集 2017
 
Ⅲ. 資料編 2017
Ⅲ. 資料編 2017Ⅲ. 資料編 2017
Ⅲ. 資料編 2017
 
Ⅱ. データ分析編 2017
Ⅱ. データ分析編 2017Ⅱ. データ分析編 2017
Ⅱ. データ分析編 2017
 
Ⅰ. Rの基礎 2017
Ⅰ. Rの基礎 2017Ⅰ. Rの基礎 2017
Ⅰ. Rの基礎 2017
 
2017Rユーザ会用
2017Rユーザ会用2017Rユーザ会用
2017Rユーザ会用
 
統計環境R_データ分析編2016
統計環境R_データ分析編2016統計環境R_データ分析編2016
統計環境R_データ分析編2016
 
統計環境R_はじめの一歩2016
統計環境R_はじめの一歩2016統計環境R_はじめの一歩2016
統計環境R_はじめの一歩2016
 
統計環境R_データ入出力編2016
統計環境R_データ入出力編2016統計環境R_データ入出力編2016
統計環境R_データ入出力編2016
 
自然科学の統計学2.2 slideshare
自然科学の統計学2.2 slideshare自然科学の統計学2.2 slideshare
自然科学の統計学2.2 slideshare
 
Rプログラミング03 「データ分析編」デモ
Rプログラミング03 「データ分析編」デモRプログラミング03 「データ分析編」デモ
Rプログラミング03 「データ分析編」デモ
 
Rプログラミング02 「データ入出力編」デモ
Rプログラミング02 「データ入出力編」デモRプログラミング02 「データ入出力編」デモ
Rプログラミング02 「データ入出力編」デモ
 
Rプログラミング01 「はじめの一歩」 演習デモ
Rプログラミング01 「はじめの一歩」 演習デモRプログラミング01 「はじめの一歩」 演習デモ
Rプログラミング01 「はじめの一歩」 演習デモ
 
Rでのtry関数によるエラー処理
Rでのtry関数によるエラー処理Rでのtry関数によるエラー処理
Rでのtry関数によるエラー処理
 
Rによる大規模データのプロット
Rによる大規模データのプロットRによる大規模データのプロット
Rによる大規模データのプロット
 
擬似ミクロデータについて
擬似ミクロデータについて擬似ミクロデータについて
擬似ミクロデータについて
 
Rによる富士山関数の描き方
Rによる富士山関数の描き方Rによる富士山関数の描き方
Rによる富士山関数の描き方
 
Rによるprincomp関数を使わない主成分分析
Rによるprincomp関数を使わない主成分分析Rによるprincomp関数を使わない主成分分析
Rによるprincomp関数を使わない主成分分析
 
基本統計量について
基本統計量について基本統計量について
基本統計量について
 

Rプログラミング03 データ分析編