Modul 7 Analisis Hubungan Korelatif: Korelasi Variabel Nominal dan Ordinal

Setelah mempelajari modul ini, Anda diharapkan dapat:

  1. mampu menghasilkan koefisien korelasi variabel di tingkat nominal dengan perangkat lunak komputer STP-9.2
  2. mampu menghasilkan koefisien korelasi variabel di tingkat ordinal dengan perangkat lunak komputer STP-10.2

7.1 Pendahuluan

Analisis korelasi adalah salah satu teknik analisis yang termasuk ke dalam lingkup statistika bivariat, statistika yang analisisnya melibatkan dua variabel sekaligus. Pada praktikum-praktikum sebelumnya kita hanya melibatkan satu variabel saja, misalnya:

  • pada praktikum ke-2, kita mengaplikasikan persentase hanya pada variabel Jenis.Kelamin, Fakultas, Tingkat.Semester, Uang.Saku, ataujenis.tempat.tinggal saja, tetapi tidak menghubungkannya satu sama lain,

    data.ubl |> 
      tbl_summary(include = c(Jenis.Kelamin,
                              Fakultas,
                              Tingkat.Semester,
                              Uang.Saku,
                              jenis.tempat.tinggal)) |> 
      as_flex_table()
  • pada praktikum ke-3, kita membuat histogram untuk variabel Umur saja

    histogram <- ggplot(data.ubl.cleaned) +
      geom_histogram(mapping = aes(x = Umur), binwidth = 1, fill = "darkseagreen", color = "white") +
      labs(
        title = "Distribusi Umur Mahasiswa",
        x = "Umur (Tahun)",
        y = "Frekuensi"
      ) +
      theme_minimal()
    
    histogram
  • pada praktikum-praktikum tentang analisis statistik inferensial, kita hanya tertarik pada proporsi atau rata-rata suatu variabel saja, yang pastinya tunggal.

Dalam praktikum ini kita akan mempraktikkan analisis korelasi pada dua variabel secara bersamaan. Ketika kita tertarik pada analisis untuk dua variabel secara bersamaan, artinya kita sedang menganalisis sebuah keterkaitan atau sebuah hubungan. Dalam praktikum ini, hubungan itu disebut korelasi.

Korelasi yang akan kita pelajari adalah korelasi pada pasangan variabel dengan tingkat pengukuran nominal dan juga ordinal.

7.2 Pustaka (Libraries) yang Diperlukan

Seperti biasa, kita perlu memuat pustaka (libraries) yang diperlukan dalam pengolahan data kita. Beberapa pustaka baru harus kita siapkan untuk analisis korelasi ini, di antaranya adalah rcompanion, RCPA3, dan vcdExtra. Untuk memuat tabel silang kita akan gunakan pustaka gtsummary kembali seperti pada praktikum ke-2.

Untuk mengecek apakah pustaka-pustaka tersebut sudah terpasang, kita bisa menggunakan perintah berikut:

installed.packages("tidyverse")
installed.packages("readr")
installed.packages("gtsummary")
installed.packages("rcompanion")
installed.packages("RCPA3")
installed.packages("vcdExtra")
installed.packages("DescTools")

Perhatikan dengan seksama bahwa perintah ini mengandung akhiran “ed” di akhir kata “install”. Perintah ini sangat berbeda dengan install.packages() yang biasa kita gunakan untuk memasang pustaka.

7.3 Memuat Dataset

Kita akan menggunakan dataset keempat kampus di Kota Bandar Lampung dan sekitarnya sebagai bahan. Tulis ulang dan jalankan baris perintah berikut untuk mengolah data keempat kampus

# Membaca data
data_mahasiswa <- read_csv2("datasets/Data Praktikum 06.csv")

7.4 Mengatur Faktor untuk Variabel Kategoris

Setelah membaca data, kita perlu mengatur variabel-variabel nominal dan ordinal dengan mengatur nilai-nilainya berupa factor.

Namun sebelum itu, kita akan membuat vektor-vektor untuk kita aplikasikan menjadi factor dengan memanfaatkan group_by dan summarize yang berasal dari pustaka dplyr.

# ---------------------------
# MEMBUAT FAKTOR UNTUK KAMPUS
# ---------------------------

# Meringkas data berdasarkan kolom Kampus PT
faktor_kampus <- data_mahasiswa |>
  group_by(kampus = Kampus_PT) |>
  summarize(jumlah = n())

# Membuat vektor untuk faktor Kampus PT dari kolom nama Kampus
faktor_kampus <- faktor_kampus$kampus

# ---------------------------
# MEMBUAT FAKTOR UNTUK FAKULTAS
# ---------------------------

