Cross tabulation (crosstabs) biasa digunakan untuk menghasilkan suatu tabel kontigensi antara variabel-variabel kategorial. Contoh tabelnya seperti dibawah ini, tabel itu menabulasi 2 variabel amatan, yaitu pekerjaan dengan pendidikan.
Cara melakukan crosstabs lewat R program sebenarnya cukup mudah. Pertama kita memiliki dataset amatan yang terdiri dari variabel pekerjaan dan pendidikan. Kita import data itu, lalu olah data itu dengan script R di bawah ini.
## Mengeset Directory Project
setwd("D:/data/blog/crosstabs")
## Import data
mydata <- read.csv("data.csv",sep=";",header=T)
View(mydata)
# Cross Tabulation
attach(mydata)
mytable <- table(mydata$kerja,mydata$didik) # kerja will be rows, didik will be columns
mytable # print table
write.csv(mytable,file = "crosstabs.csv")
Sehingga menghasilkan file crosstabs.csv seperti gambar tabel di atas.
Dari tabel tabulasi itu (mytable), kita dapat melakukan analisis lanjutan. Analisis yang bisa dilakukan adalah uji Kebebasan (Independency test). Intinya, uji ini untuk melihat apakah dua variabel tersebut saling mempengaruhi atau tidak. Ini semacam tes korelasi tetapi khusus digunakan pada variabel nominal.
Ada tiga test yang akan dibahas kali ini, yaitu chi square, mc Nemar, dan Fisher.
Ketiga-tiganya memiliki hipotesis seperti ini.
H0 : varibel saling bebas / tidak saling mempengaruhi (untuk p > α)
H1 : variabel tidak saling bebas / saling mempengaruhi (untuk p <= α)
(α yang dipakai biasanya 0.05)
Berikut ketiga test itu dilakukan lewat script R.
Chi square
> chisq.test(mytable)
Pearson's Chi-squared test
data: mytable
X-squared = 5.3472, df = 4, p-value = 0.2535
Mc Nemar
> mcnemar.test(mytable)
McNemar's Chi-squared test
data: mytable
McNemar's chi-squared = 3.3333, df = 3, p-value = 0.343
Fisher
> fisher.test(mytable,alternative="two.sided")
Fisher's Exact Test for Count Data
data: mytable
p-value = 0.2781
alternative hypothesis: two.sided
Dari ketiga uji itu, terlihat nilai p dari semua uji lebih dari nilai α (0,05).
Sehingga untuk kasus dataset tersebut, tidak ada hubungan antara pekerjaan dengan pendidikan seseorang.
Selain dengan script R di atas, ada cara cepat yang bisa digunakan untuk menghasilkan tabel kontigensi yang lebih lengkap (observed, expected, percentage, dll), dan sekaligus menghasilkan hasil uji dari ketiga alat analisis tersebut. Hal itu dapat dilakukan lewat package “gmodels”. Berikut script-nya dan hasil outputnya.
script R
## Crosstable gmodels package, sekaligus melakukan crosstabs
## dan menghasilkan output uji kebebasan (chi square, mcNemar, Fisher)
library(gmodels)
crossanalysis <- CrossTable(mydata$kerja, mydata$didik,prop.r=F,prop.c=F,
chisq=T,fisher=T,mcnemar=T,format="SPSS")
Output
Cell Contents
|-------------------------|
| Count |
| Chi-square contribution |
| Total Percent |
|-------------------------|
Total Observations in Table: 25
| mydata$didik
mydata$kerja | akademi | sarjana | sma | Row Total |
-------------|---------|---------|---------|-----------|
karyawan | 3 | 5 | 1 | 9 |
| 0.800 | 0.544 | 1.878 | |
| 12.000%| 20.000%| 4.000% | |
-------------|---------|---------|---------|-----------|
petani | 1 | 3 | 4 | 8 |
| 0.225 | 0.013 | 0.200 | |
| 4.000% | 12.000%| 16.000% | |
-------------|---------|---------|---------|-----------|
wiraswasta | 1 | 2 | 5 | 8 |
| 0.225 | 0.450 | 1.012 | |
| 4.000% | 8.000% |20.000% | |
-------------|---------|---------|--------|------------|
Column Total | 5 | 10 | 10 | 25 |
-------------|---------|---------|--------|------------|
Statistics for All Table Factors
Pearson's Chi-squared test
------------------------------------------------------------
Chi^2 = 5.347222 d.f. = 4 p = 0.2534887
McNemar's Chi-squared test
------------------------------------------------------------
Chi^2 = 3.333333 d.f. = 3 p = 0.3430301
Fisher's Exact Test for Count Data
------------------------------------------------------------
Alternative hypothesis: two.sided
p = 0.2781465
Minimum expected frequency: 1.6
Cells with Expected Frequency < 5: 9 of 9 (100%)
Semoga bermanfaat, dan mohon koreksinya....
0 komentar:
Posting Komentar