Peubah kategorik atau disebut juga peubah kualitatif merupakan peubah yang nilainya ditetapkan menurut kategori tertentu. Peubah kategorik bersifat terputus atau diskret sehingga dapat dipadankan secara tepat satu per satu ke bilangan asli. Skala pengukuran yang termasuk peubah kategorik adalah nominal (penggolongan) dan ordinal (pemeringkatan). Contoh peubah kualitatif antara lain: jenis kelamin (1. Laki-laki dan 2. Perempuan), status perkawinan (1. Belum kawin, 2. Kawin, 3. Cerai Hidup, dan 4. Cerai Mati), dan kelas pendapatan (1. Rendah, 2. Sedang, dan 3. Tinggi).
Sajian peubah kategorik dalam bentuk tabel dapat menggunakan tabel kontingensi dan tabel proporsi.
File data yang tersimpan pada direktori kerja dapat di-input pada R dengan menggunakan salah satu fungsi berikut:
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
data1 <- read.table("Data P8.txt", header = TRUE) %>% select(-Responden)
data2 <- readr::read_csv("Data P8.csv") %>% select(-Responden)
## Parsed with column specification:
## cols(
## Responden = col_double(),
## J.Kelamin = col_double(),
## T.Pendidikan = col_double(),
## T.Pendapatan = col_double()
## )
data3 <- foreign::read.spss("Data P8.sav", to.data.frame = TRUE) %>% select(-Responden)
## re-encoding from UTF-8
data4 <- readxl::read_excel("Data P8.xlsx") %>% select(-Responden)
%>%: operator x%>%f dapat diterjemahkan sebagai f(x) dengan library(dplyr)read.table: fungsi untuk membaca data dalam format .txtread_csv: fungsi untuk membaca data dalam format .csv dengan library(readr)read,spss: fungsi untuk membaca data dalam format .sav dengan library(foreign)read_excel: fungsi untuk membaca data dalam format .xlsx dengan library(readxl)Data yang akan digunakan adalah data1.
attach(data1)
data1
## J.Kelamin T.Pendidikan T.Pendapatan
## 1 1 1 4
## 2 1 3 6
## 3 1 2 4
## 4 1 2 5
## 5 1 4 4
## 6 1 4 1
## 7 1 3 3
## 8 0 4 3
## 9 1 1 5
## 10 1 2 5
## 11 1 2 2
## 12 1 3 5
## 13 0 4 5
## 14 1 4 4
## 15 1 3 3
## 16 1 3 4
## 17 0 4 4
## 18 1 1 6
## 19 1 2 3
## 20 0 4 3
## 21 1 1 6
## 22 1 1 2
## 23 1 3 3
## 24 1 1 5
## 25 1 2 3
## 26 1 2 3
## 27 0 2 5
## 28 1 3 2
## 29 1 1 6
## 30 1 4 2
## 31 1 2 3
## 32 1 1 4
## 33 1 3 2
## 34 1 1 6
## 35 1 3 1
## 36 1 2 4
## 37 1 1 3
## 38 1 4 1
## 39 1 4 5
## 40 0 4 1
## 41 1 4 6
## 42 1 2 4
## 43 0 2 2
## 44 1 1 1
## 45 1 2 4
## 46 0 4 3
## 47 0 2 3
## 48 1 4 5
## 49 1 1 5
## 50 1 1 1
summary(data1)
## J.Kelamin T.Pendidikan T.Pendapatan
## Min. :0.00 Min. :1.00 Min. :1.0
## 1st Qu.:1.00 1st Qu.:1.25 1st Qu.:3.0
## Median :1.00 Median :2.00 Median :4.0
## Mean :0.82 Mean :2.48 Mean :3.6
## 3rd Qu.:1.00 3rd Qu.:4.00 3rd Qu.:5.0
## Max. :1.00 Max. :4.00 Max. :6.0
attach: membaca peubah pada dataframe secara globalsummary: menampilkan ringkasan statistik dari dataTabel kontingensi yang disajikan adalah tingkat Pendidikan menurut Jenis Kelamin.
table1 <- table(J.Kelamin, T.Pendidikan)
table1
## T.Pendidikan
## J.Kelamin 1 2 3 4
## 0 0 3 0 6
## 1 13 11 9 8
table: membuat tabel frekuensiTabel proporsi yang disajikan adalah tingkat Pendidikan menurut Jenis Kelamin.
table2 <- prop.table(table1)
table2
## T.Pendidikan
## J.Kelamin 1 2 3 4
## 0 0.00 0.06 0.00 0.12
## 1 0.26 0.22 0.18 0.16
prop.table(table1, 1) %>% round(2)
## T.Pendidikan
## J.Kelamin 1 2 3 4
## 0 0.00 0.33 0.00 0.67
## 1 0.32 0.27 0.22 0.20
prop.table(table1, 2) %>% round(2)
## T.Pendidikan
## J.Kelamin 1 2 3 4
## 0 0.00 0.21 0.00 0.43
## 1 1.00 0.79 1.00 0.57
prop.table(table1, 1): membuat tabel proporsi dari tabel kontingensi table1 menurut barisprop.table(table1, 2): membuat tabel proporsi dari tabel kontingensi table1 menurut kolomround: menentukan banyaknya angka desimal di belakang komatable3 <- ftable(J.Kelamin, T.Pendidikan, T.Pendapatan)
table3
## T.Pendapatan 1 2 3 4 5 6
## J.Kelamin T.Pendidikan
## 0 1 0 0 0 0 0 0
## 2 0 1 1 0 1 0
## 3 0 0 0 0 0 0
## 4 1 0 3 1 1 0
## 1 1 2 1 1 2 3 4
## 2 0 1 4 4 2 0
## 3 1 2 3 1 1 1
## 4 2 1 0 2 2 1
ftable: membuat tabel kontingensi yang memuat setiap kombinasi dari level yang ada pada peubahSajian grafis peubah kategorik yang dapat digunakan adalah sebagai berikut: • The Grouped Dot Chart • The Grouped Dot Whisker Chart • The Two Way Dot Chart • The Side by Side Bar Chart • The Side by Side Bar Whisker Chart • The Side by Side Stacked Bar Chart • The Mosaic Chart
Suatu survei dilakukan terhadap pengguna dan bukan pengguna jasa keuangan. Berikut ini tersaji tabulasi silang antara pekerjaan responden dengan skor tingkat kemampuannya dalam pengelolaan keuangan.
survei<- matrix(data=c(30,3,44,
41,9,62,
34,4,74,
48,10,48,
23,6,14),
nrow=3,ncol=5,
byrow=FALSE,
dimnames=list(c("Rendah","Sedang","Tinggi"),
c("Pertanian","PNS","Business owner","Profesional","Lainnya")))
survei
## Pertanian PNS Business owner Profesional Lainnya
## Rendah 30 41 34 48 23
## Sedang 3 9 4 10 6
## Tinggi 44 62 74 48 14
# Pengelompokan Menurut Pekerjaan
dotchart(survei,xlab="Frequency",xlim=c(0,100))
# Pengelompokan Menurut Kemampuan Pengelolaan Keuangan
dotchart(t(survei),xlab="Frequency",xlim=c(0,100))
# Sajian Proporsi untuk Pengelompokan Menurut Pekerjaan
n <- sum(survei)
propsurvei<- survei/n
dotchart(propsurvei,xlab="Relative Frequency", xlim=c(0,0.20))
# Sajian Proporsi Dihitung dari Pekerjaan untuk Pengelompokan Menurut Pekerjaan
jumkerja <- colSums(survei)
proppekerjaan <- survei/rbind(jumkerja,jumkerja,jumkerja)
dotchart(proppekerjaan,xlab="Conditional Relative Frequency",xlim=c(0,0.8))
# Sajian Proporsi Dihitung dari Kemampuan Pengelolaan Keuangan untuk Pengelompokan Menurut Kemampuan Pengelolaan Keuangan
jumrkeu <- rowSums(survei)
proprkeu <- t(survei)/rbind(jumrkeu,jumrkeu,jumrkeu,jumrkeu,jumrkeu)
dotchart(proprkeu,xlab="Conditional Relative Frequency",xlim=c(0,0.4))
Sajian grafik untuk inferensia lebih tepat menggunakan proporsi yang didampingi dengan margin of error.
n <- sum(survei)
propsurvei <- survei/n
dotchart(propsurvei,xlab="Proportion",lcolor="white",xlim=c(0,0.25))
sd <- sqrt((1.-propsurvei)*propsurvei/n)
sd <- sd*qnorm(0.975)
hlo <- propsurvei-sd
hhi <- propsurvei+sd
titik <- c(propsurvei[,5],propsurvei[,4],propsurvei[,3],propsurvei[,2],propsurvei[,1])
kiri <- c(hlo[,5],hlo[,4],hlo[,3],hlo[,2],hlo[,1])
kanan <- c(hhi[,5],hhi[,4],hhi[,3],hhi[,2],hhi[,1])
dlx <- cbind(kiri,titik,kanan)
ys <- c(1:3,6:8,11:13,16:18,21:23)
dly <- cbind(ys,ys,ys)
ldl <- length(survei)
for (i in 1:ldl) lines(dlx[i,],dly[i,])
Alternatif sajian Dot Chart tidak secara tersarang melainkan bersilang.
library(lattice)
dotplot(survei,xlab="Frequency",ylab="Eye Color",as.table=TRUE,groups=FALSE, stack=FALSE,layout=c(1,5),scales=list(alternating=3))
dotplot(survei,xlab="Frequency",ylab="Eye Color",as.table=TRUE, groups=FALSE,stack=FALSE,layout=c(5,1),scales=list(alternating=3))
barplot(survei,horiz=TRUE,xlab="Frequency",ylab="Pekerjaan",legend = rownames(survei),beside=FALSE,cex.names=0.6,xlim=c(0,150),col=c(2,5,8))
mosaicplot(t(survei),main=" ", las=1,cex=0.75,color=c(2,5,8))
par(mfrow=c(1,2))
x <- rbinom(100,1,0.2)
barplot(table(x),main="p=0.2")
y <- rbinom(100,1,0.5)
barplot(table(y),main="p=0.5")
par(mfrow=c(1,2))
x <- rbinom(100,8,0.5)
barplot(table(x),main="n=100")
y <- rbinom(1000,8,0.5)
barplot(table(y),main="n=1000")
par(mfrow=c(1,2))
x <- rbinom(100,8,0.5)
barplot(table(x),main="n=100")
y <- rbinom(1000,8,0.5)
barplot(table(y),main="n=1000")
Misalkan terdapat 12 nasabah asuransi di suatu tempat. Diketahui bahwa proporsi nasabah telat bayar polis ialah 1/6. Jika antarnasabah saling bebas tentukanlah peluang bahwa terdapat 7 sampai 9 nasabah yang telat bayar polis?
Jawaban: • X banyaknya nasabah asuransi yang telat membayar • X ~ binomial(n=12, p=1/6)
P(7≤X≤9)
pbinom (9, size=12, prob =1/6) - pbinom (6, size=12, prob =1/6)
## [1] 0.001291758
par(mfrow=c(1,3))
x <- rpois(1000,1)
barplot(table(x), main="Poisson (1)")
y <- rpois(1000,3)
barplot(table(y),main="Poisson (3)")
z <- rpois(1000,6)
barplot(table(z),main="Poisson (6)")
Misalkan di suatu kota secara rata-rata terdapat 2 mesin ATM yang rusak dalam 1 tahun. a. Berapakah peluang tidak mesin ATM rusak dalam 1 tahun ke depan? b. Berapakah peluang terdapat 2 mesin ATM rusak dalam 2 tahun ke depan?
Jawaban: a. • Misalkan: X= banyaknya mesin atm yang rusak dalam waktu 1 tahun • maka X ~ Poisson(λ=1)
P(X=0)
ppois(0,lambda=1)
## [1] 0.3678794
P(Y=2)
diff (ppois(c(1,2),lambda=2))
## [1] 0.2706706
par(mfrow=c(1,3))
x <- rgeom(1000,0.2)
barplot(table(x), main="Geometrik (0.2)")
y <- rgeom(1000,0.5)
barplot(table(y),main="Geometrik (0.5)")
z <- rgeom(1000,0.8)
barplot(table(z),main="Geometrik (0.8)")
Misalkan suatu bank melakukan pengambilan undian berhadiah untuk setiap bulan Pak Yus adalah nasabah bank tersebut Jika peluang keberhasilan Pak Yus memperoleh hadiah undian tersebut ialah 0.45.
Jawaban: • Misalkan X= Banyaknya bulan yang dilalui sampai Pak Yus menang undian • Maka X ~ Geometrik (p=0.45)
diff (pgeom(c(2,3),prob=0.45))
## [1] 0.07486875
pgeom(4,prob=0.45,lower.tail = FALSE)
## [1] 0.05032844
par(mfrow=c(1,2))
x <- rhyper(1000,50,50,10)
barplot(table(x), main="Hypergeometrik (1000,50,10)")
y <- rhyper(1000,20,80,10)
barplot(table(y),main="Hypergeometrik (1000,20,10)")
Misalkan terdapat 100 orang nasabah pada suatu bank dengan 2 kategori yaitu kategori A dan B dengan masing masing berisi 60 dan 40 orang nasabah.Pada bank tersebut akan dilakukan pemilihan 20 nasabah secara acak untuk dijadikan responden suatu survei evaluasi. Berapakah peluang bahwa terpilih 10 orang nasabah kategori A dan 10 orang nasabah kategori B?
Jawaban: • Misalkan X= Banyaknya nasabah kategori A yang terpilih • Maka X ~ Hypergeometrik (N=100,K=60,n=20)
P(X=10)
dhyper(10,m=60,n=40,k=20)
## [1] 0.1192361