1 LBB Announcement

Dear Bapak/Ibu,

Selamat atas keberhasilannya melewati 3 hari pembelajaran di kelas DSS - Correspondence Analysis for Brand Personalities! Dalam rangka meningkatkan kemampuan Bapak dan Ibu dalam mengimplementasikan ilmu yang didapatkan di kelas, kami menyediakan modul Learn by Building (LBB) sebagai sarana Bapak dan Ibu untuk berlatih dalam membangun study case.

Modul LBB ini akan menjadi syarat Bapak/Ibu untuk mendapatkan sertifikat pembelajaran DSS pada kali ini. Pengerjaan LBB ini juga akan meningkatkan skill sebagai seorang Data Scientist agar dapat mengerjakan modul tambahan ini, hasil dari model tambahan ini dapat ditambahkan sebagai portofolio pribadi.

2 LBB Rubrics

2.1 Rubrics

Dalam pembuatan report, jangan lupa untuk menyertakan hal-hal berikut:

  1. Import Data
  2. Data Preprocessing: Contingency Table
  3. EDA: Ballonplot & Mosaicplot
  4. Chi-Square Test
  5. Row component & column component
  6. Biplot Interpretation

2.2 Dataset

Dalam pembuatan report LBB ini, kami juga sudah menyediakan sebuah data yang dapat digunakan yaitu graduation.csv. Data tersebut merupakan data dari National Center for Education Statistics (NCES) yang memberikan informasi mengenai persentase siswa SMA di Amerika Serikat yang lulus pada tahun ajaran 2019-2020, berdasarkan karakteristik seperti etnis, status miskin, bahasa Inggris sebagai bahasa kedua, dan kecacatan. Data tersebut dapat digunakan untuk memahami tingkat kelulusan siswa di Amerika Serikat dan perbedaan dalam tingkat kelulusan di antara kelompok-kelompok tersebut

graduation <- readxl::read_xlsx("data/graduation.xlsx")
graduation

Deskripsi tiap kolomnya dapat dilihat pada link berikut

3 Submission

Hasil report analysis yang telah dikerjakan, silakan dibuat dalam bentuk .html, kemudian silakan mencantumkan file .html tersebut kepada bagian assigment LBB yang sudah diassiggn kepada Bapak/Ibu semua. Bapak/Ibu akan kami berikan feedback terkait pekerjaan Bapak/Ibu yang mengumpulkan modul Learn by Building ini mengenai hal-hal yang dirasa bisa dikembangkan.

Untuk melakukan transformasi R Markdown menjadi format yang kita inginkan, kita bisa mengklik tombol knit dan memilih format file yang di-inginkan. Untuk ilustrasi yang lebih jelas, bisa melihat gambar di bawah ini.

knitr::include_graphics("assets/knit.png")

Jika ada pertanyaan yang ingin Bapak/Ibu tanyakan, silahkan menghubungi kami via email di . Kami akan dengan senang hati membantu.

Terima kasih dan good luck !


Template LBB:

4 Library & Setup

library("dplyr")

#data analysis
library("FactoMineR")
library("factoextra")

#data visualization
library("ggpubr") #untuk balloonplot
library("graphics") #untuk mosaicplot
library("ggplot2")

#data reference
library("datasets")
library(plotly)

5 Import Data

graduation <- read.csv("data/graduation.csv")
graduation

6 Data Preprocessing: Contingency Table

rownames(graduation) <- graduation$State
graduation
# Membuang kolom yang tidak digunakan
graduation_table <- graduation %>% 
  select(-State)
graduation_table

7 EDA: Ballonplot & Mosaicplot

7.1 EDA : Ballonplot

summary(graduation_table)
#>      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
my_cols <- c("#0D0887FF", "#6A00A8FF", "#B12A90FF","#E16462FF", "#FCA636FF", "#F0F921FF")

plot1 <- ggballoonplot(graduation_table, fill = "value") +
  scale_fill_gradientn(colours = my_cols) +
  labs(title = "Balloonplot for Brand Personalites") +
  theme(plot.title = element_text(hjust = 0.5))
 
ggplotly(plot1,height = 800, width = 800)

7.2 EDA : Mosaicplot

# Mosaic plot of observed values
mosaicplot(graduation_table,
           las = 2,
           shade = T,
           off = 25,
           main = "Mosaic plot for brand personalities")

8 Chi-Square Test

chisq.test(graduation_table)
#> 
#>  Pearson's Chi-squared test
#> 
#> data:  graduation_table
#> X-squared = 102.98, df = 168, p-value = 1

Catatan: Tolak H0 jika pvalue < 0.05

Kesimpulan: p-value = 1 > 0.05, gagal tolak H0 maka tidak ada hubungan antara kelompok karakteristik demografik dan kelompok etnis/rasnya

9 Row component & column component

9.1 Row Component