# Meringkas data berdasarkan kolom Fakultas
faktor_fakultas <- data_mahasiswa |>
  group_by(fakultas = Fakultas) |>
  summarize(jumlah = n())

# Membuat vektor untuk faktor Fakultas dari kolom nama fakultas
faktor_fakultas <- faktor_fakultas$fakultas

# ---------------------------
# MEMBUAT FAKTOR UNTUK PROGRAM STUDI
# ---------------------------

# Meringkas data berdasarkan kolom Prodi
faktor_prodi <- data_mahasiswa |>
  group_by(prodi = Prodi) |>
  summarize(jumlah = n())

# Membuat vektor untuk faktor Prodi dari kolom nama Prodi
faktor_prodi <- faktor_prodi$prodi

# ---------------------------
# MEMBUAT FAKTOR UNTUK JENIS KELAMIN
# ---------------------------

# Meringkas data berdasarkan kolom Jenis Kelamin
faktor_jk <- data_mahasiswa |>
  group_by(jk = `Jenis Kelamin`) |>
  summarize(jumlah = n())

# Membuat vektor untuk faktor Jenis Kelamin dari kolom nama Jenis Kelamin
faktor_jk <- faktor_jk$jk

# ---------------------------
# MEMBUAT FAKTOR UNTUK TINGKAT SEMESTER
# ---------------------------

# Meringkas data berdasarkan kolom Tingkat Semester
faktor_semester <- data_mahasiswa |>
  group_by(semester = `Tingkat Semester`) |>
  summarize(jumlah = n())

# Membuat vektor faktor Tingkat Semester dari kolom Tingkat Semester
faktor_semester <- faktor_semester$semester

# ---------------------------
# MEMBUAT FAKTOR UNTUK UANG SAKU
# ---------------------------

# Meringkas data berdasarkan kolom Uang Saku
faktor_uang_saku <- data_mahasiswa |>
  group_by(uang = `Uang Saku`) |>
  summarize(jumlah = n())

# Memperbaiki urutan uang saku
# Menukar urutan level 1 dengan level 4 pada faktor uang saku
faktor_uang_saku$uang[c(1, 4)] <- faktor_uang_saku$uang[c(4, 1)]
faktor_uang_saku$jumlah[c(1, 4)] <- faktor_uang_saku$jumlah[c(4, 1)]

# Menukar urutan level 2 dengan level 4 pada faktor uang saku
faktor_uang_saku$uang[c(2, 4)] <- faktor_uang_saku$uang[c(4, 2)]
faktor_uang_saku$jumlah[c(2, 4)] <- faktor_uang_saku$jumlah[c(4, 2)]

# Menukar urutan level 3 dengan level 4 pada faktor uang saku
faktor_uang_saku$uang[c(3, 4)] <- faktor_uang_saku$uang[c(4, 3)]
faktor_uang_saku$jumlah[c(3, 4)] <- faktor_uang_saku$jumlah[c(4, 3)]

# Membuat vektor faktor Tingkat Uang Saku dari kolom Uang Saku
faktor_uang_saku <- faktor_uang_saku$uang

# ---------------------------
# MEMBUAT FAKTOR UNTUK KENDARAAN UTAMA
# ---------------------------

# Meringkas data berdasarkan kolom Kendaraan Utama
faktor_kendaraan_utama <- data_mahasiswa |>
  group_by(kendaraan = `kendaraan utama`) |>
  summarize(jumlah = n())
# Membuat vektpr faktor untuk kendaraan utama dari kolom 'kendaraan'
faktor_kendaraan_utama <- faktor_kendaraan_utama$kendaraan

# ---------------------------
# MEMBUAT FAKTOR JENIS TEMPAT TINGGAL
# ---------------------------

# Meringkas data berdasarkan kolom Jenis Tempat Tinggal
faktor_jenis_tempat_tinggal <- data_mahasiswa |>
  group_by(tempat_tinggal = `jenis tempat tinggal`) |>
  summarize(jumlah = n())
# Membuat vektor faktor untuk jenis tempat tinggal berdasarkan kolom Jenis Tempat Tinggal
faktor_jenis_tempat_tinggal <- faktor_jenis_tempat_tinggal$tempat_tinggal

Setelah vektor-vektor variabel kategoris tersebut selesai, barulah selanjutnya kita bisa mengatur factor untuk setiap variabel kategoris.

