1 Background
Istilah “brand personality” merujuk pada karakteristik sifat manusia yang berkaitan dengan nama suatu brand. Perusahaan akan berusaha meningkatkan keuntungannya dengan cara memiliki seperangkat sifat konsisten yang disukai oleh target segmen konsumennya. Seperangkat sifat inilah yang disebut sebagai brand personality. Brand personality menciptakan identitas dan reputasi brand di benak konsumen yang menjadikan suatu brand “kuat” personanya. Perusahaan sebaiknya mendefinisikan brand personality mereka sehingga dapat menyasar konsumen atau pasar yang tepat untuk memaksimumkan profitnya. Brand personality juga menjadi sangat penting di tengah era digital ini dengan adanya artificial intellegent dan otomatisasi. Dengan demikian, pemetaan untuk brand personality dari tiap perusahaan dapat digunakan untuk evaluasi dan merumuskan strategi brand positioning.
Salah satu metode yang sering digunakan untuk pemetaan brand personality adalah Correspondence Analysis. Dengan analisis korespondensi, dibuat plot yang menunjukkan interaksi dua variabel kategorik bersama yaitu variabel nama brand dan variabel brand personality. Sehingga dapat diketahui personality yang melekat dari masing-masing brand suatu perusahaan.
1.1 Analysis Objective
Untuk menemukan personality yang melekat pada masing-masing brand menurut konsumen, serta untuk melihat nama brand apa saja yang memiliki kesamaan dalam hal personality nya.
2 Load R Packages
#install.packages(c("FactoMineR", "factoextra"))
library("FactoMineR")
library("factoextra")
library("dplyr")
library("gplots") #untuk ballonplot
library("graphics") #untuk mosaicplot3 Theory
Asosiasi antara Baris dan Kolom
Tabel kontingensi adalah tabel yang merangkum frekuensi bersama dari observasi pada setiap kategori variabel. Jika tabel kontingensi berukuran kecil, maka mudah untuk menginterpretasikannya. Akan tetapi jika tabel kontingensi yang lebih besar rumit untuk ditafsirkan secara visual dan beberapa metode diperlukan untuk membantu proses ini. Metode statistik yang dapat digunakan untuk mengecek asosiasi tabel kontingensi salah satunya dapat dilakukan dengan uji chi square dan analisis korespondensi.
3.1 Uji Chi Square
Uji Chi-Square digunakan untuk menguji apakah baris dan kolom dari tabel kontingensi secara statistik berhubungan secara signifikan.
- \(H_0\) : Variabel baris dan kolom dari tabel kontingensi adalah independen
- \(H_1\) : Variabel baris dan kolom adalah dependen
Untuk sel tertentu, nilai yang diharapkan dihitung sebagai berikut: \[E_i=\frac{row.sum * col.sum}{grand.total}\] Statistik Chi square dihitung sebagai berikut: \[χ^2= \frac{(O_i - E_i)^2}{E_i}\] keterangan:
- χ2 = Statistik Chi-square
- Oi = Nilai observasi (pengamatan) ke-i
- Ei = Nilai ekspektasi ke-i
Statistik Chi-square yang dihitung ini dibandingkan dengan nilai kritis (diperoleh dari tabel statistik) dengan derajat kebebasan df= ( r − 1 ) ( c − 1 ) dan alpha = 0,05. r adalah jumlah baris dan c adalah jumlah kolom pada tabel kontingensi. Jika statistik Chi-kuadrat yang dihitung lebih besar dari nilai kritis, maka kita dapat menyimpulkan bahwa variabel baris dan kolom tidak independen satu sama lain. Sehingga mereka dikatakan terkait atau memiliki hubungan secara signifikan.
3.2 Correspondence Analysis
Analisis korespondensi (CA) diperlukan untuk tabel kontingensi besar untuk memvisualisasikan titik baris dan titik kolom secara grafis dalam ruang berdimensi rendah. CA adalah metode reduksi dimensi yang diterapkan pada tabel kontingensi. Informasi yang dipertahankan oleh setiap dimensi disebut nilai eigen. Total informasi (atau inersia) yang terkandung dalam data disebut phi (\(ϕ^2\)) dan dapat dihitung sebagai berikut: \[ϕ^2=\frac{χ^2}{grand.total}\] Untuk dimensi tertentu, nilai eigen dihitung sebagai berikut: \[\lambda = \sum\frac{row.sum}{grand.total}*row.coord^2 = \sum\frac{col.sum}{grand.total}*col.coord^2\]
row.coord dan col.coord adalah koordinat variabel baris dan kolom pada dimensi.
3.2.1 CA: Singular value decomposition of the standardized residuals
Analisis korespondensi (CA) digunakan untuk merepresentasikan secara grafis tabel jarak antar variabel baris atau antar variabel kolom. Pendekatan CA mencakup langkah-langkah berikut:
Hitung standardized residuals (S) \[S = \frac{O - E}{\sqrt{E}}\] Standardized residuals adalah akar dari statistik \(χ^2\).
Hitung SVD dari standardized residuals
Misalkan matriks M adalah \[M = \frac{S}{\sqrt{grand.total}}\] Istilah SVD artinya mencari matriks ortogonal U dan V, bersama dengan matriks diagonal D dari matriks M sedemikian sehingga: \[M = UDV^T\] (Phillip M.Yelland, 2010)
- U adalah matriks yang mengandung vektor eigen baris
- D adalah matriks diagonal. Angka-angka pada diagonal matriks disebut nilai singular (\(\delta\)). Nilai eigen adalah nilai singular dikuadratkan, \(\lambda=\delta^2\).
- V adalah matriks yang berisi vektor eigen kolom
Koordinat variabel baris pada sumbu tertentu adalah: \[row.coord = \frac{U * \delta}{\sqrt{row.sum/grand.total}}\] Koordinat variabel kolom pada sumbu tertentu adalah: \[col.coord = \frac{V * \delta}{\sqrt{col.sum/grand.total}}\]
4 Data
Data yang digunakan pada analisis ini didapat dari paper milik Jack Hoare & Tim Bock (2019). Data tersebut merupakan sebuah tabel kontingensi untuk 28 brand dan 15 atribut personality. Data dikumpulkan menggunakan metode nonprobability sampling dari 3173 orang dewasa di Australia pada tahun 2005. Responden diminta untuk menentukan tiga atribut personality untuk setiap brand yang ditunjukkan. Untuk setiap atribut personality, responden ditunjukkan 10 brand.
4.1 Loading Data
Pada data awal, terdapat 16 kolom dengan 1 kolom berisi nama-nama brand (“Brand”) dan 15 kolom lainnya merupakan atribut-atribut personality.
data_brand <- readxl::read_excel("brand.xlsx")
data_brand <- as.data.frame(data_brand)Nilai kolom brand dijadikan sebagai index row untuk memudahkan visualisasi. selanjutnya kolom “Brand” dibuang. Berikut adalah 6 baris pertama dari data:
# meng-assign nilai dari kolom brand menjadi rownames
rownames(data_brand) <- data_brand$Brand
# membuang kolom yang tidak digunakan
data_brand <- data_brand %>%
select(-Brand)
head(data_brand)Deskripsi kolom data:
charming: skor atribut/personality “menarik”cheerful: skor atribut/personality “ceria”daring: skor atribut/personality “berani”down_to_earth: skor atribut/personality “bersahaja”honest: skor atribut/personality “jujur”imaginative: skor atribut/personality “imajinatif”intelligent: skor atribut/personality “cerdas”outdoorsy: skor atribut/personality “tipe luar ruangan”reliable: skor atribut/personality “dapat diandalkan”spirited: skor atribut/personality “bersemangat”successful: skor atribut/personality “sukses”tough: skor atribut/personality “tangguh”up_to_date: skor atribut/personality “terkini”upper_class: skor atribut/personality “kelas sosial atas”wholesome: skor atribut/personality “sehat/baik”
5 Exploratory Data Analysis
Sebelum melakukan analisis, kita harus mengenali data yang akan kita
gunakan yaitu data brand yang berisi nama brand dan atribut-atribut
personality-nya. Langkah ini disebut juga sebagai Exploratory Data
Analysis. Kita dapat dengan cepat memperoleh rangkuman dari data kita
yang berisi five number summary menggunakan fungsi
summary() di R.
summary(data_brand)#> charming cheerful daring down_to_earth
#> Min. : 7.00 Min. : 9.00 Min. : 6.00 Min. : 5.00
#> 1st Qu.:12.00 1st Qu.:22.00 1st Qu.:11.00 1st Qu.:14.00
#> Median :20.00 Median :27.00 Median :20.00 Median :24.00
#> Mean :24.72 Mean :31.48 Mean :24.24 Mean :26.52
#> 3rd Qu.:33.00 3rd Qu.:43.00 3rd Qu.:32.00 3rd Qu.:35.00
#> Max. :59.00 Max. :64.00 Max. :76.00 Max. :68.00
#> honest imaginative intelligent outdoorsy reliable
#> Min. : 6.00 Min. :11.00 Min. : 5.00 Min. : 2.00 Min. : 9.0
#> 1st Qu.:18.00 1st Qu.:17.00 1st Qu.:15.00 1st Qu.:11.00 1st Qu.:30.0
#> Median :27.00 Median :29.00 Median :24.00 Median :22.00 Median :41.0
#> Mean :29.14 Mean :31.66 Mean :30.93 Mean :30.21 Mean :42.9
#> 3rd Qu.:38.00 3rd Qu.:43.00 3rd Qu.:44.00 3rd Qu.:48.00 3rd Qu.:55.0
#> Max. :56.00 Max. :62.00 Max. :75.00 Max. :87.00 Max. :82.0
#> spirited successful tough up_to_date upper_class
#> Min. : 7 Min. :17.00 Min. : 4.00 Min. :19.00 Min. : 3.00
#> 1st Qu.:16 1st Qu.:37.00 1st Qu.:12.00 1st Qu.:29.00 1st Qu.: 9.00
#> Median :24 Median :48.00 Median :20.00 Median :37.00 Median :33.00
#> Mean :27 Mean :47.38 Mean :26.38 Mean :38.48 Mean :32.48
#> 3rd Qu.:35 3rd Qu.:56.00 3rd Qu.:36.00 3rd Qu.:51.00 3rd Qu.:40.00
#> Max. :64 Max. :83.00 Max. :79.00 Max. :78.00 Max. :94.00
#> wholesome
#> Min. : 6.00
#> 1st Qu.:16.00
#> Median :23.00
#> Mean :25.66
#> 3rd Qu.:29.00
#> Max. :80.00
Dikarenakan tujuan analisis kali ini adalah ingin mengidentifikasi atribut personality yang melekat pada tiap brand, maka nilai statistik yang menarik untuk diperhatikan adalah nilai maksimum. karena nama brand sudah kita jadikan index row, maka summary hanya ditampilkan untuk setiap kolom yang ada pada data yang merupakan atribut personality. Dari summary, sekilas kita bisa mendapatkan bahwa:
- terdapat brand yang dikenal “charming” dengan perolehan suara maksimum sebanyak 59
- terdapat brand yang dikenal “cheerful” dengan perolehan suara maksimum sebanyak 64
- terdapat brand yang dikenal “upper_class” dengan perolehan suara maksimum sebanyak 94
- terdapat brand yang dikenal “wholesome” dengan perolehan suara maksimum sebanyak 80
Dari summary, kita bisa mendapatkan bahwa ada beberapa atribut personality yang nilai maksimumnya sangat tinggi dibanding atribut lainnya. Sepertinya, semakin tinggi nilai maksimum untuk suatu atribut personality pada suatu brand maka semakin yakin suara dari para responden.
5.1 Ballon plot
Ballon plot adalah salah satu jenis plot untuk memvisualisasikan data kategorik yang berukuran besar. Fungsi balloon plot membuat tabel grafis di mana setiap sel menampilkan lingkaran berwarna yang ukurannya mencerminkan besar nilainya. Secara visual, plot ini dapat menghighlight poin data yang nilainya menonjol, dengan mempertahankan detail dari datanya. Pada ballon plot, semakin besar ukuran lingkaran maka semakin besar pula nilai datanya.
library(ggpubr)
my_cols <- c("#0D0887FF", "#6A00A8FF", "#B12A90FF","#E16462FF", "#FCA636FF", "#F0F921FF")
ggballoonplot(data_brand, fill = "value")+
scale_fill_gradientn(colors = my_cols) +
labs(title = "Ballon Plot for Brand Personalities") +
theme(plot.title=element_text(hjust=0.5))Plot di atas sudah dimodifikasi agar warna lingkaran juga dapat menunjukkan besarnya nilai, yaitu warna kuning menunjukkan nilai yang semakin besar sementara warna ungu menunjukkan nilai semakin kecil. Pada ballon plot di atas, dapat diketahui bahwa terdapat beberapa brand dengan nilai frekuensi atribut yang tinggi dibanding brand lainnya. Contohnya adalah sebagai berikut:
Brand Mercedes, Porsche dan Calvin Klein Perfume sangat tinggi nilainya di atribut upper class, yang ditandai dengan besarnya ukuran lingkaran dan semakin kuning warna lingkaran. Kita dapat mengartikan bahwa jika menyebut brand-brand tersebut maka yang melekat dalam pikiran orang-orang adalah brand tersebut adalah brand yang dimiliki oleh orang-orang dari kelas sosial atas (sangat kaya).
Jika menyebut brand yang outdoorsy atau brand yang biasa digunakan untuk kegiatan di luar ruangan, berdasarkan plot maka brand yang langsung dipikirkan adalah Nike dan Reebok.
Jika menyebut brand yang successful, maka brand yang dipikirkan adalah Mercedes, Porsche dan Visa.
Jika menyebut brand yang wholesome, maka brand yang dipikirkan adalah Campbell’s Soup.
Dengan menggunakan ballon plot kita dapat dengan cepat menginterpretasikan data kategorik meskipun kita memiliki data yang berukuran besar.
5.2 Mosaic plot
Plot mosaik digunakan untuk memvisualisasikan tabel kontingensi dan untuk memeriksa hubungan antara variabel kategori. Untuk setiap sel, tinggi batang sebanding dengan frekuensi relatif yang diamati yang dikandungnya: \[ \frac{cell.value}{column.sum}\]
Warna pada plot menunjukkan standardized residuals. Seperti yang telah dijelaskan di atas, standardized residuals adalah akar dari statistik Chi-square. Residual dapat diinterpretasikan sebagai berikut: sebuah sel diarsir biru jika kita yakin bahwa sel tersebut lebih tinggi dari sel lain dalam baris yang sama. Sebuah sel diarsir dengan warna merah jika kita yakin bahwa sel tersebut lebih pendek dari sel lain pada baris yang sama
# Mosaic plot of observed values
mosaicplot(data_brand,
las=2,
shade = T,
off = 25,
main = "A Mosaic Plot for Brand & Their Personality")
Dari mosaicplot di atas, kita dapat melihat bahwa:
- Brand avoncosmetics, CalvinKleinPerfume, Hallmarks Cards, OlofOlayLotion, dan RevlonCosmetics memiliki persona charming dibanding brand lain
- Brand MattelToys, McDonald’s, dan PepsiCola memiliki persona cheerful dibanding brand lain
- Brand LeeJeans, Levi’sJeans, Michelin Tires, Nike dan Reebok memiliki persona outdoorsy dibanding brand lain
- Brand American Express, CalvinKleinPerfume, Guess Jeans, Lexus, Mercedes, dan Porsche memiliki persona upper_class dibanding brand lain
- Campbel’s Soup, Colgate Toothpaste, Kmart, dan OlofOlayLotion memiliki persona wholesome dibanding brand lainnya
6 Correspondence Analysis
Correspondence analysis atau analisis korespondensi adalah ekstensi dari Principal Component Analysis yang digunakan untuk mengeksplorasi hubungan antara variabel kualitatif (atau data kategorikal). Seperti PCA, CA dapat merangkum data dan memvisualisasikannya dalam plot dua dimensi.
Saat menganalisis tabel kontingensi dua arah, pertanyaan umumnya adalah apakah elemen baris tertentu diasosiasikan dengan beberapa elemen elemen kolom. Analisis korespondensi adalah pendekatan geometris untuk memberikan visualisasi asosiasi baris dan kolom pada tabel kontingensi dalam sejumlah kecil dimensi. Tujuannya adalah untuk memiliki pandangan global terhadap data yang berguna untuk interpretasi.
Untuk melakukan CA, dapat digunakan fungsi CA() dari
package factomineR
CA(X, ncp = 5, graph = TRUE)
Keterangan:
X: data (tabel kontingensi)ncp: jumlah dimensi yang disimpan di hasil akhir.graph: nilai boolean. Jika TRUE grafik ditampilkan.
brand.ca <- CA(data_brand, graph = FALSE)
summary(brand.ca)#>
#> Call:
#> CA(X = data_brand, graph = FALSE)
#>
#> The chi square of independence between the two variables is equal to 3841.76 (p-value = 0 ).
#>
#> Eigenvalues
#> Dim.1 Dim.2 Dim.3 Dim.4 Dim.5 Dim.6 Dim.7
#> Variance 0.102 0.076 0.036 0.031 0.011 0.007 0.006
#> % of var. 35.985 27.000 12.643 10.966 4.040 2.566 2.155
#> Cumulative % of var. 35.985 62.985 75.629 86.595 90.635 93.201 95.356
#> Dim.8 Dim.9 Dim.10 Dim.11 Dim.12 Dim.13 Dim.14
#> Variance 0.004 0.003 0.003 0.001 0.001 0.001 0.000
#> % of var. 1.277 1.233 0.988 0.504 0.348 0.201 0.094
#> Cumulative % of var. 96.633 97.865 98.854 99.358 99.705 99.906 100.000
#>
#> Rows (the 10 first)
#> Iner*1000 Dim.1 ctr cos2 Dim.2 ctr cos2
#> AmericanExpress | 10.595 | -0.430 4.991 0.479 | -0.263 2.482 0.179 |
#> Applecomputers | 8.272 | -0.110 0.415 0.051 | -0.296 4.028 0.371 |
#> Avoncosmetics | 6.700 | 0.424 3.530 0.535 | -0.244 1.555 0.177 |
#> CalvinKleinPerfume | 18.327 | -0.483 7.452 0.413 | -0.339 4.891 0.203 |
#> Campbell’sSoup | 21.229 | 0.671 13.988 0.670 | -0.094 0.366 0.013 |
#> ColgateToothpaste | 10.186 | 0.433 7.096 0.708 | -0.085 0.361 0.027 |
#> DietCoke | 4.645 | 0.138 0.514 0.113 | 0.156 0.871 0.143 |
#> GuessJeans | 6.779 | -0.417 3.349 0.502 | 0.093 0.223 0.025 |
#> HallmarkCards | 12.027 | 0.288 3.078 0.260 | -0.392 7.573 0.480 |
#> IBMComputers | 10.905 | -0.134 0.636 0.059 | -0.254 3.051 0.213 |
#> Dim.3 ctr cos2
#> AmericanExpress -0.140 1.507 0.051 |
#> Applecomputers -0.213 4.453 0.192 |
#> Avoncosmetics 0.237 3.129 0.167 |
#> CalvinKleinPerfume 0.452 18.584 0.362 |
#> Campbell’sSoup 0.080 0.569 0.010 |
#> ColgateToothpaste -0.117 1.485 0.052 |
#> DietCoke 0.120 1.091 0.084 |
#> GuessJeans 0.339 6.306 0.332 |
#> HallmarkCards 0.187 3.697 0.110 |
#> IBMComputers -0.449 20.407 0.668 |
#>
#> Columns (the 10 first)
#> Iner*1000 Dim.1 ctr cos2 Dim.2 ctr cos2
#> charming | 21.917 | -0.117 0.715 0.033 | -0.418 12.087 0.420 |
#> cheerful | 23.790 | 0.418 11.557 0.494 | -0.008 0.006 0.000 |
#> daring | 16.867 | -0.432 9.510 0.573 | 0.156 1.640 0.074 |
#> down_to_earth | 25.282 | 0.592 19.512 0.784 | 0.163 1.963 0.059 |
#> honest | 11.628 | 0.353 7.632 0.667 | -0.100 0.809 0.053 |
#> imaginative | 14.850 | 0.041 0.109 0.007 | -0.156 2.156 0.111 |
#> intelligent | 20.739 | -0.203 2.686 0.132 | -0.260 5.854 0.215 |
#> outdoorsy | 34.698 | -0.134 1.136 0.033 | 0.685 39.576 0.870 |
#> reliable | 7.381 | 0.140 1.752 0.241 | -0.044 0.235 0.024 |
#> spirited | 7.879 | -0.210 2.491 0.321 | 0.183 2.526 0.244 |
#> Dim.3 ctr cos2
#> charming 0.404 24.088 0.392 |
#> cheerful 0.222 9.254 0.139 |
#> daring 0.238 8.230 0.174 |
#> down_to_earth 0.073 0.850 0.012 |
#> honest -0.077 1.031 0.032 |
#> imaginative -0.050 0.472 0.011 |
#> intelligent -0.436 35.181 0.606 |
#> outdoorsy 0.094 1.600 0.016 |
#> reliable -0.152 5.937 0.287 |
#> spirited 0.102 1.693 0.077 |
Dalam menginterpretasikan summary dari analisis korespondensi, terdapat beberapa output yang dihasilkan yaitu statistik Chi-square, nilai Eigen, komponen baris dan komponen kolom. Selanjutnya, akan dibahas satu per satu terkait output ini.
6.1 Uji Chi Square
Untuk menginterpretasikan CA, perlu dilakukan uji chi square untuk memeriksa hubungan antara variabel baris dan kolom.
Dengan rumusan hipotesis sebagai berikut.
- \(H_0\) : Variabel nama brand dan atribut personality dari tabel kontingensi adalah independen
- \(H_1\) : Variabel nama brand dan atribut personality adalah dependen
Pada summary di atas, diketahui bahwa p-value yang diperoleh adalah sebesar p-value = 0 < alpha = 0.05. Maka \(H_0\) ditolak, dan dapat disimpulkan terdapat hubungan yang signifikan antara nama brand dan atribut personality.
6.2 Nilai Eigen / Variance
Sama seperti di PCA, eigen atau variance juga menunjukkan banyak
informasi yang dipertahankan oleh setiap dimensi. Dimensi 1 menjelaskan
variansi terbanyak, diikuti oleh dimensi 2 dan seterusnya. Pada summary
brand.ca kita dapat memanggil nilai eigen dengan
$eig.
brand.ca$eig#> eigenvalue percentage of variance cumulative percentage of variance
#> dim 1 0.1016068450 35.98514267 35.98514
#> dim 2 0.0762365463 26.99998211 62.98512
#> dim 3 0.0356997982 12.64346247 75.62859
#> dim 4 0.0309644217 10.96637863 86.59497
#> dim 5 0.0114072819 4.04000996 90.63498
#> dim 6 0.0072451320 2.56594041 93.20092
#> dim 7 0.0060861501 2.15547467 95.35639
#> dim 8 0.0036043001 1.27650116 96.63289
#> dim 9 0.0034801183 1.23252085 97.86541
#> dim 10 0.0027901258 0.98815267 98.85357
#> dim 11 0.0014229304 0.50394591 99.35751
#> dim 12 0.0009812083 0.34750532 99.70502
#> dim 13 0.0005686232 0.20138394 99.90640
#> dim 14 0.0002642847 0.09359923 100.00000
Nilai eigen dapat digunakan untuk menentukan jumlah dimensi yang dipertahankan. Tidak ada “aturan praktis” untuk memilih jumlah dimensi yang akan disimpan untuk interpretasi data, tergantung pada pertanyaan penelitian dan kebutuhan peneliti.
6.3 Rows Components
Fungsi get_ca_row() dari package factoextra
dapat digunakan untuk mengekstrak hasil komponen variabel baris pada
summary(brand.ca).
row <- get_ca_row(brand.ca)Komponen fungsi get_ca_row() berisi:
$coord: koordinat setiap titik baris pada setiap dimensi (1,2,dst). Digunakan untuk membuat plot.$cos2: kualitas representasi baris.$contrib: kontribusi baris (dalam %) terhadap definisi dimensi.
6.3.1 Rows Coordinat
CA menghasilkan koordinat baru untuk variabel baris pada dimensi baru, yang diperoleh dari perhitungan: \[row.coord = \frac{U * \delta}{\sqrt{row.sum/grand.total}}\]
head(row$coord)#> Dim 1 Dim 2 Dim 3 Dim 4
#> AmericanExpress -0.4300943 -0.26274259 -0.14006556 0.135092794
#> Applecomputers -0.1096303 -0.29594656 -0.21293975 -0.204124786
#> Avoncosmetics 0.4243850 -0.24395914 0.23683297 0.004318099
#> CalvinKleinPerfume -0.4833259 -0.33917232 0.45242792 0.010585488
#> Campbell’sSoup 0.6706219 -0.09390081 0.08016308 0.390171002
#> ColgateToothpaste 0.4326740 -0.08456799 -0.11733869 0.145138207
#> Dim 5
#> AmericanExpress -0.1143892938
#> Applecomputers 0.0945932165
#> Avoncosmetics 0.0520569517
#> CalvinKleinPerfume 0.0197906060
#> Campbell’sSoup -0.0006043648
#> ColgateToothpaste -0.1105428705
Gunakan fungsi fviz_ca_row() [in factoextra] untuk
memvisualisasikan hanya titik baris:
fviz_ca_row(brand.ca, repel = TRUE)
Plot di atas menunjukkan hubungan antara titik baris (brand):
- Baris dengan profil serupa dikelompokkan bersama. Sehingga brand yang memiliki karakteristik personality serupa akan cenderung saling berdekatan atau berada dalam kuadran yang sama. Seperti Nike, Reebok, Levi’s Jeans, dan Michelin Tires berada berdekatan dan dalam satu kuadran yang sama. Nampaknya keempat brand ini memiliki kemiripan personality outdoorsy jika ditelusuri lewat ballon plot.
- Baris berkorelasi negatif diposisikan di sisi berlawanan dari asal plot (kuadran berlawanan). Sehingga brand yang memiliki karakteristik personality yang bertolak belakang akan berada pada kuadran yang berlawanan.
6.3.2 Quality of representation of rows
CA dapat merangkum data dan memvisualisasikannya dalam plot dua dimensi. Perhatikan bahwa dua dimensi baru (dimensi 1 & 2) dapat mempertahankan 62.89% dari total inersia (variasi) yang terkandung dalam data. Namun, tidak semua titik data ditampilkan dengan sama baiknya dalam dua dimensi. kualitas representasi baris pada peta faktor disebut cosinus kuadrat (cos2). \[cos2 = \frac{row.coord^2}{d^2}\] dengan row.coord adalah koordinat baris pada sumbu \(d^2\) adalah jarak kuadrat dari rata-rata profil baris.
head(row$cos2)#> Dim 1 Dim 2 Dim 3 Dim 4
#> AmericanExpress 0.47865009 0.17862894 0.050763739 0.0472231809
#> Applecomputers 0.05094028 0.37121579 0.192182277 0.1766002553
#> Avoncosmetics 0.53539088 0.17692336 0.166738278 0.0000554289
#> CalvinKleinPerfume 0.41313819 0.20344923 0.362004553 0.0001981696
#> Campbell’sSoup 0.66951479 0.01312633 0.009566509 0.2266285701
#> ColgateToothpaste 0.70784155 0.02704123 0.052059124 0.0796485554
#> Dim 5
#> AmericanExpress 0.0338580256331
#> Applecomputers 0.0379244968931
#> Avoncosmetics 0.0080557958669
#> CalvinKleinPerfume 0.0006926812326
#> Campbell’sSoup 0.0000005437547
#> ColgateToothpaste 0.0462036061552
Nilai cos2 adalah 0 sampai 1. Jumlah cos2 untuk baris pada semua dimensi CA sama dengan satu. Jika item baris terwakili dengan baik oleh dua dimensi, jumlah dari cos2 mendekati satu. Berikut divisualisasikan nilai cos2 untuk masing-masing brand. Semakin oranye warna suatu brand, semakin bagus kualitas representasi suatu brand tersebut pada plot CA.
# Color by cos2 values: quality on the factor map
fviz_ca_row(brand.ca, col.row = "cos2",
gradient.cols = c("#00AFBB", "#E7B800", "#FC4E07"),
repel = TRUE,
title="Row Poins based on Their Quality Cos2")# Cos2 of rows on Dim.1 and Dim.2
fviz_cos2(brand.ca, choice = "row", axes = 1:2)6.3.3 Contributions of rows to the dimensions
Variabel baris dengan nilai yang lebih besar, berkontribusi paling besar terhadap definisi dimensi. Baris yang paling berkontribusi pada Dim.1 dan Dim.2 adalah yang paling penting dalam menjelaskan variabilitas dalam kumpulan data.
head(row$contrib)#> Dim 1 Dim 2 Dim 3 Dim 4 Dim 5
#> AmericanExpress 4.9909437 2.4824248 1.5065215 1.615770807 3.1446111483
#> Applecomputers 0.4146927 4.0276460 4.4528252 4.717549052 2.7499558788
#> Avoncosmetics 3.5304969 1.5549262 3.1293734 0.001199392 0.4731666399
#> CalvinKleinPerfume 7.4518700 4.8908655 18.5840840 0.011729161 0.1112869233
#> Campbell’sSoup 13.9884797 0.3655220 0.5688805 15.537637760 0.0001011939
#> ColgateToothpaste 7.0957696 0.3612848 1.4853114 2.620000369 4.1255335476
Besar kontribusi variabel baris pada dimensi 1 dan 2 dapat dilihat dengan visualisasi berikut:
# Contributions of rows to dimension 1
fviz_contrib(brand.ca, choice = "row", axes = 1)# Contributions of rows to dimension 2
fviz_contrib(brand.ca, choice = "row", axes = 2)Dapat dilihat bahwa:
- item baris Campbell’s Kmart, Porsche adalah yang paling penting dalam definisi dimensi pertama.
- item baris Lee Jeans berkontribusi paling besar pada dimensi 2.
6.4 Columns Components
Fungsi get_ca_col() dari package factoextra
dapat digunakan untuk mengekstrak hasil komponen variabel baris pada
summary(brand.ca). Berikut adalah output yang dihasilkan
untuk komponen variabel kolom, yaitu $coord,
$cos2 dan $contrib yang memiliki arti serupa
dengan output komponen baris.
col <- get_ca_col(brand.ca)6.4.1 Columns Coordinat
Pada komponen kolom, cos2 memiliki formula: \[cos2 = \frac{col.coord^2}{d^2}\]
head(col$coord)#> Dim 1 Dim 2 Dim 3 Dim 4 Dim 5
#> charming -0.11737879 -0.418163663 0.40396413 0.15319744 0.08982199
#> cheerful 0.41831869 -0.008226802 0.22189043 -0.32437698 -0.04503380
#> daring -0.43244316 0.155536449 0.23846887 -0.04804722 -0.03034045
#> down_to_earth 0.59226080 0.162709583 0.07327456 0.15314815 -0.05017338
#> honest 0.35335280 -0.099681167 -0.07699910 0.12707796 0.07533147
#> imaginative 0.04052672 -0.156084506 -0.04996894 -0.36735381 0.22016171
6.4.2 Quality of representation of column
head(col$cos2)#> Dim 1 Dim 2 Dim 3 Dim 4 Dim 5
#> charming 0.033127834 0.4204422544 0.39237325 0.05643088 0.019398990
#> cheerful 0.493577624 0.0001908987 0.13887308 0.29678433 0.005720292
#> daring 0.572866461 0.0741070791 0.17420424 0.00707183 0.002819937
#> down_to_earth 0.784165294 0.0591844903 0.01200295 0.05243305 0.005627667
#> honest 0.666850851 0.0530686284 0.03166525 0.08624862 0.030308505
#> imaginative 0.007462045 0.1106864590 0.01134423 0.61311790 0.220220875
Seperti titik baris, titik kolom juga dapat diwarnai dengan nilai cos2:
fviz_ca_col(brand.ca, col.col = "cos2",
gradient.cols = c("#00AFBB", "#E7B800", "#FC4E07"),
repel = TRUE)fviz_cos2(brand.ca, choice = "col", axes = 1:2)6.4.3 Contributions of columns to the dimensions
head(col$contrib)#> Dim 1 Dim 2 Dim 3 Dim 4 Dim 5
#> charming 0.7145703 12.08698709 24.0884326 3.9941901 3.7271069
#> cheerful 11.5566478 0.00595716 9.2544727 22.8022329 1.1929861
#> daring 9.5095497 1.63955506 8.2304292 0.3852107 0.4169527
#> down_to_earth 19.5118693 1.96272261 0.8500345 4.2811101 1.2472700
#> honest 7.6316834 0.80944856 1.0314109 3.2389465 3.0895622
#> imaginative 0.1090617 2.15609846 0.4718964 29.4048067 28.6690710
Untuk memvisualisasikan kontribusi kolom ke dua dimensi pertama:
# Contributions of columns to dimension 1
fviz_contrib(brand.ca, choice = "col", axes = 1)# Contributions of columns to dimension 2
fviz_contrib(brand.ca, choice = "col", axes = 2)
Dapat dilihat bahwa:
- item kolom upper_class dan down_to_earth adalah yang paling penting dalam definisi dimensi pertama.
- item kolom outdoorsy berkontribusi paling besar pada dimensi 2.
6.5 Biplot
Plot standar analisis korespondensi adalah biplot simetris di mana baris (titik biru) dan kolom (segitiga merah) direpresentasikan dalam ruang yang sama menggunakan koordinat baru. Koordinat ini mewakili profil baris dan kolom.
fviz_ca_biplot(brand.ca, repel = TRUE)
Dari biplot simetris di atas, diperoleh bahwa jarak brand Nike, Reebok
dan Michelin Tires sangat dekat sehingga mereka memiliki kesamaan profil
personality (profil baris). Jika diperhatikan atribut personality yang
berada di sekitar mereka adalah outdoorsy, tough dan spirited.
Kita bisa mendefinisikan kemiripan atribut personality yang dimiliki oleh tiap brand dengan melihat jarak antar brand dalam satu kuadran, dan mengetahui atribut personality mana yang sekiranya dimiliki dengan melihat dalam satu kuadran atribut personality yang terdekat.
Dengan demikian, berdasarkan profil baris (personality), berikut adalah pemetaan yang terlihat jelas dari biplot di atas:
- Outdoorsy, tough, & spirited: Nike, Reebok, Michelin Tires
- Daring: GuessJeans
- Upper_class: CalvinKleinPerfume, AmericanExpress, Lexus
- Intellegent: IBMCoumputers, Apple, Sony Televisions
- Charming: Revlon Cosmetics
- Down_to_eart: Kmart
- Wholesome: Campbell’s Soup, Avoncosmetics
- Cheerful & honest: Lego, Mattel Toys, Colgate Toothpaste
- Successful: Visa
7 Conclusion
CA memberikan hasil visualisasi yang mudah diinterpretasi sehingga kita dengan mudah menemukan asosiasi dari dua kategori variabel. Correspondence analysis dapat membantu kita mendefinisikan personality (variabel 1) dari suatu brand (variabel 2). Sebelumnya, telah dibahas juga detail komponen analisis korespondensi dan intuisi matematikanya. Berdasarkan analisis yang telah dilakukan, diperoleh terdapat beberapa pemetaan personality untuk brand-brand yang ada. Yaitu brand Nike, Reebok dan Michelin Tires tampaknya memiliki personality yang outdoorsy, tough & spirited; brand Guess Jeans memiliki personality darin; brand Calvin Klein Perfume, American Express dan Lexus memiliki personality upper class; brand IBM, Apple & Sony Televisions memiliki personality intellegent; brand Revlonn Cosmetics memiliki personality charming; brand Kmart memiliki personality charming; brand Campbell’s Soup dan Avoncosmetics memiliki personality wholesome; brand Lego, Mattel Toys, Colgate Toothpaste memiliki personality cheerful & honest; dan brand Visa memiliki personality successful. Jika dibandingkan dengan ballon plot dan mosaicplot, ada beberapa hasil pemetaan yang sama. Namun, CA memberikan hasil pemetaan yang lebih kuat dengan memvisualisasikan kedua variabel pada biplot.
Setelah mengetahui pemetaan personality untuk masing-masing brand, perusahaan dapat memaksimalkan marketingnya dengan memperkuat personality yang telah melekat serta merumuskan strategi brand positioning.
8 Reference:
- Definisi brand personality: https://www.investopedia.com/terms/b/brand-personality.asp
- Ballonplot: https://www.cs.cmu.edu/afs/andrew/course/02/250/R/x86_64-redhat-linux-gnu-library/3.3/gplots/doc/BalloonPlot.pdf
- A brand eye: https://journals.sagepub.com/doi/10.1177/1470785318801480
- Mosaicplot: http://alumni.media.mit.edu/~tpminka/courses/36-350.2001/lectures/day12/
- http://www.sthda.com/english/articles/31-principal-component-methods-in-r-practical-guide/113-ca-correspondence-analysis-in-r-essentials/
- http://www.sthda.com/english/articles/31-principal-component-methods-in-r-practical-guide/120-correspondence-analysis-theory-and-practice/