Bagaimana menafsirkan tinggi dendrogram untuk pengelompokan dengan korelasi


8

Diberikan bingkai data berikut:

df <- data.frame(x1 = c(26, 28, 19, 27, 23, 31, 22, 1, 2, 1, 1, 1),
                 x2 = c(5, 5, 7, 5, 7, 4, 2, 0, 0, 0, 0, 1),
                 x3 = c(8, 6, 5, 7, 5, 9, 5, 1, 0, 1, 0, 1),
                 x4 = c(8, 5, 3, 8, 1, 3, 4, 0, 0, 1, 0, 0),
                 x5 = c(1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0),
                 x6 = c(2, 3, 1, 0, 1, 1, 3, 37, 49, 39, 28, 30))

Seperti yang

> df
   x1 x2 x3 x4 x5 x6
1  26  5  8  8  1  2
2  28  5  6  5  1  3
3  19  7  5  3  1  1
4  27  5  7  8  1  0
5  23  7  5  1  1  1
6  31  4  9  3  0  1
7  22  2  5  4  1  3
8   1  0  1  0  0 37
9   2  0  0  0  0 49
10  1  0  1  1  0 39
11  1  0  0  0  0 28
12  1  1  1  0  0 30

Saya ingin mengelompokkan 12 orang ini menggunakan kelompok hierarkis, dan menggunakan korelasi sebagai ukuran jarak. Jadi ini yang saya lakukan:

clus <- hcluster(df, method = 'corr')

Dan ini adalah plot dari clus:

dendogram

Ini dfsebenarnya salah satu dari 69 kasus yang saya lakukan analisis cluster. Untuk mendapatkan titik potong, saya telah melihat beberapa dendogram dan bermain-main dengan hparameter cutreesampai saya puas dengan hasil yang masuk akal untuk kebanyakan kasus. Jumlah itu k = .5. Jadi ini adalah pengelompokan yang kita miliki setelahnya:

> data.frame(df, cluster = cutree(clus, h = .5))
   x1 x2 x3 x4 x5 x6 cluster
1  26  5  8  8  1  2       1
2  28  5  6  5  1  3       1
3  19  7  5  3  1  1       1
4  27  5  7  8  1  0       1
5  23  7  5  1  1  1       1
6  31  4  9  3  0  1       1
7  22  2  5  4  1  3       1
8   1  0  1  0  0 37       2
9   2  0  0  0  0 49       2
10  1  0  1  1  0 39       2
11  1  0  0  0  0 28       2
12  1  1  1  0  0 30       2

Namun, saya mengalami kesulitan menafsirkan batas 0,5 dalam kasus ini. Saya telah melihat-lihat Internet, termasuk halaman bantuan ?hcluster, ?hclustdan ?cutree, tetapi tidak berhasil. Yang paling jauh saya memahami proses adalah dengan melakukan ini:

Pertama, saya melihat bagaimana penggabungan dibuat:

> clus$merge
      [,1] [,2]
 [1,]   -9  -11
 [2,]   -8  -10
 [3,]    1    2
 [4,]  -12    3
 [5,]   -1   -4
 [6,]   -3   -5
 [7,]   -2   -7
 [8,]   -6    7
 [9,]    5    8
[10,]    6    9
[11,]    4   10

Yang berarti semuanya dimulai dengan bergabung dengan pengamatan 9 dan 11, kemudian pengamatan 8 dan 10, kemudian langkah 1 dan 2 (yaitu, bergabung dengan 9, 11, 8 dan 10), dll. Membaca tentang mergenilai hclustermembantu memahami matriks di atas.

Sekarang saya perhatikan ketinggian setiap langkah:

> clus$height
[1] 1.284794e-05 3.423587e-04 7.856873e-04 1.107160e-03 3.186764e-03 6.463286e-03 
6.746793e-03 1.539053e-02 3.060367e-02 6.125852e-02 1.381041e+00
> clus$height > .5
[1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE

Yang berarti pengelompokan berhenti hanya pada langkah terakhir, ketika ketinggian akhirnya naik di atas 0,5 (seperti Dendogram sudah menunjuk, BTW).

Sekarang, inilah pertanyaan saya: bagaimana cara menafsirkan ketinggian? Apakah itu "sisa dari koefisien korelasi" (tolong jangan terkena serangan jantung)? Saya dapat mereproduksi ketinggian langkah pertama (bergabung dengan pengamatan 9 dan 11) seperti:

> 1 - cor(as.numeric(df[9, ]), as.numeric(df[11, ]))
[1] 1.284794e-05

Dan juga untuk langkah berikut, yang menggabungkan pengamatan 8 dan 10:

> 1 - cor(as.numeric(df[8, ]), as.numeric(df[10, ]))
[1] 0.0003423587

Tapi langkah selanjutnya melibatkan bergabung dengan 4 pengamatan itu, dan saya tidak tahu:

  1. Cara menghitung ketinggian langkah ini dengan benar
  2. Apa sebenarnya arti dari masing-masing ketinggian itu.

1
Anda mungkin dapat memperoleh beberapa informasi dari jawaban saya di sini: Menentukan pengguna yang serupa dari pengelompokan hierarki .
gung - Reinstate Monica

Jawaban:


5

Ingatlah bahwa dalam pengelompokan hierarkis, Anda harus menentukan metrik jarak antar kluster. Misalnya, dalam pengelompokan pertalian rata-rata hierarkis (mungkin opsi paling populer), jarak antar klaster ditentukan sebagai jarak rata-rata antara semua pasangan antar-kluster. Jarak antara pasangan juga harus ditentukan dan bisa, misalnya, jarak euclidean (atau jarak korelasi dalam kasus Anda). Jadi jarak antar cluster adalah cara untuk menggeneralisasi jarak antar pasangan.

Dalam dendrogram, sumbu y hanyalah nilai dari metrik jarak ini di antara kluster. Misalnya, jika Anda melihat dua kluster digabungkan pada ketinggianxIni berarti jarak antar kluster itu x.


Menarik. Bagaimana saya kemudian menghitung jarak korelasi antara cluster {9, 11} dan {8, 10}, dalam kasus saya?
Waldir Leoncio

2
Jika Anda menggunakan tautan rata-rata, maka itu akan menjadi 0,25(d(9,8)+d(9,10)+d(11,8)+d(11,10))dimana d(Sebuah,b) adalah jarak (jarak korelasi) antara instance Sebuah dan b.
Bitwise
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.