data_mahasiswa <- data_mahasiswa |>
  mutate(
    Kampus_PT = factor(Kampus_PT, levels = faktor_kampus),
    `Jenis Kelamin` = factor(`Jenis Kelamin`, levels = faktor_jk),
    Fakultas = factor(Fakultas, levels = faktor_fakultas),
    Prodi = factor(Prodi, levels = faktor_prodi),
    `Tingkat Semester` = factor(`Tingkat Semester`,
      levels = faktor_semester,
      ordered = TRUE
    ), # Variabel ordinal
    `Uang Saku` = factor(`Uang Saku`,
      levels = faktor_uang_saku,
      ordered = TRUE
    ), # Variabel ordinal
    `kendaraan utama` = factor(`kendaraan utama`,
      levels = faktor_kendaraan_utama
    ),
    `jenis tempat tinggal` = factor(`jenis tempat tinggal`,
      levels = faktor_jenis_tempat_tinggal
    )
  )

Kita dapat memeriksa hasil pekerjaan kita dengan perintah glimpse.

# Memeriksa hasil pengaturan factor
glimpse(data_mahasiswa)
## Rows: 1,557
## Columns: 22
## $ Kampus_PT                  <fct> ITERA, ITERA, ITERA, ITERA, ITERA, ITERA, IT…
## $ `Nomor urut`               <dbl> 17, 211, 342, 42, 56, 254, 267, 289, 330, 25…
## $ `Jenis Kelamin`            <fct> Perempuan, Perempuan, Perempuan, Perempuan, …
## $ Umur                       <dbl> 20, 20, 22, 21, 22, 22, 21, 21, 20, 23, 19, …
## $ Fakultas                   <fct> FTIK, FTIK, FTI, FTIK, FTIK, FTIK, FTIK, FTI…
## $ Prodi                      <fct> Perencanaan Wilayah dan Kota, Perencanaan Wi…
## $ `Tingkat Semester`         <ord> Semester 3-4, Semester 5-6, Semester 7-8, Se…
## $ `Uang Saku`                <ord> "1 - 2 Jt", "2,1 - 3 Jt", "2,1 - 3 Jt", "2,1…
## $ `jumlah mobil`             <dbl> 1, 0, 3, 3, 1, 3, 3, 3, 3, 2, 1, 0, 3, 2, 2,…
## $ `jumlah motor`             <dbl> 0, 1, 2, 3, 0, 2, 2, 3, 2, 2, 0, 1, 1, 2, 1,…
## $ `jumlah sepeda`            <dbl> 1, 1, 3, 3, 0, 2, 3, 4, 2, 2, 1, 0, 1, 2, 1,…
## $ `kendaraan utama`          <fct> Sepeda motor pribadi, Mobil pribadi, Mobil p…
## $ `jenis tempat tinggal`     <fct> Kos sendiri, Rumah pribadi, Rumah pribadi, R…
## $ jarak                      <dbl> 3.47, 4.88, 3.09, 5.46, 3.70, 6.18, 4.87, 5.…
## $ `biaya sepekan`            <dbl> 400, 280, 225, 200, 200, 200, 200, 200, 200,…
## $ `Jumlah Perjalanan Senin`  <dbl> 2, 4, 2, 0, 4, 0, 3, 4, 2, 0, 1, 4, 2, 0, 3,…
## $ `Jumlah Perjalanan Selasa` <dbl> 3, 4, 2, 3, 3, 0, 4, 4, 2, 2, 1, 3, 2, 2, 2,…
## $ `Jumlah Perjalanan Rabu`   <dbl> 3, 5, 0, 4, 3, 3, 4, 4, 0, 2, 1, 2, 2, 2, 4,…
## $ `Jumlah Perjalanan Kamis`  <dbl> 0, 4, 2, 3, 2, 0, 4, 4, 2, 2, 1, 2, 2, 2, 2,…
## $ `Jumlah Perjalanan Jumat`  <dbl> 0, 5, 0, 3, 2, 2, 4, 5, 2, 2, 1, 3, 3, 4, 4,…
## $ `Jumlah Perjalanan Sabtu`  <dbl> 2, 0, 3, 0, 3, 3, 0, 2, 2, 0, 1, 2, 2, 0, 0,…
## $ `Jumlah Perjalanan Ahad`   <dbl> 4, 3, 0, 2, 2, 0, 3, 2, 2, 0, 1, 2, 0, 0, 2,…

7.5 Pembuatan Tabel Silang

Setelah kita memastikan data kita bersih, kita siap untuk menganalisis korelasi antarvariabel kategoris.

Korelasi antarvariabel kategoris memerlukan “bahan baku” berupa tabel silang atau cross table. Kebanyakan literatur juga menggunakan istilah contingency table. Tabel silang adalah tabel dua arah, yakni yang baik baris maupun kolomnya adalah nilai-nilai dari dua variabel yang disilangkan.

