3.2 Tabel Kontingensi
Ringkasan data yang dapat digunakan pada dua atau lebih variabel kategorikal adalah tabel kontingensi. Pada R Commander
, tabel kontingensi dapat dibuat menggunakan menu Statistics/Contingency tables
. Terdapat beberapa submenu yang dapat digunakan untuk membuat tabel kontingensi, antara lain:
Two-way table...
: membuat tabel kontingensi untuk dua buah variabel kategorikal.Multi-way table...
: membuat tabel kontingensi untuk lebih dari dua variabel.Enter and analyze two way table...
: melakukan input manual frekuensi dari tabel kontingensi untuk dua variabel.
Submenu pertama dan ketiga menyediakan opsi analisis statistik yang digunakan seperti Chi-square test of independence, Fisher’s exact test, dll.
Pada Chapter 3.2, kita hanya akan membahas mengenai dua poin pertama. Poin ketiga akan dibahas lebih lanjut pada Chapter analisis asosiasi.
Dataset yang digunakan pada Chapter 3.2 adalah dataset mtcars
. Sebelum dataset tersebut digunakan, perlu dilakukan konversi sejumlah variabel numeric menjadi factor (lihat Chapter 2.8.5). Variabel numeric yang akan dikonversi tersebut, antara lain: cyl
, vs
, am
, gear
, dan carb
. Sintaks yang dihasilkan pada proses konversi adalah sebagai berikut:
mtcars <- within(mtcars, {
cyl <- as.factor(cyl)
})
mtcars <- within(mtcars, {
vs <- factor(vs, labels=c('automatic','manual'))
})
mtcars <- within(mtcars, {
am <- factor(am, labels=c('automatic','manual'))
})
mtcars <- within(mtcars, {
gear <- as.factor(gear)
})
mtcars <- within(mtcars, {
carb <- as.factor(carb)
})
3.2.1 Tabel Kontingensi untuk Dua Variabel Kategorikal
Pada Chapter 3.2.1, kita akan membuat tabel kontingensi variabel am
terhadap variabel cyl
pada dataset mtcars
. Untuk melakukannya jalankan langkah-langkah berikut:
- Pilih menu
Statistics/Contingency tables/Two-way table...
. - Pada tab
Data
, pilih variabelam
pada kotakRow variables
dan variabelcyl
pada kotakColumn variable
. - Pada tab
Statistics
, pilih No percentage pada bagianCompute percentages
(tabel hanya menampilkan frekuensi sesungguhnya). Pembaca dapat pula mencentang pilihan yang tersedia pada bagianHypothesis Tests
untuk menampilkan perhitungan statistik lainnya pada output program. KlikOK
.
Visualisasi tahapan tersebut ditampilkan pada Gambar 3.5.
Sintaks dan output yang dihasilkan pada tahapan tersebut adalah sebagai berikut:
local({
.Table <- xtabs(~am+cyl, data=mtcars)
cat("\nFrequency table:\n")
print(.Table)
.Test <- chisq.test(.Table, correct=FALSE)
print(.Test)
})
##
## Frequency table:
## cyl
## am 4 6 8
## automatic 3 4 12
## manual 8 3 2
## Warning in chisq.test(.Table, correct = FALSE): Chi-
## squared approximation may be incorrect
##
## Pearson's Chi-squared test
##
## data: .Table
## X-squared = 8.7, df = 2, p-value = 0.01
Berdasarkan output yang dihasilkan dapat diperoleh informasi bahwa secara umum pada dataset sampel mobil dengan jumlah silinder > 4 didominasi oleh mobil dengan transmisi otomatis, sedangkan pada mobil dengan jumlah silinder 4 didominasi oleh mobil dengan transmisi manual.
Format umum dari sintaks tersebut adalah sebagai berikut:
local({
.Table <- xtabs(~Variabel1+Variabel2, data=dataset)
cat("\nFrequency table:\n")
print(.Table)
.Test <- chisq.test(.Table, correct=FALSE)
print(.Test)
cat("\nExpected counts:\n")
print(.Test$expected)
cat("\nChi-square components:\n")
print(round(.Test$residuals^2, 2))
print(fisher.test(.Table))
})
3.2.2 Tabel Kontingensi untuk Beberapa Variabel Kategorikal
Misalkan kita ingin membuat sebuah tabel kontingensi dari dataset mtcars
untuk beberapa variabel dengan ketentuan sebagai berikut:
- variabel
am
sebagai variabel baris, - variabel
cyl
sebagai variabel kolom, dan - variabel
carb
,gear
, danvs
sebagai variabel kontrol.
Untuk melakukannya jalankan langkah-langkah berikut:
- Pilih menu
Statistics/Contingency tables/Multi-way table...
. - Pilih variabel sesuai dengan ketentuan di atas. Klik
OK
.
Visualisasi tahapan tersebut ditampilkan pada Gambar 3.6.
Sintaks dan output proses tersebut adalah sebagai berikut:
local({
.Table <- xtabs(~am+cyl+carb+gear+vs, data=mtcars)
cat("\nFrequency table:\n")
print(.Table)
})
##
## Frequency table:
## , , carb = 1, gear = 3, vs = automatic
##
## cyl
## am 4 6 8
## automatic 0 0 0
## manual 0 0 0
##
## , , carb = 2, gear = 3, vs = automatic
##
## cyl
## am 4 6 8
## automatic 0 0 4
## manual 0 0 0
##
## , , carb = 3, gear = 3, vs = automatic
##
## cyl
## am 4 6 8
## automatic 0 0 3
## manual 0 0 0
##
## , , carb = 4, gear = 3, vs = automatic
##
## cyl
## am 4 6 8
## automatic 0 0 5
## manual 0 0 0
##
## , , carb = 6, gear = 3, vs = automatic
##
## cyl
## am 4 6 8
## automatic 0 0 0
## manual 0 0 0
##
## , , carb = 8, gear = 3, vs = automatic
##
## cyl
## am 4 6 8
## automatic 0 0 0
## manual 0 0 0
##
## , , carb = 1, gear = 4, vs = automatic
##
## cyl
## am 4 6 8
## automatic 0 0 0
## manual 0 0 0
##
## , , carb = 2, gear = 4, vs = automatic
##
## cyl
## am 4 6 8
## automatic 0 0 0
## manual 0 0 0
##
## , , carb = 3, gear = 4, vs = automatic
##
## cyl
## am 4 6 8
## automatic 0 0 0
## manual 0 0 0
##
## , , carb = 4, gear = 4, vs = automatic
##
## cyl
## am 4 6 8
## automatic 0 0 0
## manual 0 2 0
##
## , , carb = 6, gear = 4, vs = automatic
##
## cyl
## am 4 6 8
## automatic 0 0 0
## manual 0 0 0
##
## , , carb = 8, gear = 4, vs = automatic
##
## cyl
## am 4 6 8
## automatic 0 0 0
## manual 0 0 0
##
## , , carb = 1, gear = 5, vs = automatic
##
## cyl
## am 4 6 8
## automatic 0 0 0
## manual 0 0 0
##
## , , carb = 2, gear = 5, vs = automatic
##
## cyl
## am 4 6 8
## automatic 0 0 0
## manual 1 0 0
##
## , , carb = 3, gear = 5, vs = automatic
##
## cyl
## am 4 6 8
## automatic 0 0 0
## manual 0 0 0
##
## , , carb = 4, gear = 5, vs = automatic
##
## cyl
## am 4 6 8
## automatic 0 0 0
## manual 0 0 1
##
## , , carb = 6, gear = 5, vs = automatic
##
## cyl
## am 4 6 8
## automatic 0 0 0
## manual 0 1 0
##
## , , carb = 8, gear = 5, vs = automatic
##
## cyl
## am 4 6 8
## automatic 0 0 0
## manual 0 0 1
##
## , , carb = 1, gear = 3, vs = manual
##
## cyl
## am 4 6 8
## automatic 1 2 0
## manual 0 0 0
##
## , , carb = 2, gear = 3, vs = manual
##
## cyl
## am 4 6 8
## automatic 0 0 0
## manual 0 0 0
##
## , , carb = 3, gear = 3, vs = manual
##
## cyl
## am 4 6 8
## automatic 0 0 0
## manual 0 0 0
##
## , , carb = 4, gear = 3, vs = manual
##
## cyl
## am 4 6 8
## automatic 0 0 0
## manual 0 0 0
##
## , , carb = 6, gear = 3, vs = manual
##
## cyl
## am 4 6 8
## automatic 0 0 0
## manual 0 0 0
##
## , , carb = 8, gear = 3, vs = manual
##
## cyl
## am 4 6 8
## automatic 0 0 0
## manual 0 0 0
##
## , , carb = 1, gear = 4, vs = manual
##
## cyl
## am 4 6 8
## automatic 0 0 0
## manual 4 0 0
##
## , , carb = 2, gear = 4, vs = manual
##
## cyl
## am 4 6 8
## automatic 2 0 0
## manual 2 0 0
##
## , , carb = 3, gear = 4, vs = manual
##
## cyl
## am 4 6 8
## automatic 0 0 0
## manual 0 0 0
##
## , , carb = 4, gear = 4, vs = manual
##
## cyl
## am 4 6 8
## automatic 0 2 0
## manual 0 0 0
##
## , , carb = 6, gear = 4, vs = manual
##
## cyl
## am 4 6 8
## automatic 0 0 0
## manual 0 0 0
##
## , , carb = 8, gear = 4, vs = manual
##
## cyl
## am 4 6 8
## automatic 0 0 0
## manual 0 0 0
##
## , , carb = 1, gear = 5, vs = manual
##
## cyl
## am 4 6 8
## automatic 0 0 0
## manual 0 0 0
##
## , , carb = 2, gear = 5, vs = manual
##
## cyl
## am 4 6 8
## automatic 0 0 0
## manual 1 0 0
##
## , , carb = 3, gear = 5, vs = manual
##
## cyl
## am 4 6 8
## automatic 0 0 0
## manual 0 0 0
##
## , , carb = 4, gear = 5, vs = manual
##
## cyl
## am 4 6 8
## automatic 0 0 0
## manual 0 0 0
##
## , , carb = 6, gear = 5, vs = manual
##
## cyl
## am 4 6 8
## automatic 0 0 0
## manual 0 0 0
##
## , , carb = 8, gear = 5, vs = manual
##
## cyl
## am 4 6 8
## automatic 0 0 0
## manual 0 0 0
Format umum sintaks tersebut adalah sebagai berikut: