setwd("D:/KULIAH IPB/SEMESTER 3/STK 654 ANALISIS DATA KATEGORIK/UTS/PRAKTIKUM/01")
• Membaca data format .txt Untuk membaca data dalam bentuk file text menggunakan fungsi read.table
• Membaca data format .csv Untuk membaca data dalam bentuk file text menggunakan fungsi read.csv
•Membata data format . sav Untuk membaca data dalam bentuk file text menggunakan library (“foreign”) dengan fungsi read.spss
Data1 <- read.delim("D:/KULIAH IPB/SEMESTER 3/STK 654 ANALISIS DATA KATEGORIK/UTS/PRAKTIKUM/01/Data P1.txt")
Data2 <- read.csv("D:/KULIAH IPB/SEMESTER 3/STK 654 ANALISIS DATA KATEGORIK/UTS/PRAKTIKUM/01/Data P1.csv")
head(Data1)
## Responden J.Kelamin T.Pendidikan T.Pendapatan
## 1 1 1 1 4
## 2 2 1 3 6
## 3 3 1 2 4
## 4 4 1 2 5
## 5 5 1 4 4
## 6 6 1 4 1
head(Data2)
## Responden J.Kelamin T.Pendidikan T.Pendapatan
## 1 1 1 1 4
## 2 2 1 3 6
## 3 3 1 2 4
## 4 4 1 2 5
## 5 5 1 4 4
## 6 6 1 4 1
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 Data Menggunakan Tabel Tabel kontingensi dan tabel proporsi dapat digunakan dalam mengeksplorasi pada data kategorik. Berikut akan disajikan contoh dengan menggunakan data (Data P1.txt)
##deskripsi melalui tabel dan grafik
# membuat tabel kontingensi dari data
tabel1<-table(Data1$J.Kelamin, Data1$T.Pendidikan)
tabel1
##
## 1 2 3 4
## 0 0 3 0 6
## 1 13 11 9 8
rowSums(tabel1)
## 0 1
## 9 41
colSums(tabel1)
## 1 2 3 4
## 13 14 9 14
#membuat tabel proporsi dari data
tabel2<-prop.table(table(Data1$J.Kelamin,Data1$T.Pendidikan))
tabel2
##
## 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
tabel3<-ftable(Data1$J.Kelamin, Data1$T.Pendidikan, Data1$T.Pendapatan)
tabel3
## 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
Sajian grafis antar data 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-jasa keuangan. Berikut ini tersaji tabulasi silang pekerjaan dengan skor tingkat kemampuannya dalam pengelolaan keuangan. Bagaimanakah hubungan antar kedua peubah ini?
Tabel tabulasi silang pekerjaan dengan skor tingkat kemampuannya dalam pengelolaan keuangan
#Langkah awal dari data yangditampilkan diatas adalah membuat tabulasi silang/tabel kontingensi dengan menginput secara langsung dalam bentuk matriks seperti pada syntax dibawah ini;
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
#pengelompokkan berdasarkan pekerjaan
dotchart(survei,xlab="Frequency",xlim=c(0,100))
#pengelompokkan berdasarkan kemampuan pengelolaan keuangan
dotchart(t(survei),xlab="Frequency",xlim=c(0,100))
#dotchart proporsi dihitung menurut pekerjaan
jumkerja <-colSums(survei)
proppekerjaan <-survei/rbind(jumkerja,jumkerja,jumkerja)
dotchart(proppekerjaan,xlab="Conditional Relative Frequency",xlim=c(0,1))
#dot chart proporsi dihitung menurut kemampuan perencanaan keuangan
jumrkeu <- rowSums(survei)
proprkeu <- t(survei)/rbind(jumrkeu,jumrkeu,jumrkeu,jumrkeu,jumrkeu)
dotchart(proprkeu,xlab="Conditional Relative Frequency",xlim=c(0,0.5))
Grouped Dot Whisker Chart merupakan grafik pengembangan dari dot chart dengan menambahkan selang kepercayaan dari proporsi yang ditujukan untuk inferensia. Nilai proporsi ditambahkan dengan infromasi margin of error.
#group dot whisker chart
n<-sum(survei)
n
## [1] 450
propsurvei<-survei/n
propsurvei
## Pertanian PNS Business owner Profesional Lainnya
## Rendah 0.066666667 0.09111111 0.075555556 0.10666667 0.05111111
## Sedang 0.006666667 0.02000000 0.008888889 0.02222222 0.01333333
## Tinggi 0.097777778 0.13777778 0.164444444 0.10666667 0.03111111
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,])
Alternatif sajian Dot Chart tidak secara tersarang, melainkan bersilang
library(lattice)
#Dot Chart bersarang
dotplot(survei,xlab="Frequency",ylab="Eye Color",as.table=TRUE,groups=FALSE,stack=FALSE,layout=c(1,5),scales=list(alternating=3))
#Dot Chart bersilang
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=TRUE,cex.names=0.6,xlim=c(0,100))
n <-sum(survei)
propsurvei <- survei/n
barplot(propsurvei,horiz=TRUE,xlab="Relative
Frequency",ylab="Pekerjaan",legend =
rownames(propsurvei),beside=TRUE,cex.names=0.6,xlim=c(0,0.3))
barplot(survei,horiz=TRUE,xlab="Frequency",ylab="Pekerjaan",legend
= rownames(survei),beside=FALSE,cex.names=0.6,xlim=c(0,150))
mosaicplot(t(survei),main=" ", las=1,cex=0.75,color=TRUE)
#Ilustrasi Sebaran Bernoulli
#membangkitkan 100 data dari populasi Bernoulli P=0.2
x <- rbinom(100,1,0.2)
barplot(table(x),main="p=0.2")
#membangkitkan 100 data dari populasi Bernoulli P=0.5
y <- rbinom(100,1,0.5)
barplot(table(y),main="p=0.5")
#Ilustrasi Sebaran Binomial
#membangkitkan 100 data dari populasi Binomial dengan n=8 dan P=0.5
#X~binom (8,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~binom (8,0.5)
x <-rbinom(1000,8,0.5)
barplot(table(x))
#Ilustrasi sebaran Binomial
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= banyaknya nasabah asuransi yang telat bayar X~ binomial (n=12. p=1/2) Tentukan 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
Berikut merupakan sintaks untuk membangkitkan data dari sebaran Poisson dengan parameter tertentu(lamda)
#membangkitkan 1000 data dari populasi Poisson dengan lamda=1
x <- rpois(1000,1)
barplot(table(x))
#membangkitkan 1000 data dari populasi Poisson dengan lamda=3
x <- rpois(1000,3)
barplot(table(x))
#membangkitkan 1000 data dari populasi Poisson dengan lamda=6
x <- rpois(1000,6)
barplot(table(x))
#Ilustrasi sebaran Poisson
Misalkan di suatu kota secara rata rata terdapat 2 mesin ATM yang rusak dalam 1 tahun:
Berapakah peluang tidak mesin ATM rusak dalam 1 tahun ke depan
Berapakah peluang terdapat 2 mesin ATM rusak dalam 2 tahun ke depan
Solusi:
Misalkan X banyaknya mesin ATM yang rusak pada waktu 1 tahun
X~poisson (lamda=1)
#kumulatif dari sebaran poisson pada X=0 sama dengan pmf dari X=0
ppois(0,lambda=1)
## [1] 0.3678794
#selisih dari kumulatif sebaran Poisson pada x=2 dan x=1
diff(ppois(c(1,2),lambda=2))
## [1] 0.2706706
#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))
#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))
#Ilustrasi Sebaran Hipergeometrik
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 a. Berapakah peluang bahwa terpilih 10 orang nasabah kategori A dan 10 orang nasabah kategori B
Misalkan X banyaknya nasabah kategori A yang terpilih.
Maka X~hipergeometrik(N=100,m=60,n=20)
P(X=10)
dhyper(10,m=60,n=40,k=20)
## [1] 0.1192361