Chunk berikut memperlihatkan bagaimana membuat tabel silang antara variabel jenis tempat tinggal dengan kendaraan utama menggunakan tbl_cross() dari pustaka gtsummary.

library(gtsummary)
library(flextable)

# Menghasilkan tabel silang antara variabel kendaraan utama dan jenis tempat tinggal
# untuk keperluan presentasi
data_mahasiswa |>
  tbl_cross(
    row = `kendaraan utama`,
    col = `jenis tempat tinggal`,
    label = list(
      `kendaraan utama` = "Jenis Kendaraan Utama",
      `jenis tempat tinggal` = "Jenis Tempat Tinggal"
    ),
    percent = "none"
  ) |>
  as_flex_table()

Jenis Tempat Tinggal

Asrama

Kos bersama-sama

Kos sendiri

Rumah mengontrak bersama

Rumah mengontrak pribadi

Rumah pribadi

Rumah saudara

Total

Jenis Kendaraan Utama

Berjalan kaki

23

20

39

17

11

0

1

111

Layanan online

0

19

86

28

6

37

12

188

Menumpang dengan teman/keluarga

0

18

24

40

0

11

4

97

Mobil pribadi

0

6

15

5

3

110

13

152

Sepeda

0

0

8

8

0

1

1

18

Sepeda motor pribadi

2

57

296

125

23

394

94

991

Total

25

120

468

223

43

553

125

1,557

Tabel silang yang merupakan hasil dari script di atas adalah seperti berikut.

  • Baris menunjukkan kategori dalam variabel kendaraan utama (row = `kendaraan utama`)
  • Kolom menunjukkan kategori dalam variabel jenis tempat tinggal (col = `jenis tempat tinggal`)
  • Nilai-nilai dalam sel-selnya adalah frekuensi/jumlah data yang termasuk ke dalam kondisi berupa kategori kedua variabel.

Sementara itu, maksud perintah yang dituliskan di dalam chunk di atas adalah:

  • percent = "none" digunakan untuk menghilangkan persentase dari tabel silang.
  • label = list(...) digunakan untuk mengubah nama variabel yang akan ditampilkan di tabel silang.

Perhatikan cara menginterpretasi informasi dari tabel tersebut:

  • jumlah pengguna layanan online yang tinggal di kos bersama-sama adalah 19 orang, yang setara dengan 16%.

  • tidak ada pengguna sepeda yang tinggal di Asrama, Kos bersama-sama, atau mengontrak rumah secara pribadi. Keberadaannya juga langka pada kalangan mahasiswa yang tinggal di rumah pribadi atau di saudaranya.

Selain dengan tbl_cross() (atau tbl_summary() yang kita gunakan di praktikum sebelumnya) yang gunanya cenderung untuk presentasi, kita dapat menggunakan perintah table() untuk menghasilkan tabel silang yang siap dioperasikan ke dalam perhitungan koefisien korelasi di tahap selanjutnya. Perintah table() mengambil dua masukan, yakni vektor variabel-variabel yang kita akan analisis, dipisahkan dengan tanda koma (,).

# vektor variabel-variabel ini kita akses dari dataset menggunakan operator '$'
table(
  data_mahasiswa$`jenis tempat tinggal`,
  data_mahasiswa$`kendaraan utama`
)
##                           
##                            Berjalan kaki Layanan online
##   Asrama                              23              0
##   Kos bersama-sama                    20             19
##   Kos sendiri                         39             86
##   Rumah mengontrak bersama            17             28
##   Rumah mengontrak pribadi            11              6
##   Rumah pribadi                        0             37
##   Rumah saudara                        1             12
##                           
##                            Menumpang dengan teman/keluarga Mobil pribadi Sepeda
##   Asrama                                                 0             0      0
##   Kos bersama-sama                                      18             6      0
##   Kos sendiri                                           24            15      8
##   Rumah mengontrak bersama                              40             5      8
##   Rumah mengontrak pribadi                               0             3      0
##   Rumah pribadi                                         11           110      1
##   Rumah saudara                                          4            13      1
##                           
##                            Sepeda motor pribadi
##   Asrama                                      2
##   Kos bersama-sama                           57
##   Kos sendiri                               296
##   Rumah mengontrak bersama                  125
##   Rumah mengontrak pribadi                   23
##   Rumah pribadi                             394
##   Rumah saudara                              94

