Kali ini bakal ku-share salah satu analisis data yang berada di Kaggle (www.kaggle.com). Analisis data kali ini bertemakan Tenggelamnya kapal Titanic, yang tentu kita semua tahu dengan filmnya yang terkenal itu. Tujuan analisis data ini untuk mengetahui faktor apa saja yang menentukan bertahan hidup atau tidaknya seorang penumpang. Dibawah ini merupakan keterangan dari variabel yang tersedia pada data.
VARIABLE DESCRIPTIONS:
survival Survival
(0 = No; 1 = Yes)
pclass Passenger Class
(1 = 1st; 2 = 2nd; 3 = 3rd)
name Name
sex Sex
age Age
sibsp Number of Siblings/Spouses Aboard
parch Number of Parents/Children Aboard
ticket Ticket Number
fare Passenger Fare
cabin Cabin
embarked Port of Embarkation
(C = Cherbourg; Q = Queenstown; S = Southampton)
Sesuai dengan tujuan, tentu variabel survival yang bertipe nominal menjadi variabel dependent. Sedangkan untuk variabel lainnya dapat dijadikan variabel independent.
Nah, melihat tipe data dari variabel dependent, tentu kita tidak bisa menggunakan analisis regresi biasa. Salah satu alat analisis yang bisa digunakan untuk data tersebut adalah Analisis Regresi Logistik.
Regresi Logistik merupakan alat analisis yang dikhususkan untuk tipe variabel dependentnya kategorik. Sedangkan untuk variabel independentnya bisa kategorik atau numeric tanpa harus melihat distribusi datanya. Akan tetapi diperlukan asumsi bahwa tidak terjadi Multikolinieritas pada variabel independent.
Nah, mari kita lakukan analisisnya dengan menggunakan R. Diawali dengan mengeset directori dan import dataset penumpang kapal titanic-nya, dengan script di bawah ini.
## Set Directory
setwd("D:/data/blog/Reglog")
## Import Dataset Titanic
mydata <- read.table("D:/data/blog/Reglog/penumpangtitanic.csv", header=TRUE,
sep=",", row.names="PassengerId")
Lalu dilakukan penghapusan beberapa variabel yang dalam analisis sederhana ini tidak akan dipakai. Variabel itu adalah Name (3), Ticket (8), dan Cabin (10). Penghapusan ini dilakukan dengan script di bawah ini.
## Menghapus beberapa kolom yang tidak dipakai pada model ini
mydata2 <- mydata[,-c(3,8,10)]
Setelah itu, lakukan analisis Regresi Logistik (khusus jumlah kategorik var dependent 2), disertai pemilihan model terbaik memakai metode Backward, dengan script di bawah ini.
## Membuat model regresi logistik
fit1 <- glm(Survived ~ . , family = binomial(logit), data = mydata2, na.action = na.exclude)
summary(fit1)
## membuat model regresi logistik dengan seleksi metode backward
fit2 <- step(fit1,direction="backward",trace=FALSE)
summary(fit2)
Output akhir dari script tersebut dapat dilihat di bawah ini.
Tentu jangan lupa bahwa perlu kita mengecek apakah terjadi multikolinieritas pada model yang sudah dibuat. Nah, untuk melakukan itu bisa dilakukan dengan script di bawah.
## Melihat Multicolinearity, jika GVIF (General VIF) dari variabel lebih dari 5
## hapus variabel itu
library(car)
vif(fit2)
## karena GVIF tidak lebih dari 5 untuk semua variabel,
## maka tidak ada multicolinearity
Dengan hasil output di bawah ini, dapat dinyatakan bahwa tidak terjadi multikolinieritas. Dikarenakan tidak ada nilai GVIF yang lebih dari 5 untuk semua variabel independent.
Untuk melihat akurasi dari model yang sudah dibuat, dapat dilakukan dengan script di bawah. Akurasi yang didapat adalah sebesar 0,8002245.
## Melihat Performance Model
library(ROCR)
fit2preds <- predict(fit2,newdata=mydata2,type="response")
fit2perf2 <- performance(fit2pred,"acc")
## pakai cut off point = 0.5
accuracy <- fit2perf2@y.values[[1]][max(which(fit2perf2@x.values[[1]] >= 0.5))]
accuracy
## accuracy == 0.8002245
Semoga postingan kali ini menarik dan bermanfaat.
1 komentar:
Jelasin cara baca persamaan hasil akhirnya donkzzzzzzzzzzzz :-?
Posting Komentar