Responsi 1-1 STA1543-Analisis Data Kategorik

Khusnia Nurul Khikmah (G1501211049)

8/20/2022

1. Penyajian Data Kategorik dalam Grafik

Dalam analisis data kategorik, analisis yang menarik dilakukan adalah analisis tabulasi silang/tabel kontingensi. Dalam software R tabulasi silang bisa disusun dari data raw (data individu) atau bisa diinput secara langsung tabulasi silang tersebut. Cara pertama yaitu membentuk tabulasi silang dari data raw yang diilustrasikan dengan file Data1 sebagai berikut:

setwd("D:/S2/IPB/BAHAN AJAR STA1543/Minggu 1")
Data1 <- read.csv("Data P8.csv",sep=";",header=TRUE)
summary(Data1)
##    Responden       J.Kelamin     T.Pendidikan   T.Pendapatan
##  Min.   : 1.00   Min.   :0.00   Min.   :1.00   Min.   :1.0  
##  1st Qu.:13.25   1st Qu.:1.00   1st Qu.:1.25   1st Qu.:3.0  
##  Median :25.50   Median :1.00   Median :2.00   Median :4.0  
##  Mean   :25.50   Mean   :0.82   Mean   :2.48   Mean   :3.6  
##  3rd Qu.:37.75   3rd Qu.:1.00   3rd Qu.:4.00   3rd Qu.:5.0  
##  Max.   :50.00   Max.   :1.00   Max.   :4.00   Max.   :6.0

Deskripsi melalui tabel dan grafik

Deskripsi melalui tabel dan grafik dengan membuat tabel kontingensi dari data

table1<-table(Data1$J.Kelamin,Data1$T.Pendidikan)
table1
##    
##      1  2  3  4
##   0  0  3  0  6
##   1 13 11  9  8
rowSums(table1)
##  0  1 
##  9 41
colSums(table1)
##  1  2  3  4 
## 13 14  9 14

Membuat tabel proporsi dari data

table2<-prop.table(table(Data1$J.Kelamin,Data1$T.Pendidikan))
table2
##    
##        1    2    3    4
##   0 0.00 0.06 0.00 0.12
##   1 0.26 0.22 0.18 0.16

Membuat tabel 3 dimensi atau lebih

table3<-ftable(Data1$J.Kelamin,Data1$T.Pendidikan,Data1$T.Pendapatan)
table3
##      1 2 3 4 5 6
##                 
## 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

Catatan: Tabel 1 dan Tabel 2 merupakan tabel kontingensi 2 arah sedangkan Tabel 3 merupakan tabel 3 arah.

Cara kedua membuat tabulasi silang atau tabel kontingensi adalah dengan menginput secara langsung dalam bentuk matriks.

Data Contoh 1

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. Bagaimanakah hubungan antar kedua peubah ini?

Input Data

survei<-matrix(data=c(30,3,44,41,9,62,34,4,74,48,10,48,23,6,14),ncol=5,nrow=3,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

Tabulasi silang/tabel kontingensi yang telah diinput dapat disajikan dalam bentuk grafik.

Ada beberapa bentuk grafik yang bisa disajikan dari tabulasi silang/tabel kontingensi:

Grouped Dot Chart

Dot chart merupakan grafik titik yang menunjukkan nilai frekuensi atau proporsi dari suatu kriteria kategorik dari tabulasi silang atau tabel kontingensi.

Dalam membuat Dot Chart harus ditentukan kriteria/peubah apa yang menjadi dasar pengelompokan dan apakah disajikan dalam bentuk nilai frekuensi atau proporsi. Berikut disajikan beberapa alternatif penyajian Dot Chart dengan menggunakan data Survei yang merupakan tabel dua arah antara peubah jenis pekerjaan dan kemampuan pengelolaan keuangan:

Pengelompokan berdasarkan pekerjaan

dotchart(survei,xlab="Frequency",xlim=c(0,100))

Pengelompokkan berdasarkan kemampuan pengelolaan keuangan

dotchart(t(survei),xlab="Frequency",xlim=c(0,100))

Dot chart proporsi

n<-sum(survei)
propsurvei<-survei/n
dotchart(propsurvei,xlab="Relative Frequency", xlim=c(0,0.3))

Dotchart proporsi per jenis pekerjaan

jumkerja <-colSums(survei)
proppekerjaan<-survei/rbind(jumkerja,jumkerja,jumkerja)
dotchart(proppekerjaan,xlab="Conditional Relative Frequency",xlim=c(0,1))

Grouped Dot Whisker Chart

Grouped Dot Whisker Chart merupakan pengembangan dari Group Dot Chart dengan nilai proporsi dari data tabulasi silang. Pada Grouped Dot Whisker Chart data proporsi ditambahkan dengan informasi selang kepercayaan dari proporsi yaitu nilai proporsi ditambahkan dengan informasi margin of error. Dimana margin of error merupakan perkalian antara standar deviasi dari proporsi dengan rumus \(Var=PQ/n\) (Sd merupakan akar dari Var) dengan nilai \(Z_{\alpha/2}\) dimana \(\alpha\) ditentukan 5 persen sehingga $Z_{/2} sama dengan Z \(0.025\).

Rumus Selang Kepercayaan:

P +/- Margin of error

P +/- \(Z_{0.025}\) * Sd

Group dot whisker chart

n<-sum(survei)
propsurvei<-survei/n
dotchart(propsurvei,xlab="Proportion",lcolor="white",xlim=c(0,0.3))
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,])

Two Way Dot Chart

Pada penyajian Grouped Dot Chart pada no 1 dilakukan secara bersarang dan alternatif lain penyajian Grouped Dot Chart adalah dilakukan secara bersilang.

Penyajian bersarang

dotplot(survei,xlab="Frequency",as.table=TRUE,groups=FALSE,stack=FALSE,layout=c(1,5),scales=list(alternating=3))

Penyajian bersilang

dotplot(survei,xlab="Frequency",as.table=TRUE,groups=FALSE,stack=FALSE,layout=c(5,1),scales=list(alternating=3))

Side by side Bar Chart

Side by side bar chart merupakan grafik batang yang menunjukkan nilai frekuensi untuk kriteria tertentu dalam tabulasi silang atau tabel kontingensi. Kategori tersebut disajikan dalam grafik batang dengan penggolongan kriteria suatu peubah ke samping.

Bar plot frekuensi

barplot(survei,horiz=TRUE,xlab="Frequency",ylab="Pekerjaan",beside=TRUE,cex.names=0.6,xlim=c(0,100),col=c(6,7,4))
legend("topright", legend= rownames(survei), fill=c(6,7,4),ncol = 2,cex = 0.5)

Bar plot proporsi

barplot(propsurvei,horiz=TRUE,xlab="Relative Frequency",ylab="Pekerjaan",beside=TRUE,cex.names=0.6,xlim=c(0,0.3),col=c(5,10,15))
legend("topright", legend= rownames(propsurvei), fill=c(5,10,15),ncol = 2,cex = 0.5)

Side by side Stacked Bar Chart

Side by side stacked bar chart merupakan salah satu bentuk penyajian data kategorik tabulasi silang atau tabel kontingensi. Sejalan dengan grafik batang pada no 4 namun kriteria kategori disajikan bertumpuk (stacked).

barplot(survei,horiz=TRUE,xlab="Frequency",ylab="Pekerjaan",beside=FALSE,cex.names=0.6,xlim=c(0,150),col=c(3,4,6))
legend("topright", legend= rownames(survei), fill=c(3,4,6),ncol = 2,cex = 0.5)

Mosaic Chart

Mosaic chart merupakan grafik untuk menampilkan data kategorik dalam tabulasi silang/tabel kontingensi yang sejenis dengan side by side stacked bar chart. Perbedaan antara side by side stacked bar chart dengan mosaic chart adalah jika pada stacked bar chart total frekuensi jika mosaic chart totalnya adalah 100 persen. Atau mosaic chart merupakan stacked bar chart untuk proporsi terhadap total kategori suatu peubah. Misal pada contoh adalah proporsi terhadap total jenis pekerjaan.

mosaicplot(t(survei),main=" ", las=1,cex=0.75,color=c(2,4,7))

2. Peubah Acak Data Diskret (Data Kategorik)

Sebaran Bernoulli

Karakteristik dari sebaran Bernoulli adalah:

  1. Terdiri dari sekali percobaan. Dimana hasil dari percobaan tersebut terdapat dua kemungkinan hasil yaitu sukses dan gagal.

  2. Peluang sukses \(P\) \((0<P<1)\)

  3. \(y=1\) jika sukses dan \(y=0\) jika gagal

Bernoulli merupakan kasus khusus dari Binomial dengan besarnya percobaan hanya satu (n=1).

Berikut merupakan sintaks untuk membangkitkan data dari populasi mengikuti sebaran Bernoulli dengan peluang tertentu:

Membangkitkan 100 data dari populasi Bernoulli \(P=0.2\)

x <- rbinom(100,1,0.2)
barplot(table(x))

Membangkitkan 100 data dari populasi Bernoulli \(P=0.5\)

y <- rbinom(100,1,0.5)
barplot(table(y))

Catatan: Terlihat bahwa data bangkitan antara \(P=0.2\) dan \(P=0.5\) terlihat berbeda dan pada \(P=0.5\) cenderung seimbang antara \(y=1\) dan \(y=0\). Nilai \(P\) pada sebaran Bernoulli merupakan parameter dari sebaran tersebut yang menentukan sebaran dari data.

Sebaran Binomial

Sebaran Binomial merupakan sebaran dari beberapa kejadian Bernoulli yang saling bebas. Adapun karakteristik dari Sebaran Binomial adalah sebagai berikut:

  1. Terdiri dari beberapa percobaan sejenis

  2. Tiap percobaan terdiri dari dua kemungkinan hasil: sukses dan gagal

  3. Tiap percobaan saling bebas

  4. Peluang sukses \((P)\) sama untuk semua percobaan

  5. Peubah acak \(y\), merupakan jumlah sukses dari beberapa percobaan yang mengikuti sebaran Binomial dengan parameter \(n\) dan \(p\)

  6. \(y\) dapat bernilai \(y=0,1,…,n\)

Berikut merupakan sintaks untuk membangkitkan data dari sebaran Binomial:

Membangkitkan 100 data dari populasi Binomial dengan \(n=8\) dan \(P=0.5\)

x <-rbinom(100,8,0.5)
barplot(table(x))

Membangkitkan 1000 data dari populasi Binomial dengan \(n=8\) dan \(P=0.5\)

x <-rbinom(1000,8,0.5)
barplot(table(x))

Catatan: Berdasarkan diagram garis di atas diperoleh informasi bahwa semakin besar data yang dibangkitkan maka akan cenderung membentuk grafik yang simetris (cenderung membentuk bentuk lonceng/ kurva normal)

Dengan fungsi pada R pbinom akan menghasilkan nilai peluang kumulatif dari sebaran Binomial. Berikut merupakan contoh kasus dan penyelesaian dengan pbinom:

Contoh Soal

Misalkan terdapat 12 nasabah asuransi di suatu tempat. Diketahui bahwa proporsi nasabah telat bayar polis ialah \(1/6\). Jika antar nasabah saling bebas tentukanlah peluang bahwa terdapat 7 sampai 9 nasabah yang telat bayar polis!

\(X \sim banyaknya nasabah asuransi yang telat membayar\)

\(X \sim binomial(n=12 p=1/6)\)

\(P(7<=X<=9) = P(X<=9)- P(X<=6)\)

pbinom (9, size=12, prob =1/6)-pbinom (6, size=12, prob =1/6)
## [1] 0.001291758
sum(dbinom(7:9,12,1/6))
## [1] 0.001291758

Sebaran Poisson

Sebaran Poisson merupakan sebaran yang menggambarkan karakteristik data pada kejadian yang jarang terjadi pada suatu waktu tertentu atau suatu tempat tertentu. Contohnya jumlah kesalahan ketik pada suatu halaman, kedatangan bus jurusan kota A pada waktu tertentu.

Berikut merupakan sintaks untuk membangkitkan data dari sebaran Poisson dengan parameter tertentu(lambda):

Membangkitkan 1000 data dari populasi Poisson dengan \(\lambda=1\)

x <- rpois(1000,1)
barplot(table(x))

Membangkitkan 1000 data dari populasi Poisson dengan \(\lambda=3\)

x <- rpois(1000,3)
barplot(table(x))

Membangkitkan 1000 data dari populasi Poisson dengan \(\lambda=6\)

x <- rpois(1000,6)
barplot(table(x))

Catatan: Besaran parameter lambda menentukan kemencengan dari grafik data. Semakin kecil lambda maka akan semakin menceng ke kanan.

Dengan fungsi pada R ppois akan menghasilkan nilai peluang kumulatif dari sebaran Poisson. Berikut merupakan contoh kasus dan penyelesaian dengan ppois:

Contoh Soal:

Misalkan di suatu kota secara rata rata terdapat 2 mesin ATM yang rusak dalam 1 tahun:

  1. Berapakah peluang tidak ada mesin ATM rusak dalam 1 tahun ke depan

  2. Berapakah peluang terdapat 2 mesin ATM rusak dalam 2 tahun ke depan

Solusi:

Misal \(X\) banyaknya mesin ATM yang rusak pada waktu 1 tahun

\(X \sim poisson (lambda=1)\)

1. \(P(X=0)\)

Kumulatif dari sebaran poisson pada \(X=0\) sama dengan pmf dari \(X=0\)

ppois(0,lambda=1)
## [1] 0.3678794
dpois(0,1)
## [1] 0.3678794

Misal \(Y\) banyaknya mesin ATM yang rusak dalam waktu 2 tahun maka \(Y \sim poisson (\lambda=2)\)

selisih dari kumulatif sebaran Poisson pada \(x=2\) dan \(x=1\)

diff(ppois(c(1,2),lambda=2))
## [1] 0.2706706
dpois(1,2)
## [1] 0.2706706

Sebaran Geometrik

Sebaran geometrik merupakan percobaan Bernoulli yang diperlukan hingga muncul Sukses pertama \((P(S)=p)\).

Berikut sintaks untuk membangkitkan data dari populasi yang mengikuti sebaran geometrik dengan parameter \(P\) tertentu.

Membangkitkan 1000 data dari populasi Geometrik dengan \(P=0.2\)

x <- rgeom(1000,0.2)
barplot(table(x))

Membangkitkan 1000 data dari populasi Geometrik dengan \(P=0.5\)

x <- rgeom(1000,0.5)
barplot(table(x))

Membangkitkan 1000 data dari populasi Geometrik dengan \(P=0.8\)

x <- rgeom(1000,0.8)
barplot(table(x))

Catatan: Perbedaan pada nilai parameter dari sebaran geometrik berpengaruh pada lebar nilai \(x\) yang keluar. Semakin besar nilai \(P\) maka nilai \(x\) akan semakin sempit atau semakin sedikit nilai \(x\) yang muncul. Namun secara grafik terlihat bahwa bangkitan data dari sebaran geometrik selalu menceng ke kanan.

Untuk menghitung peluang dari suatu peubah acak yang mengikuti sebaran Geometrik digunakan fungsi pgeom untuk mendapatkan nilai kumulatif dari sebaran geometrik. Berikut merupakan contoh kasus dari sebaran geometrik:

Contoh Soal:

Misalkan X banyaknya bulan yang dilalui sampai Pak Yus menang undian.

\(X \sim geometrik (p=0.45)\)

1. \(P(X=3)\)

diff(pgeom(c(2,3),prob=0.45))
## [1] 0.07486875
dgeom(3,0.45)
## [1] 0.07486875

2. \(P(X>4)\)

pgeom(4,prob=0.45,lower.tail = FALSE)
## [1] 0.05032844
sum(dgeom(5:12,0.45))
## [1] 0.04990702

Sebaran Hipergeometrik

Jika pada sebaran Binomial, nilai \(P\) setiap pengulangan diasumsikan sama. Pada sebaran Hipergeometrik nilai \(P\) tidak sama dan biasa terjadi pada percontohan tanpa pengembalian (sampling without replacement) dari populasi terhingga (finite).

Berikut adalah sintaks untuk membangkitkan data dari populasi yang berdistribusi hipergeometrik dengan parameter \(m\), \(n\), dan \(k\). Parameter \(m\) merupakan banyaknya karakteristik \(A\), \(n\) banyaknya karakteristik \(B\), dan \(k\) banyaknya yang diambil.

Membangkitkan 1000 data dari populasi Hypergeometrik dengan \(m=50\), \(n=50\), \(k=10\)

x <- rhyper(1000,50,50,10)
barplot(table(x))

Membangkitkan 1000 data dari populasi Hypergeometrik dengan \(m=20\), \(n=80\), \(k=10\)

x <- rhyper(1000,20,80,10)
barplot(table(x))

Catatan: Besaran parameter menentukan sebaran dari data bangkitan, semakin besar \(m\) dan \(n\) akan menentukan kemencengan dari data bangkitan. Jika nilai \(m\) dan \(n\) cenderung seimbang maka data dari bangkitan cenderung simetris.

Untuk menghitung peluang dari sebaran Hypergeometrik menggunakan fungsi dhyper(fungsi massa peluang). Berikut adalah contoh kasus dari hypergeometrik:

Contoh Soal

Misalkan \(X\) banyaknya nasabah kategori A yang terpilih.

Maka \(X \sim hipergeometrik(N=100,m=60,n=20)\)

\(P(X=10)\)

dhyper(10,m=60,n=40,k=20)
## [1] 0.1192361

Terimakasih