Aktivitas Mandiri 1

  1. Buatlah dataset subset dari data_mahasiswa untuk mahasiswa kampus ITERA saja dengan menggunakan perintah filter()! Simpan ke dalam variabel data_itera.
  2. Buatlah tabel silang antara variabel Tingkat Semester dan Uang Saku dari dataset subset yang telah dibuat pada poin 1, baik dengan tbl_cross() maupun dengan table()!

7.6 Analisis Korelasi Antarvariabel Nominal

Dalam analisis korelasi variabel nominal, kita mengukur keberadaan dan juga kekuatan hubungan. Ukuran yang kita pakai untuk menyatakan hal tersebut adalah koefisien korelasi variabel nominal, yang di antaranya adalah koefisien \(\phi\) (phi), V Cramer dan koefisien C. Ketiga koefisien tersebut dihitung dari nilai \(\chi^2\) (“chi kuadrat”).

Selain itu, terdapat juga \(\lambda\) (lambda) yang merupakan koefisien korelasi variabel nominal berbasis error, atau disebut juga PRE (proportional reduction of error).

Ukuran dari keempat koefisien tersebut adalah besarnya yang berkisar antara 0 dan 1 dengan 0 berarti tidak ada hubungan sama sekali dan 1 berarti hubungan yang ada sangat kuat.

7.6.1 Koefisien Korelasi Variabel Nominal Berbasis \(\chi^2\)

Perhitungan koefisien korelasi variabel nominal berbasis nilai \(\chi^2\) pada praktikum ini kita lakukan dengan cara semi-manual seperti pada buku dan langsung menggunakan koefisien korelasi yang sudah tersedia pada paket-paket tambahan yang pada bagian pertama kita muat.

7.6.1.1 Cara Semi-Manual

Cara semi-manual ini dilakukan dengan terlebih dahulu menghitung nilai \(\chi^2\) antara dua variabel kita. Kemudian, dari nilai \(\chi^2\) tersebut, kita menghitung koefisien korelasi variabel nominal yang kita inginkan.

Untuk menghitung \(\chi^2\) kita menggunakan dua perintah utama dalam R, yakni table() dan chisq.test(). Perintah table() berfungsi membuat tabel silang yang berguna sebagai “bahan baku” perhitungan \(\chi^2\) kita, kemudian perintah chisq.test() menghitung nilai \(\chi^2\) tersebut.

# Menyimpan tabel
tempat_tinggal_kend <- table(
  data_mahasiswa$`kendaraan utama`,
  data_mahasiswa$`jenis tempat tinggal`
)

# Menyimpan hasil chi-square test
chisq_tempat_tinggal_kend <-
  tempat_tinggal_kend |>
  chisq.test()

Seperti yang bisa kita lihat, hasil perhitungan berupa variabel R chisq_tempat_tinggal_kend berada di bagian data, dan jika kita perluas, maka di dalamnya terdapat banyak variabel-variabel lain. Variabel-variabel lain tersebut menyimpan berbagai nilai yang menjadi bagian dari hasil perhitungan. Nilai-nilai yang penting untuk

  • .$statistic menyimpan nilai \(\chi^2\) dari tabel. Ini digunakan untuk menghitung kekuatan korelasi

  • .$parameter menyimpan nilai degree of freedom (df)

  • .$p.value menyimpan nilai probabilitas untuk menerima \(H_0\) yang berarti tidak ada hubungan antara dua variabel yang dianalisis

  • .$expected menyimpan tabel frekuensi yang diharapkan dari data kita

Tampilkan seluruh nilai tersebut

# Menampilkan nilai chi-square
cat("Nilai Chi-square: ")
chisq_tempat_tinggal_kend$statistic

# Menampilkan nilai degree of freedom
cat("Nilai Degree of Freedom: ")
chisq_tempat_tinggal_kend$parameter

# Menampilkan nilai probabilitas
cat("Nilai Probabilitas: ")
chisq_tempat_tinggal_kend$p.value

