Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

196 views

Published on

スライド「Rプログラミング03 データ分析編」のためのデモコード

Published in: Education
  • Be the first to comment

  • Be the first to like this

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

  1. 1. # データのロード 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)
  2. 2. 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]) ############################################################

×