rプログラミング03 「データ分析編」デモ

2
# データのロード data(state) # 使用データは state.x7750 データ 8 変数。 state.x77 # データ一覧 # 01A どのようなデータか眺めてみよう summary(state.x77) ##### 基本統計量 pairs(state.x77) ##### 散布図行列描画 # 散布図行列を A4 サイズの png 形式で保存 png(filename="pairs_x77.png", width=1654, height=2339, pointsize = 32) #### 200 dpi A4 pairs(state.x77) ##### 散布図行列描画 dev.off() # 8 変数のヒストグラムを A4 サイズにまとめて描画、png 形式保存 require(MASS) # truehist 関数が収録されているパッケージ png(filename="hist_x77.png", width=1654, height=2339, pointsize = 32) #### 200 dpi A4 par(mfrow=c(4,2)) # 4 2 列に画面分割 for (i in 1:8) truehist(state.x77[,i], xlab=colnames(state.x77)[i]) dev.off() # 因子分析 # 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) # 因子数を選ぶ # ここでは元のデータの情報の大部分をカバーするよりも、 # 解釈しやすい因子を選択する方針とするので、まず因子負荷量 # をみて解釈可能性を検討する # 因子負荷量: 各変数の因子への貢献 par(mfrow=c(1,2)) # 1 2 列に画面分割 barplot(fac2$loading[,1], las=2) barplot(fac2$loading[,2], las=2) par(mfrow=c(2,2)) # 2 2 列に画面分割 barplot(fac3$loading[,1], las=2) barplot(fac3$loading[,2], las=2) barplot(fac3$loading[,3], las=2)

Upload: wada-kazumi

Post on 17-Feb-2017

181 views

Category:

Education


1 download

TRANSCRIPT

Page 1: Rプログラミング03 「データ分析編」デモ

# データのロード

data(state)

# 使用データは state.x77。50データ 8変数。

state.x77 # データ一覧

# 01A どのようなデータか眺めてみよう

summary(state.x77) ##### 基本統計量

pairs(state.x77) ##### 散布図行列描画

# 散布図行列を A4サイズの png形式で保存

png(filename="pairs_x77.png", width=1654, height=2339, pointsize = 32) #### 200 dpi A4縦

pairs(state.x77) ##### 散布図行列描画

dev.off()

# 8変数のヒストグラムを A4サイズにまとめて描画、png形式保存

require(MASS) # truehist 関数が収録されているパッケージ

png(filename="hist_x77.png", width=1654, height=2339, pointsize = 32) #### 200 dpi A4縦

par(mfrow=c(4,2)) # 4行 2列に画面分割

for (i in 1:8) truehist(state.x77[,i], xlab=colnames(state.x77)[i])

dev.off()

# 因子分析

# 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)

# 因子数を選ぶ

# ここでは元のデータの情報の大部分をカバーするよりも、

# 解釈しやすい因子を選択する方針とするので、まず因子負荷量

# をみて解釈可能性を検討する

# 因子負荷量: 各変数の因子への貢献

par(mfrow=c(1,2)) # 1行 2列に画面分割

barplot(fac2$loading[,1], las=2)

barplot(fac2$loading[,2], las=2)

par(mfrow=c(2,2)) # 2行 2列に画面分割

barplot(fac3$loading[,1], las=2)

barplot(fac3$loading[,2], las=2)

barplot(fac3$loading[,3], las=2)

Page 2: Rプログラミング03 「データ分析編」デモ

par(mfrow=c(2,2)) # 2行 2列に画面分割

barplot(fac4$loading[,1], las=2)

barplot(fac4$loading[,2], las=2)

barplot(fac4$loading[,3], las=2)

barplot(fac4$loading[,4], las=2)

# 独自因子: モデルで説明できない情報の比率

round(fac2$uniquenesses, 3)

round(fac3$uniquenesses, 3)

round(fac4$uniquenesses, 3)

# 因子分析の因子得点(ここでは 2因子)を res1に格納

res1 <- factanal(state.x77, factors=2, scores="Bartlett")$scores

# クラスター分析

res1.hc <- hclust(dist(res1), method="single") # 最近隣法

#res1.hc <- hclust(dist(res1), method="ward.D2")

par(mfrow=c(1,1)) # 画面分割を元に戻す

plot(res1.hc) # デンドログラム表示

# デンドログラムを A4横にファイル出力

png(filename="Dendrgram_x77.png", width=2339, height=1654, pointsize = 32) #### 200 dpi

A4縦

plot(res1.hc) # デンドログラム表示

dev.off()

# とりあえずいくつかに分類してみる

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,3.5), xlim=c(-2,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])

############################################################