# Menampilkan tabel frekuensi yang diharapkan
cat("Tabel Frekuensi yang Diharapkan: ")
chisq_tempat_tinggal_kend$expected
## Nilai Chi-square: X-squared 
##  600.8622 
## Nilai Degree of Freedom: df 
## 30 
## Nilai Probabilitas: [1] 1.963807e-107
## Tabel Frekuensi yang Diharapkan:                                  
##                                       Asrama Kos bersama-sama Kos sendiri
##   Berjalan kaki                    1.7822736         8.554913   33.364162
##   Layanan online                   3.0186256        14.489403   56.508671
##   Menumpang dengan teman/keluarga  1.5574823         7.475915   29.156069
##   Mobil pribadi                    2.4405909        11.714836   45.687861
##   Sepeda                           0.2890173         1.387283    5.410405
##   Sepeda motor pribadi            15.9120103        76.377649  297.872832
##                                  
##                                   Rumah mengontrak bersama
##   Berjalan kaki                                  15.897881
##   Layanan online                                 26.926140
##   Menumpang dengan teman/keluarga                13.892742
##   Mobil pribadi                                  21.770071
##   Sepeda                                          2.578035
##   Sepeda motor pribadi                          141.935132
##                                  
##                                   Rumah mengontrak pribadi Rumah pribadi
##   Berjalan kaki                                  3.0655106     39.423892
##   Layanan online                                 5.1920360     66.771997
##   Menumpang dengan teman/keluarga                2.6788696     34.451509
##   Mobil pribadi                                  4.1978163     53.985870
##   Sepeda                                         0.4971098      6.393064
##   Sepeda motor pribadi                          27.3686577    351.973667
##                                  
##                                   Rumah saudara
##   Berjalan kaki                        8.911368
##   Layanan online                      15.093128
##   Menumpang dengan teman/keluarga      7.787412
##   Mobil pribadi                       12.202954
##   Sepeda                               1.445087
##   Sepeda motor pribadi                79.560051

Kita akan menghitung nilai koefisien V Cramer untuk menyatakan korelasi antara jenis kendaraan yang digunakan sebagai moda ke kampus dan jenis tempat tinggal mahasiswa menggunakan rumus berikut dan berdasarkan nilai \(\chi^2\) yang kita dapatkan dari tes sebelumnya.

\[ V = \sqrt{\frac{\chi^2}{n \times min(c−1,r−1)}} \]

# Menyimpan nilai Chi-squared menggunakan metode "as.numeric"
chisq_tempat_tinggal_kend <- as.numeric(chisq_tempat_tinggal_kend$statistic)

# Menghitung jumlah data
n <- data_mahasiswa |>
  summarize(jumlah = n())
n <- n$jumlah

# Menghitung jumlah kategori dari 'jenis tempat tinggal' sebagai jumlah kolom
kolom <- data_mahasiswa |>
  group_by(jenis = `jenis tempat tinggal`) |>
  summarize(jumlah = n())
kolom <- length(kolom$jenis)

# Menghitung jumlah kategori dari 'kendaraan utama' sebagai jumlah baris
baris <- data_mahasiswa |>
  group_by(kend = `kendaraan utama`) |>
  summarize(jumlah = (n))
baris <- length(baris$kend)

# Menghitung koefisien V
v_tempat_tinggal_kend <- sqrt(chisq_tempat_tinggal_kend / (n * min(kolom - 1, baris - 1)))
v_tempat_tinggal_kend
## [1] 0.2778166

Koefisien V dipilih karena tabel silang kita terdiri atas banyak kategori dan juga berdimensi persegi panjang (6x7 kategori).

Kesimpulan: Hasil dari perhitungan koefisien V adalah 0.2778166. Angka ini menunjukkan hubungan yang sedikit lemah, karena berada di bawah nilai tengah-tengah yaitu 0,5. Artinya, hubungan antara jenis tempat tinggal dengan jenis kendaraan yang sering digunakan ke kampus tidak begitu kuat.

7.6.1.2 Cara Langsung dengan Pustaka rcompanion

kita dapat menggunakan pustaka rcompanion untuk menghitung koefisien V Cramer, yaitu dengan perintah cramerV(). Perintah ini mengambil langsung vektor kolom variabel yang kita akan analisis, sehingga menggunakan notasi $ untuk mengakses kolom `jenis tempat tinggal` dan `kendaraan utama`.

Untuk menggunakan koefisien \(\phi\) kita dapat menggunakan perintah phi(). Sementara itu, untuk koefisien kontingensi \(C\) kita dapat menggunakan perintah ContCoeff() yang membutuhkan pustaka DescTools.

v_tempat_tinggal_kend <- cramerV(
  data_mahasiswa$`jenis tempat tinggal`, data_mahasiswa$`kendaraan utama`
)

cat(
  "Nilai V Cramer variabel jenis tempat tinggal",
  "dengan kendaraan utama: ",
  v_tempat_tinggal_kend
)
## Nilai V Cramer variabel jenis tempat tinggal dengan kendaraan utama:  0.2778

Bandingkan dengan nilai V dari perhitungan semi-manual, apakah hasilnya sama?

Aktivitas Mandiri 2

Analisislah korelasi antara variabel jenis tempat tinggal dengan kendaraan utama dari dataset data_itera menggunakan koefisien korelasi berbasis \(\chi^2\) dan simpan ke dalam variabel v_itera_tempat_tinggal_kendaraan.

