library("FactoMineR")
library("factoextra")
library("datasets")
library(tidyverse)
library(ggplot2)
library(ggpubr)
library(dplyr)
options(scipen=999)
knitr::opts_chunk$set(fig.align = "center")Analisis Korespondensi (Correspondence Analysis) adalah metode statistik multivariat yang digunakan untuk menganalisis hubungan antara dua variabel kategori dalam tabel kontingensi. Metode ini membantu dalam memahami struktur dan hubungan antara variabel-variabel tersebut dengan menggunakan teknik visualisasi yang disebut “biplot”.
Dalam analisis korespondensi, kita memiliki tabel kontingensi yang menggambarkan frekuensi pengamatan untuk kombinasi kategori dari dua variabel. Misalnya, jika kita memiliki dua variabel A dan B, tabel kontingensi akan menyajikan jumlah pengamatan yang jatuh pada setiap kombinasi kategori A dan B.
Analisis korespondensi bekerja dengan mereduksi dimensi tabel kontingensi menjadi ruang yang lebih rendah, sehingga memudahkan interpretasi. Metode ini menghitung koordinat untuk setiap kategori variabel pada sumbu baru yang disebut “dimensi utama”. Koordinat ini mencerminkan hubungan antara kategori-kategori variabel dalam ruang yang lebih rendah tersebut.
Visualisasi utama dalam analisis korespondensi adalah “biplot”. Biplot adalah grafik dua dimensi yang menunjukkan kategori-kategori variabel dan pengaruh mereka terhadap dimensi utama. Kategori variabel yang dekat dalam biplot menunjukkan hubungan yang kuat antara kategori-kategori tersebut, sedangkan kategori variabel yang jauh menunjukkan hubungan yang lemah.
Analisis korespondensi dapat digunakan dalam berbagai bidang, seperti ilmu sosial, ilmu lingkungan, pemasaran, dan bioinformatika. Beberapa aplikasi umumnya meliputi analisis preferensi konsumen, analisis citra merek, analisis korespondensi lingkungan, analisis korespondensi dokumen, dan sebagainya.
Dalam kesimpulannya, analisis korespondensi adalah metode statistik yang digunakan untuk menganalisis hubungan antara dua variabel kategori dalam tabel kontingensi. Metode ini menggunakan teknik visualisasi biplot untuk memahami hubungan antara kategori-kategori variabel dalam ruang yang lebih rendah.
Analisis Korespondensi dapat digunakan untuk menganalisis data tingkat kelulusan siswa dalam periode 4 tahun pada sekolah menengah umum (public high school) berdasarkan ras/etnis dan karakteristik demografi terpilih di Amerika Serikat, termasuk 50 negara bagian, Distrik Columbia, dan Puerto Rico. Metode ini dapat membantu dalam memahami pola hubungan antara variabel-variabel tersebut dan menggambarkannya dalam bentuk visual.
Langkah-langkah umum dalam menerapkan analisis korespondensi pada data seperti ini adalah sebagai berikut:
Persiapan Data: Pastikan data tingkat kelulusan siswa tersedia dalam bentuk tabel kontingensi yang mencantumkan frekuensi pengamatan untuk kombinasi kategori ras/etnis dan karakteristik demografi terpilih. Setiap kolom mewakili kategori dari satu variabel, misalnya ras/etnis, dan setiap baris mewakili kategori dari variabel lainnya, misalnya karakteristik demografi.
Preprocessing Data: Jika diperlukan, lakukan preprocessing data seperti menghilangkan baris atau kolom yang tidak relevan, menggabungkan kategori yang serupa, atau menormalisasi data jika diperlukan.
Analisis Korespondensi: Terapkan metode analisis korespondensi pada tabel kontingensi yang sudah dipersiapkan. Metode ini akan menghasilkan koordinat untuk setiap kategori variabel pada dimensi utama.
Visualisasi: Gunakan teknik visualisasi biplot untuk menggambarkan hasil analisis korespondensi. Dalam biplot, setiap kategori variabel akan diplotkan sebagai titik dalam ruang dua dimensi, di mana jarak antara titik-titik tersebut mencerminkan hubungan antara kategori-kategori tersebut.
Dengan menerapkan analisis korespondensi pada data tingkat kelulusan siswa berdasarkan ras/etnis dan karakteristik demografi, Anda dapat memperoleh pemahaman yang lebih baik tentang pola hubungan antara variabel-variabel tersebut. Anda dapat melihat hubungan antara ras/etnis, karakteristik demografi, dan tingkat kelulusan siswa secara visual, yang dapat membantu dalam mengidentifikasi pola-pola yang menarik atau perbedaan signifikan di antara kelompok-kelompok tersebut.
Namun, penting untuk dicatat bahwa dalam menerapkan analisis korespondensi, penting untuk memastikan bahwa data yang digunakan valid, lengkap, dan mewakili populasi yang relevan. Selain itu, interpretasi hasil analisis korespondensi harus dilakukan dengan hati-hati dan mengacu pada konteks dan pengetahuan domain yang relevan.
graduation <- read.csv("data/graduation.csv", row.names = 'State')
graduation glimpse(graduation)## Rows: 29
## Columns: 7
## $ Black <dbl> 88.2, 74.0, 71.7, 84.5, 76.9, 76.6, 80.0, 8…
## $ White <dbl> 92.2, 84.4, 83.0, 90.9, 87.9, 86.1, 93.4, 9…
## $ Economically.disadvantaged <dbl> 85.5, 72.3, 73.6, 86.2, 81.2, 72.3, 80.6, 8…
## $ English.learner <dbl> 72.0, 68.0, 55.2, 84.4, 69.1, 70.2, 67.0, 7…
## $ Students.with.disabilities <dbl> 68.9, 59.0, 66.2, 84.1, 68.4, 61.8, 68.1, 7…
## $ Homeless.enrolled <dbl> 74.0, 58.0, 48.6, 78.0, 69.7, 56.7, 65.0, 7…
## $ Foster.care <dbl> 67.0, 54.0, 45.0, 65.0, 58.2, 31.0, 47.0, 7…
dataframe graduation memiliki 29 baris dan 7 kolom, dan merupakan table numerik.
summary(graduation)## Black White Economically.disadvantaged English.learner
## Min. :69.00 Min. :82.80 Min. :62.00 Min. :39.00
## 1st Qu.:75.00 1st Qu.:87.80 1st Qu.:75.90 1st Qu.:65.00
## Median :78.90 Median :90.30 Median :79.60 Median :69.00
## Mean :78.98 Mean :89.53 Mean :79.43 Mean :69.04
## 3rd Qu.:84.50 3rd Qu.:92.20 3rd Qu.:85.00 3rd Qu.:76.00
## Max. :88.20 Max. :95.00 Max. :89.80 Max. :89.00
## Students.with.disabilities Homeless.enrolled Foster.care
## Min. :55.40 Min. :48.60 Min. :31.00
## 1st Qu.:63.00 1st Qu.:61.00 1st Qu.:50.00
## Median :68.60 Median :66.00 Median :56.00
## Mean :69.95 Mean :66.62 Mean :55.39
## 3rd Qu.:75.00 3rd Qu.:74.00 3rd Qu.:62.00
## Max. :88.10 Max. :88.00 Max. :74.00
dari fungsi diatas nilai maksimal dari index row > 70 yang berarti kategori black, white, dll memiliki pengaruh terhadap index kelulusan siswa SMA di US.
my_cols <- c("#0D0887FF", "#6A00A8FF", "#B12A90FF","#E16462FF", "#FCA636FF", "#F0F921FF")
ggballoonplot(graduation, fill = "value") +
scale_fill_gradientn(colours = my_cols) +
labs(title = "Balloonplot for Graduation Index") +
theme(plot.title = element_text(hjust = 0.5))
dari plot diatas dapat dilihat bahwa :
mosaicplot(graduation,
las = 2,
shade = T,
off = 25,
main = " Mosaic Plot for Graduation Index")
dari Mosaic Plot diperoleh insight : New york memiliki karakteristik
paling rendah english learner sama seperti connecticut yang paling
rendah untuk foster care
chisq.test(graduation)##
## Pearson's Chi-squared test
##
## data: graduation
## X-squared = 102.98, df = 168, p-value = 1
Karena p-value > 0.05 maka gagal tolak H0 dan menerima H1 berarti ada hubungan antara tingkat kelulusan dengan kategoriwarna kulit (black atau white), Economically disadvantage, English learner, Student with disabilities, Homeless Enrolled, dan Fostercare
graduation.ca <- CA(graduation,graph = FALSE)
graduation.ca$eig## eigenvalue percentage of variance cumulative percentage of variance
## dim 1 0.0030475075 43.678769 43.67877
## dim 2 0.0019539062 28.004596 71.68337
## dim 3 0.0009356291 13.410018 85.09338
## dim 4 0.0006744599 9.666778 94.76016
## dim 5 0.0002193719 3.144174 97.90433
## dim 6 0.0001462165 2.095665 100.00000
Pada dimensi 2 CA berhasil merangkum data sebesar 71.68337%
Berikut adalah kordinat baru untuk variable baris pada dimensi baru.
graduation.ca$row$coord## Dim 1 Dim 2 Dim 3 Dim 4
## Alabama -0.033380129 0.035487857 -0.0231004098 -0.013008876
## Alaska 0.001180289 0.009298571 -0.0119273222 -0.046792397
## Arizona -0.017641217 -0.054904027 0.0599995460 -0.004905556
## Arkansas 0.039177234 0.048321216 0.0089500180 0.015691435
## California -0.006296293 0.020939341 -0.0143271783 0.008465513
## Colorado 0.081789722 -0.112793699 -0.0195202699 -0.014591585
## Connecticut 0.006705500 -0.053733032 -0.0082156321 0.004238630
## Delaware -0.026698651 0.074440852 -0.0011063594 -0.026446954
## District of Columbia -0.063009152 -0.026114661 -0.0017156639 -0.064008073
## Florida 0.059510646 0.013828570 -0.0090048090 0.024623187
## Idaho 0.035503017 -0.053936563 -0.0345313298 0.005821739
## Indiana 0.041453813 0.061116383 -0.0405998850 0.021955984
## Iowa 0.006455232 0.035231870 -0.0073723352 0.010506443
## Kansas 0.049078253 0.038840504 0.0296281957 -0.011947289
## Louisiana -0.079336938 -0.021430735 0.0084420700 0.045427187
## Maine 0.059366115 -0.003456203 0.0195358582 -0.030076882
## Maryland -0.055496133 -0.058737653 0.0016422089 0.019233483
## Massachusetts -0.012879272 -0.006647125 0.0294525767 -0.007899921
## Michigan 0.073690377 -0.047724953 -0.0362212450 -0.025352076
## Mississippi -0.082035520 0.026872484 -0.0733852322 -0.010422522
## Montana -0.049622575 0.068128351 0.0492951688 -0.015745581
## Nebraska -0.080023543 -0.025515027 0.0067967163 0.018977833
## Nevada 0.049805539 0.011356855 -0.0532601035 0.028590036
## New Hampshire 0.035634201 -0.062446150 0.0359616925 0.003151724
## New Jersey 0.013563402 -0.015473045 0.0088631743 0.027345863
## New York -0.152704852 -0.027540877 0.0103404996 0.028347944
## Oklahoma 0.080907302 0.040942866 0.0591061976 0.027756297
## Pennsylvania 0.001199766 0.004802213 0.0003157092 0.016820113
## Rhode Island -0.009975332 0.002882903 0.0082477980 -0.054065802
## Dim 5
## Alabama 0.0192904200
## Alaska 0.0024739898
## Arizona 0.0147285732
## Arkansas -0.0004491340
## California -0.0007968192
## Colorado 0.0142964913
## Connecticut 0.0009630815
## Delaware 0.0086622977
## District of Columbia -0.0479030319
## Florida 0.0062754801
## Idaho -0.0070844686
## Indiana -0.0052067782
## Iowa -0.0109092589
## Kansas -0.0076029371
## Louisiana 0.0055753554
## Maine 0.0173300830
## Maryland 0.0084349967
## Massachusetts 0.0026475175
## Michigan -0.0114578756
## Mississippi 0.0316641387
## Montana -0.0139720319
## Nebraska -0.0097766683
## Nevada -0.0251941731
## New Hampshire -0.0031520206
## New Jersey 0.0003933418
## New York -0.0033374173
## Oklahoma 0.0103317675
## Pennsylvania -0.0181370234
## Rhode Island 0.0155990827
head(graduation.ca$row$cos2)## Dim 1 Dim 2 Dim 3 Dim 4 Dim 5
## Alabama 0.3208277048 0.36262303 0.15365093 0.048727638 0.10714679829
## Alaska 0.0005477674 0.03399787 0.05593777 0.860933906 0.00240666161
## Arizona 0.0413277017 0.40030644 0.47805747 0.003195661 0.02880749759
## Arkansas 0.3553169804 0.54053539 0.01854369 0.056999851 0.00004669822
## California 0.0471891564 0.52191335 0.24433953 0.085305878 0.00075577408
## Colorado 0.3295693941 0.62678571 0.01877245 0.010489489 0.01006951004
# Color by cos2 values: quality on the factor map
fviz_ca_row(graduation.ca, col.row = "cos2",
gradient.cols = c("#00AFBB", "#E7B800", "#FC4E07"),
repel = TRUE,
title="Row Poins based on Their Quality Cos2")
Dari plot diatas disimpulkan bahwa : * Lousiana dan Nebraska memiliki
profil kelulusan yg sama, sama sepeti Idaho dan New Hampsire. * Rhode
Island, Alaska dan Pensylvania mendekati pusat kuadran yang berarti
ketiga negara tersebut memiliki sedikit informasi. * New York, Colorado
letak jauh dari titik koordinat yg lain yang dapat diartikan profil
kelulusan di kedua negara tersebut berbeda jauh dengan negara2 lain.
# Contributions of rows to dimension 1
fviz_contrib(graduation.ca, choice = "row", axes = 1)# Contributions of rows to dimension 2
fviz_contrib(graduation.ca, choice = "row", axes = 2)
Insight:
# Koordinat kolom
head(graduation.ca$col$coord)## Dim 1 Dim 2 Dim 3 Dim 4
## Black -0.02694753 -0.031162726 -0.001803787 -0.01846495
## White -0.03379917 -0.054668035 -0.001439753 -0.01828960
## Economically.disadvantaged -0.01047897 -0.016735097 -0.004384464 0.01904894
## English.learner 0.11856755 0.023156333 -0.012581688 -0.02912370
## Students.with.disabilities 0.03262476 0.001175325 0.061467729 0.03102843
## Homeless.enrolled -0.00239575 0.021551945 -0.053284101 0.03966462
## Dim 5
## Black 0.0220179065
## White -0.0217767766
## Economically.disadvantaged 0.0171858717
## English.learner -0.0007318496
## Students.with.disabilities -0.0053372382
## Homeless.enrolled -0.0086446672
# Kualitas representasi tiap kategori kolom pada plot 2 dimensi
head(graduation.ca$col$cos2)## Dim 1 Dim 2 Dim 3 Dim 4
## Black 0.257760741 0.3447067724 0.001154914 0.12102505
## White 0.230350457 0.6026207115 0.000417978 0.06745053
## Economically.disadvantaged 0.070698512 0.1803141191 0.012376740 0.23362267
## English.learner 0.900620857 0.0343518285 0.010141172 0.05433799
## Students.with.disabilities 0.180905188 0.0002347861 0.642171039 0.16363488
## Homeless.enrolled 0.001134624 0.0918209917 0.561260307 0.31101093
## Dim 5
## Black 0.17208023202
## White 0.09562342981
## Economically.disadvantaged 0.19015879681
## English.learner 0.00003431263
## Students.with.disabilities 0.00484160717
## Homeless.enrolled 0.01477289463
# Kontribusi tiap kategori kolom ke dimensi CA
head(graduation.ca$col$contrib)## Dim 1 Dim 2 Dim 3 Dim 4
## Black 3.69775916 7.71281211 0.05396503 7.844870
## White 6.59461929 26.90827087 0.03897581 8.725186
## Economically.disadvantaged 0.56236030 2.23704747 0.32066510 8.396688
## English.learner 62.57900025 3.72286738 2.29517497 17.059991
## Students.with.disabilities 4.80019745 0.00971676 55.50087665 19.618807
## Homeless.enrolled 0.02465356 3.11179228 39.72216486 30.534570
## Dim 5
## Black 34.29388767
## White 38.03022162
## Economically.disadvantaged 21.01283687
## English.learner 0.03312108
## Students.with.disabilities 1.78468478
## Homeless.enrolled 4.45920072
fviz_ca_col(graduation.ca, col.col = "cos2",
gradient.cols = c("#00AFBB", "#E7B800", "#FC4E07"),
repel = TRUE)
berikut beberapa insight dari visualisasi diatas * English Learner,
Foster Care dan White titiknya berada jauh dari sumbu kuadran, yg
berarti negara dengan persentasi student dengan lulusan yang tinggi
dalam kategori tersebut polanya berbeda dengan negara yang memiliki
persentase tinggi di kategori yang lain. * Foster Care dan Homeless
enrolled berada dalam satu kuadran tapi sangat berjauhan, bisa saja
tingginya anak lulusan dari foster care mungkin berasal dari homeless
enrolled (berpindah-pindah rumah) yang rendah atau sebaliknya. Hal ini
juga bisa diterapkan pada White dan Economically disadvantage pada
kuadran 3.
# Contributions of columns to dimension 1
fviz_contrib(graduation.ca, choice = "col", axes = 1)# Contributions of columns to dimension 2
fviz_contrib(graduation.ca, choice = "col", axes = 2)
Insight:
fviz_ca_biplot(graduation.ca, repel = TRUE, arrows = c(TRUE, TRUE))
berikut beberapa insight dari visualisasi diatas :