graduation.ca <- CA(graduation_table, graph = FALSE)
graduation.ca
#> **Results of the Correspondence Analysis (CA)**
#> The row variable has  29  categories; the column variable has 7 categories
#> The chi square of independence between the two variables is equal to 102.977 (p-value =  0.9999802 ).
#> *The results are available in the following objects:
#> 
#>    name              description                   
#> 1  "$eig"            "eigenvalues"                 
#> 2  "$col"            "results for the columns"     
#> 3  "$col$coord"      "coord. for the columns"      
#> 4  "$col$cos2"       "cos2 for the columns"        
#> 5  "$col$contrib"    "contributions of the columns"
#> 6  "$row"            "results for the rows"        
#> 7  "$row$coord"      "coord. for the rows"         
#> 8  "$row$cos2"       "cos2 for the rows"           
#> 9  "$row$contrib"    "contributions of the rows"   
#> 10 "$call"           "summary called parameters"   
#> 11 "$call$marge.col" "weights of the columns"      
#> 12 "$call$marge.row" "weights of the rows"
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

9.1.1 Plot Representation

fviz_ca_row(graduation.ca, col.row = "cos2",
             gradient.cols = c("#00AFBB", "#E7B800", "#FC4E07"), 
             repel = TRUE,
            title="Row Poins based on Their Quality Cos2")

Kita dapat mengidentifikasi kesamaan atau ketidaksamaan dalam kategori baris dengan memperhatikan jarak antar titik koordinat baris.

  • Baris dengan profil serupa akan memiliki titik koordinat yang berdekatan (karakteristik mirip)
  • Kategori baris yang memilki hubungan negatif atau bertolak belakang akan memiliki titik koordinat yang berada pada kuadran yang berlawanan (karakteristik tidak mirip)

Sehingga, berdasarkan plot titik koordinat baris insight yang didapatkan adalah:

  • Indiana, Arkansas, Kansas memiliki personality yang mirip
  • Indiana, Arkansas memiliki personality yang tidak mirip dengan Maryland
  • Tujuan: mempermudah memahami brand positioning suatu brand

9.1.2 Check contribution

head(graduation.ca$row$contrib)
#>                  Dim 1      Dim 2      Dim 3      Dim 4       Dim 5
#> Alabama    1.357023946  2.3922806  2.1168588  0.9312786 6.295913228
#> Alaska     0.001454745  0.1408262  0.4838792 10.3311634 0.088791155
#> Arizona    0.306721525  4.6337934 11.5564424  0.1071648 2.970109247
#> Arkansas   1.955633220  4.6401996  0.3324365  1.4175350 0.003570555
#> California 0.045073366  0.7775302  0.7601732  0.3681674 0.010028446
#> Colorado   6.762571461 20.0597339  1.2546630  0.9725411 2.870365634
# 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:

  • Kategori baris yang paling berkontribusi besar pada dimensi 1 adalah New York
  • Kategori baris yang paling berkontribusi besar pada dimensi 2 adalah Colorado

9.2 Column Component

# 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

9.2.1 Plot Representation

fviz_ca_col(graduation.ca, col.col = "cos2", 
             gradient.cols = c("#00AFBB", "#E7B800", "#FC4E07"),
             repel = TRUE)

Sama seperti Row Component, kita dapat mengidentifikasi kesamaan atau ketidaksamaan dalam kategori row dengan memperhatikan jarak antar titik koordinat baris.

  • Kolom dengan profil serupa akan memiliki titik koordinat yang berdekatan (karakteristik mirip)
  • Kategori kolom yang memilki hubungan negatif atau bertolak belakang akan memiliki titik koordinat yang berada pada kuadran yang berlawanan (karakteristik tidak mirip)

Sehingga, berdasarkan plot titik koordinat baris insight yang didapatkan adalah:

  • Black dan White memiliki personality yang mirip
  • Black, White memiliki personality yang tidak mirip dengan English Learner
  • Tujuan: mempermudah memahami brand positioning suatu brand

9.2.2 Check Contribution

# 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:

  • Kategori kolom yang paling berkontribusi besar pada dimensi 1 adalah English Learner
  • Kategori kolom yang paling berkontribusi besar pada dimensi 2 adalah Foster Care

10 Biplot Interpretation

fviz_ca_biplot(graduation.ca, repel = TRUE, arrows = c(TRUE, TRUE))

Cara interpretasi hubungan dari kategori baris dan kategori kolom:

  • sudut panah baris (biru) dan panah kolom (merah) mendekati 0: kategori baris dan kolom memiliki hubungan positif
  • sudut 90 derajat: kategori baris dan kolom tidak memiliki hubungan
  • sudut 180 derajat: kategori baris dan kolom memiliki hubungan negatif
  • Semakin jauh suatu titik dari titik asalnya, semakin kuat hubungannya dengan suatu kategori lain sesuai kriteria sudutnya (positif/negatif)

Dengan demikian, berdasarkan profil baris (personality), berikut adalah pemetaan untuk data brand personality:

  • State Florida dan Oklahoma memiliki personality yang cenderung ke English Learner
  • State Arizona, District of Columbia, Maryland memiliki personality yang cenderung ke Black, White
  • State Montana dan Delaware memiliki personality yang cenderung ke foster.care
  • Colorado memiliki personality yang tidak mirip ke Foster Care
  • New York memiliki personality yang tidak mirip ke English Learner