7.6.2 Koefisien Korelasi Variabel Nominal Berbasis Error

Untuk analisis korelasi variabel nominal berbasis error yang menggunakan koefisien \(\lambda\) kita dapat menggunakan perintah lambda() yang ada di dalam pustaka RCPA3. Perintah lambda() mengambil masukan berupa tabel silang seperti yang kita buat pada perhitungan \(\chi^2\), yakni perintah table(). Karena koefisien \(\lambda\) merupakan koefisien korelasi variabel nominal yang memperhitungkan variabel independen, penentuan variabel yang menjadi independen dilakukan sejak kita memformat tabel silang, yakni variabel dependen ditempatkan pada baris dan independen pada kolom. Untuk memastikan, mari kita muat ulang tabel silang kita dengan memanggil kembali nama variabelnya.

print(tempat_tinggal_kend)
##                                  
##                                   Asrama Kos bersama-sama Kos sendiri
##   Berjalan kaki                       23               20          39
##   Layanan online                       0               19          86
##   Menumpang dengan teman/keluarga      0               18          24
##   Mobil pribadi                        0                6          15
##   Sepeda                               0                0           8
##   Sepeda motor pribadi                 2               57         296
##                                  
##                                   Rumah mengontrak bersama
##   Berjalan kaki                                         17
##   Layanan online                                        28
##   Menumpang dengan teman/keluarga                       40
##   Mobil pribadi                                          5
##   Sepeda                                                 8
##   Sepeda motor pribadi                                 125
##                                  
##                                   Rumah mengontrak pribadi Rumah pribadi
##   Berjalan kaki                                         11             0
##   Layanan online                                         6            37
##   Menumpang dengan teman/keluarga                        0            11
##   Mobil pribadi                                          3           110
##   Sepeda                                                 0             1
##   Sepeda motor pribadi                                  23           394
##                                  
##                                   Rumah saudara
##   Berjalan kaki                               1
##   Layanan online                             12
##   Menumpang dengan teman/keluarga             4
##   Mobil pribadi                              13
##   Sepeda                                      1
##   Sepeda motor pribadi                       94

Ternyata kita sudah mengatur sedemikian rupa agar variabel independen kita, jenis tempat tinggal, berada di kolom. Artinya, urutan kita menempatkan variabel di argumen table() sangat berpengaruh: variabel pertama akan menempati baris, sementara yang kedua menempati kolom. Karena susunan ini sudah sesuai dengan perintah lambda(), kita bisa melanjutkan analisis kita.

# Menghitung koefisien lambda
lambda_tempat_tinggal_kend <- lambda(
  tempat_tinggal_kend,
  # digits menandakan berapa desimal angka yang kita hasilkan
  digits = 3,
  # detailed menandakan apakah kita memperlihatkan nilai-nilai error yang dihitung
  detailed = TRUE
)

lambda_tempat_tinggal_kend
##   Naive Errors Prediction Errors Lambda
## 1          566               545  0.037

Nilai 566, 545, 0.037 ini menunjukkan bahwa dengan mempertimbangkan variabel independen berupa jenis tempat tinggal, error dalam memprediksi variabel dependen berupa kendaraan utama berkurang sebesar 5.66^{4}, 5.45^{4}, 3.7%, yang mana bukan angka yang signifikan besarnya. Artinya, hubungan antara jenis kendaraan dengan jenis tempat tinggal yang kita analisis sangat-sangat lemah.

Aktivitas Mandiri 3

Analisislah korelasi antara variabel jenis tempat tinggal dengan kendaraan utama dari dataset data_itera menggunakan koefisien korelasi \(\lambda\) dan simpan ke dalam variabel lambda_itera_tempat_tinggal_kendaraan.

7.7 Analisis Korelasi Antarvariabel Ordinal

Dalam analisis korelasi variabel ordinal, kita tidak hanya dapat mengukur keberadaan dan juga kekuatan hubungan, tetapi juga arah hubungan. Yang dimaksud dengan ‘arah hubungan’ adalah searah atau berlawanan. Hubungan searah berarti semakin tinggi nilai variabel #1, maka semakin tinggi juga nilai variabel #2, begitu pula sebaliknya. Akan tetapi, jika arah hubungan berlawanan, semakin tinggi nilai variabel #1 maka semakin rendah nilai variabel #2, begitu pula sebaliknya.

Arah hubungan ditunjukkan oleh tanda koefisien dan kekuatannya ditunjukkan oleh besar angka koefisien. Oleh karena itu, nilai korelasi pada variabel ordinal berkisar antara \(-1\) hingga \(+1\) dengan tanda \(-\) untuk menandakan hubungan berlawanan dan \(+\) untuk hubungan searah.

