7

次の R コードを使用して、TraMineR シーケンスに基づくラベルを使用してデンドログラム (添付の図を参照) を生成します。

library(TraMineR)
library(cluster)
clusterward <- agnes(twitter.om, diss = TRUE, method = "ward")
plot(clusterward, which.plots = 2, labels=colnames(twitter_sequences))

完全なコード (データセットを含む) は、ここにあります。

デンドログラムがグラフィカルに表示されるのと同じくらい有益ですが、同じ情報をテキストおよび/または表形式で取得すると便利です。"order" や "merge" など、オブジェクト clusterward (agnes によって作成された) のいずれかの側面を呼び出すと、 から取得した名前ではなく、番号を使用してラベル付けされたすべてのものを取得しcolnames(twitter_sequences)ます。また、デンドログラムでグラフィカルに表されたグループを出力する方法がわかりません。

要約すると、R と理想的にはトラミナー/クラスター ライブラリを使用して、ラベルが適切に表示されたテキスト/テーブル形式のクラスター出力を取得するにはどうすればよいですか?

ここに画像の説明を入力

4

1 に答える 1

4

質問はclusterパッケージに関するものです。agnes.objectによって返された のヘルプ ページagnes ( http://stat.ethz.ch/R-manual/R-devel/library/cluster/html/agnes.object.htmlを参照) には、このオブジェクトにはorder.lab「に類似したコンポーネントが含まれている」と記載されていますorder。ただし、観測番号の代わりに観測ラベルが含まれています。このコンポーネントは、元の観測にラベルが付けられている場合にのみ使用できます。"

twitter.omTraMineR によって生成された非類似度マトリックス (この場合) は、現在、シーケンス ラベルを行名および列名として保持していません。コンポーネントを取得するには、マトリックスのとのorder.lab両方としてシーケンス ラベルを手動で割り当てる必要があります。ここでは、TraMineR パッケージによって提供されるデータを使用して説明します。rownamescolnamestwitter.ommvad

library(TraMineR)
data(mvad)
## attaching row labels 
rownames(mvad) <- paste("seq",rownames(mvad),sep="")
mvad.seq <- seqdef(mvad[17:86]) 
## computing the dissimilarity matrix
dist.om <- seqdist(mvad.seq, method = "OM", indel = 1, sm = "TRATE")
## assigning row and column labels 
rownames(dist.om) <- rownames(mvad) 
colnames(dist.om) <- rownames(mvad) 
dist.om[1:6,1:6]

## Hierarchical cluster with agnes library(cluster) 
cward <- agnes(dist.om, diss = TRUE, method = "ward")

## here we can see that cward has an order.lab component 
attributes(cward)

orderこれは、数字ではなくシーケンス ラベルを取得するためのものです。しかし、今では、テキスト/テーブル形式でどのクラスターの結果が必要かは明確ではありません。cutree樹状図から、切り取る場所、つまり必要なグループの数を決定し、樹状図を で切り取りますcl.4 <- cutree(clusterward1, k = 4)。結果cl.4は、各シーケンスのクラスター メンバーシップを持つベクトルであり、グループ 1 のメンバーのリストを取得しますrownames(mvad.seq)[cl.4==1]

または、identifyメソッド ( を参照?identify.hclust) を使用してプロットから対話的にグループを選択できますが、引数を として渡す必要があります as.hclust(cward)。ここに例のコードがあります

## plot the dendrogram
plot(cward, which.plot = 2, labels=FALSE)

## and select the groups manually from the plot
x <- identify(as.hclust(cward)) ## Terminate with second mouse button

## number of groups selected
length(x)
## list of members of the first group
x[[1]] 

お役に立てれば。

于 2012-08-14T13:10:59.850 に答える