Rで解析:1歩先へ!クラスタリング解析の解釈「hybridHclust」パッケージ

Rの解析に役に立つ記事
スポンサーリンク

クラスタリング解析は解るような、解らないような、知識がない方に説明が難しい「デンドログラムをカッコよく描写」する方法を考えがちです。でも、ふと「デンドログラムの描写から解釈を導き出す」表現方法はないかと考える場合があります。

そんな欲求を満たすことができるかもしれない「hybridHclust」パッケージを紹介します。

クラスタリング解析を数学的に理解したい方には「Rで学ぶクラスタ解析」を紹介します。読みやすく、大変面白い本でした。

パッケージのバージョンは1.0-5。R version 3.2.1でコマンドを確認しています。

スポンサーリンク

パッケージのインストール

下記コマンドを実行してください。

#パッケージのインストール
install.packages("hybridHclust")

実行コマンドの紹介

詳細はコメント、パッケージヘルプを確認してください。

#パッケージの読み込み
library("hybridHclust")
library("RColorBrewer")
#RColorBrewerパッケージのインストール
#install.packages("RColorBrewer")

#デンドログラムの計算:eisenClusterコマンド
#methodオプション:“euclidean”, “squared.euclidean”, “correlation”, “uncentered.correlation”
#データ例の作成
set.seed(99)
TestData <- matrix(rnorm(500), 5, 100)
TestData <- rbind(TestData, TestData[rep(1, 4),] + matrix(rnorm(400), 4, 100))
TestData <- rbind(TestData, TestData[2:5,] + matrix(rnorm(400) , 4, 100))
EC <- eisenCluster(TestData, method = "correlation")
#&#25551;&#20889;&#38936;&#22495;&#12398;&#20998;&#21106;
par(mfrow = c(1, 2))
#&#12498;&#12540;&#12488;&#12510;&#12483;&#12503;&#12398;&#25551;&#20889;
image(1-cor(t(TestData)), main = "TEST Distances",
      zlim = c(0,2), col = colorRampPalette(c("#4b61ba", "#a87963"))(100))
#&#12487;&#12531;&#12489;&#12525;&#12464;&#12521;&#12512;&#12398;&#25551;&#20889;
plot(EC, main = "TEST Dendrogram")

#&#30456;&#20114;&#12463;&#12521;&#12473;&#12479;&#12398;&#35336;&#31639;&#12392;&#25551;&#20889;:mutualCluster&#12467;&#12510;&#12531;&#12489;
#&#12487;&#12540;&#12479;&#20363;&#12398;&#20316;&#25104;
TestData2 &lt;- cbind(c(-1.4806,1.5772,-0.9567,-0.92,-1.9976,-0.2723,-0.3153),
                   c(-0.6283,-0.1065,0.428,-0.7777,-1.2939,-0.7796,0.012))
#&#25551;&#20889;&#38936;&#22495;&#12398;&#20998;&#21106;
par(mfrow = c(1,2))
#&#12487;&#12540;&#12479;&#20363;&#12434;&#25551;&#20889;
plot(TestData2, pch = as.character(1:nrow(TestData2)), asp = 1)
#&#12487;&#12531;&#12489;&#12525;&#12464;&#12521;&#12512;&#12398;&#25551;&#20889;
mutualCluster(TestData2, plot = TRUE)

#&#30456;&#20114;&#12463;&#12521;&#12473;&#12479;&#12398;&#36317;&#38626;&#12434;&#34920;&#31034;:get.distances&#12467;&#12510;&#12531;&#12489;
get.distances(mutualCluster(TestData2, plot = FALSE))
[[1]]
    7
3 0.7644933

[[2]]
    4
1 0.5801661

出力例

・eisenClusterコマンド

eisenCluster

・mutualClusterコマンド

mutualCluster

少しでも、あなたのウェブや実験の解析が楽になりますように!!

タイトルとURLをコピーしました