Kita akan mempelajari penggunaan perintah dalam R untuk menghitung koefisien korelasi Gamma (\(\gamma\)) dan Somer’s d.

7.7.1 Koefisien Gamma (\(\gamma\))

Kita dapat menggunakan perintah GKgamma() dari pustaka vcdExtra untuk mengukur koefisien (\(\gamma\)). Perintah GKgamma() mengambil masukan yang sama seperti chisq.test(), yakni tabel silang yang dihasilkan dari perintah table().

Dalam praktikum ini, kita akan menganalisis kekuatan dan arah hubungan antara variabel Uang Saku dan Tingkat Semester. Apakah mahasiswa dengan tingkat semester makin tinggi uang sakunya makin tinggi pula, atau sebaliknya?

# Membuat variabel table() sebagai masukan
uang_saku_tingkat_semester <- table(
  data_mahasiswa$`Uang Saku`,
  data_mahasiswa$`Tingkat Semester`
)

# Menghitung nilai Gamma dari variabel table() yang sudah dibuat
gamma_uang_saku_tingkat_semester <- GKgamma(uang_saku_tingkat_semester)

# Menampilkan nilai Gamma
gamma_uang_saku_tingkat_semester
## gamma        : -0.009 
## std. error   : 0.033 
## CI           : -0.073 0.056

Nilai \(\gamma\) sebesar -0.008545 menunjukkan bahwa kekuatan hubungan antara uang saku dengan tingkat semester adalah sangat-sangat lemah.

Seperti halnya nilai variabel hasil perhitungan chisq.test(), hasil perhitungan GKgamma() juga terdiri atas banyak variabel. Nilai gamma sendiri dapat kita akses dengan .$gamma. Walaupun ada tanda negatif pada nilai tersebut yang artinya adalah ada hubungan berlawanan arah antara tingkat uang saku dengan tingkat semester. Semakin tinggi semester, semakin rendah uang saku yang diterima mahasiswa. Akan tetapi, pernyataan itu tidak bisa dijadikan pegangan karena besar nilai koefisiennya yang sangat kecil.

# Mengakses nilai gamma
gamma_uang_saku_tingkat_semester$gamma
## [1] -0.008545005

Nilai lain yang penting bagi kita adalah nilai .$C dan .$D . Nilai-nilai tersebut adalah nilai operasi dalam sel tabel silang yang merupakan penyusun dalam perhitungan koefisien tersebut mengikuti rumus berikut:

\[ G = \frac{C-D}{C+D} \]

# Menampilkan nilai C dan D
print(gamma_uang_saku_tingkat_semester$C)
print(gamma_uang_saku_tingkat_semester$D)
## [1] 283397
## [1] 288282

7.7.2 Koefisien Somer’s d

Koefisien Somer’s d menghitung korelasi dengan mempertimbangkan salah satunya sebagai variabel independen. Oleh karena itu, kita perlu menentukan variabel mana yang menjadi independen dan mana yang menjadi dependen. Dalam praktikum ini, kita akan menganalisis hubungan antara variabel Uang Saku dan Tingkat Semester. Kita akan menentukan bahwa Tingkat Semester sebagai variabel independen dan Uang Saku sebagai variabel dependen karena lebih masuk akal bahwa tingkat semester mempengaruhi uang saku, bukan sebaliknya.

# Menetapkan variabel dependen dan independen
# Variabel dependen kita sebut 'y', independen kita sebut 'x'
x <- data_mahasiswa$`Tingkat Semester`
y <- data_mahasiswa$`Uang Saku`

# Menghitung koefisien d Somer
somerd_uang_saku_tingkat_semester <- SomersDelta(
  x, y, direction = "column"
)

somerd_uang_saku_tingkat_semester
## [1] -0.005806946

Perintah tersebut menghitung koefisien d Somer dengan variabel independen yang berada pada kolom (direction = "column"). Secara bawaan, fungsi SomersDelta() menganggap variabel independen berada pada baris (direction = "row"). Jika kita mendefinisikan variabel x dan y secara bersamaan, kita harus mendefinisikan direction = "column" secara eksplisit.

Nilai koefisien d Somer tersebut juga menunjukkan kesimpulan yang sama dengan koefisien \(\gamma\).

Aktivitas Mandiri 4

Hitunglah korelasi antara Tingkat Semester dan Uang Saku pada dataset data_itera menggunakan koefisien \(\gamma\) dan d Somer. Simpan kedua variabel berturut-turut pada gamma_lat_itera dan somerd_lat_itera.