Analisis Regresi Data Panel dalam Pemodelan Persentase Tingkat Kejahatan Seksual Terhadap Perempuan di India tahun 2001 - 2014
Pendahuluan
Latar Belakang
Saat ini berbagai peristiwa kejahatan dari tahun ke tahun terus meningkat, diantaranya adalah kejahatan yang secara khusus menyasar pada perempuan atau anak dibawah umur. Beberapa faktor yang menyebabkan kejahatan itu terjadi, seperti ketidakadilan gender, masalah ekonomi yang rendah, pengaruh lingkungan yang tidak sehat, gangguan psikologi, dan kurangnya bersosialisasi. Terjadinya kejahatan bisa berdampak buruk dalam kehidupan sosial, ekonomi, pendidikan dan kesehatan. Dalam hal kesehatan, bisa menyebabkan cedera fisik, mental, kecacatan, dan masalah kesehatan terkait lainnya. Selain itu, ada dampak negatif terhadap pendidikan, yang mengakibatkan rendahnya pencapaian pendidikan bagi korban kejahatan. Dimana merasa menjadi kurang nyaman atau tidak percaya diri saat berada di lingkungan publik.
Dari beberapa negara yang sering terjadi kasus kejahatan terhadap perempuan, sebuah proyek dari Thomson Reuters Foundation, menyurvei 213 pakar hak-hak perempuan tentang apa yang mereka anggap sebagai tempat terburuk di dunia bagi perempuan. Hasilnya masuk dalam daftar teratas, yaitu Afghanistan, Kongo, Pakistan, Somalia dan India, berdasarkan berbagai faktor termasuk kejahatan seksual, kurangnya layanan kesehatan, kemiskinan dan perdagangan manusia. Kasus kejahatan terhadap perempuan memberikan reputasi buruk bagi India sebagai negara dengan tingkat keamanan perempuan yang rendah. Kasus kejahatan tersebut mengacu pada kekerasan fisik dan psikis. Ada beberapa bentuk kejahatan terhadap perempuan di India yaitu, pembunuhan (kematian mahar, pembunuhan demi kehormatan), pembunuhan bayi perempuan, kejahatan seksual (pemerkosaan, kekerasan terkait kesopanan, perdagangan manusia, prostitusi paksa, kekerasan dalam rumah tangga). Negara India juga dianggap sebagai salah satu negara paling berbahaya, dimana pada kasus kejahatan seksual adalah salah satu kasus yang paling umum terjadi. Peningkatan jumlah kasus kekerasan terhadap perempuan di India, yakni sebesar 18%, sementara jumlah kasus kejahatan seksual naik hingga 32% di tahun 2014.
Selain peningkatan jumlah kasus pelecehan, ada kasus kematian mahar yang juga meningkat di negara India. Sejumlah data menyebutkan, setiap jam ada perempuan India yang meninggal karena ketidaksanggupan untuk membayar mahar dalam perkawinan. Lalu pada kasus penyerangan terhadap perempuan di India juga banyak terjadi, pelaku tidak hanya melakukan kekerasan seperti pemukulan, melainkan dari korban juga dilakukan kekerasan seksual. Kemudian pada kasus penghinaan kesopanan perempuan, tidak hanya dari segi fisik namun psikis. Dimana banyak dari korban juga merasa dilecehkan secara mental. Beberapa perempuan di India yang melapor lebih banyak korban pelecehan dibanding korban tindak kekerasan. Dari korban yang melapor mengakui bahwa sebagian besar pelakunya adalah orang terdekat, baik suami,keluarga, atau kerabat korban.
Oleh karena itu, penelitian ini bertujuan untuk menganalisis tingkat kejahatan seksual terhadap perempuan di negara India dengan menggunakan metode analisis deskriptif dan regresi data panel. Data yang akan digunakan adalah data dari beberapa kasus kejahatan yang di terjadi di negara India, seperti kasus pelecehan, penculikan, kematian mahar, penyerangan, penghinaan terhadap kesopanan perempuan, kekerasan yang dilakukan oleh suami atau kerabat dekat, dan penjualan anak perempuan. Dimana dari kasus pelecehan tersebut akan menjadi variabel target untuk mengetahui hubungan antar beberapa kasus-kasus yang lainnya.
Hasil penelitian ini diharapkan dapat memberikan pemahaman yang lebih baik tentang tingkat kejahatan terhadap perempuan di negara India, faktor-faktor yang mempengaruhinya, dan implikasinya terhadap kebijakan dalam memperdayakan dan perlindungan terhadap perempuan. Penelitian ini diharapkan dapat menjadi dasar bagi pemerintah, biro kepolisian, komunitas-komunitas anti kekerasan dan pemangku kepentingan lainnya dalam mengembangkan kebijakan yang efektif untuk mengurangi dan menekan kasus kejahatan agar tidak banyak terjadi di tahun kedepannya.
Analisis Data
Persiapan Data
Packages yang Digunakan
Berikut adalah beberapa Packages yang akan digunakan untuk analisis data kali ini.
# Packages untuk pengolahan dataframe
library(dplyr)
library(tidyr)
library(lubridate)
library(zoo)
# Packages untuk membuat visualisasi
library(ggcorrplot)
library(ggplot2)
library(plotly)
# Packages untuk melakukan analisis
library(plm)
library(lfe)
library(lmtest)
library(car)
library(tseries)
library(MLmetrics) Data yang Digunakan
🧮 Pemeriksaan Struktur Data
#> Rows: 10,677
#> Columns: 11
#> $ X <int> 0, 1, 2, 3, 4, 5, …
#> $ STATE.UT <chr> "ANDHRA PRADESH", …
#> $ DISTRICT <chr> "ADILABAD", "ANANT…
#> $ Year <int> 2001, 2001, 2001, …
#> $ Rape <int> 50, 23, 27, 20, 23…
#> $ Kidnapping.and.Abduction <int> 30, 30, 34, 20, 26…
#> $ Dowry.Deaths <int> 16, 7, 14, 17, 12,…
#> $ Assault.on.women.with.intent.to.outrage.her.modesty <int> 149, 118, 112, 126…
#> $ Insult.to.modesty.of.Women <int> 34, 24, 83, 38, 58…
#> $ Cruelty.by.Husband.or.his.Relatives <int> 175, 154, 186, 57,…
#> $ Importation.of.Girls <int> 0, 0, 0, 0, 0, 0, …
🔎 Deskripsi dari setiap kolom:
STATE.UT: negara bagian IndiaDISTRICT: daerah negara IndiaYear: tahun kasus terjadiRape: kasus pelecehanKidnapping.and.Abduction: kasus penculikanDowry.Deaths: kasus kematian maharAssault.on.women.with.intent.to.outrage.her.modesty: kasus penyerangan terhadap perempuanInsult.to.modesty.of.Women: kasus penghinaan terhadap kesopanan perempuanCruelty.by.Husband.or.his.Relatives: kasus kekerasan yang dilakukan oleh suami atau kerabat dekatImportation.of.Girls: kasus penjualan anak perempuan
Data Preparation
⚙️ Memfilter data yang diperlukan:
Setelah dilakukan pengecekkan pada data yang digunakan, ternyata ada
beberapa penulisan pada kolom STATE.UT yang tidak
konsisten. Penulisan pada kolom STATE.UT tersebut, dikhawatirkan akan
mempengaruhi kesalahan pada saat pemodelan. Maka dari itu, kita perlu
membuatnya menjadi konsisten dengan melakukan tracing terlebih
dahulu pada kolom STATE.UT. Lalu disamaratakan menggunakan huruf kapital
dan dibuat kolom baru dengan variabel State.New
Kemudian kita akan melihat nilai dari kolom State.New, untuk mencari
tahu nama-nama State yang penulisannya tidak konsisten. Menggunakan
fungsi unique() dan diurutkan dengan fungsi
sort()
#> [1] "A & N ISLANDS" "A&N ISLANDS" "ANDHRA PRADESH"
#> [4] "ARUNACHAL PRADESH" "ASSAM" "BIHAR"
#> [7] "CHANDIGARH" "CHHATTISGARH" "D & N HAVELI"
#> [10] "D&N HAVELI" "DAMAN & DIU" "DELHI"
#> [13] "DELHI UT" "GOA" "GUJARAT"
#> [16] "HARYANA" "HIMACHAL PRADESH" "JAMMU & KASHMIR"
#> [19] "JHARKHAND" "KARNATAKA" "KERALA"
#> [22] "LAKSHADWEEP" "MADHYA PRADESH" "MAHARASHTRA"
#> [25] "MANIPUR" "MEGHALAYA" "MIZORAM"
#> [28] "NAGALAND" "ODISHA" "PUDUCHERRY"
#> [31] "PUNJAB" "RAJASTHAN" "SIKKIM"
#> [34] "TAMIL NADU" "TELANGANA" "TRIPURA"
#> [37] "UTTAR PRADESH" "UTTARAKHAND" "WEST BENGAL"
Dari data diatas diketahui ada beberapa State yang penulisannya tidak
konsisten, yakni “A & N ISLANDS” dengan “A&N ISLANDS”, “D &
N HAVELI” dengan “D&N HAVELI”, dan “DELHI” dengan “DELHI UT”. Dimana
State yang penulisannya berbeda (padahal dalam state yang sama) itu
diidentifikasi sebagai State yang berbeda. Maka dari itu, kita akan
melakukan convert, agar terbaca menjadi dalam satu State dengan
menggunakan fungsi if else()
convert_state <- function(state) {
if (state %in% c("A & N ISLANDS", "A&N ISLANDS"))
{state <- "A & N ISLANDS"}
else if (state %in% c("D & N HAVELI" , "D&N HAVELI"))
{state <- "D & N HAVELI"}
else if (state %in% c("DELHI" , "DELHI UT"))
{state <- "DELHI"}
else
{state <- state}
}Untuk mengimplementasikan fungsi convert_state kita bisa
menggunakan sapply()dengan parameter:
X= kolom apa yang ingin kita transformasiFUN= nama fungsi yang ingin diterapkan
Kemudian kita akan melakukan pengecekkan kembali nilai pada kolom
State.India
#> [1] "A & N ISLANDS" "ANDHRA PRADESH" "ARUNACHAL PRADESH"
#> [4] "ASSAM" "BIHAR" "CHANDIGARH"
#> [7] "CHHATTISGARH" "D & N HAVELI" "DAMAN & DIU"
#> [10] "DELHI" "GOA" "GUJARAT"
#> [13] "HARYANA" "HIMACHAL PRADESH" "JAMMU & KASHMIR"
#> [16] "JHARKHAND" "KARNATAKA" "KERALA"
#> [19] "LAKSHADWEEP" "MADHYA PRADESH" "MAHARASHTRA"
#> [22] "MANIPUR" "MEGHALAYA" "MIZORAM"
#> [25] "NAGALAND" "ODISHA" "PUDUCHERRY"
#> [28] "PUNJAB" "RAJASTHAN" "SIKKIM"
#> [31] "TAMIL NADU" "TELANGANA" "TRIPURA"
#> [34] "UTTAR PRADESH" "UTTARAKHAND" "WEST BENGAL"
Dari hasil data diatas pada kolom State.India sudah konsisten dalam penulisannya.
️⚙️Selanjutnya pada data yang digunakan di group berdasarkan State.India dan Year, sehingga menampilkan data total kasus keseluruhan di India
Pemeriksaan Keseimbangan Data
Untuk memeriksa apakah data kita sudah seimbang dapat dilakukan
dengan fungsi is.pbalanced() yang telah tersedia pada
packages plm.
#>
#> A & N ISLANDS ANDHRA PRADESH ARUNACHAL PRADESH ASSAM
#> 14 14 14 14
#> BIHAR CHANDIGARH CHHATTISGARH D & N HAVELI
#> 14 14 14 14
#> DAMAN & DIU DELHI GOA GUJARAT
#> 14 14 14 14
#> HARYANA HIMACHAL PRADESH JAMMU & KASHMIR JHARKHAND
#> 14 14 14 14
#> KARNATAKA KERALA LAKSHADWEEP MADHYA PRADESH
#> 14 14 14 14
#> MAHARASHTRA MANIPUR MEGHALAYA MIZORAM
#> 14 14 14 14
#> NAGALAND ODISHA PUDUCHERRY PUNJAB
#> 14 14 14 14
#> RAJASTHAN SIKKIM TAMIL NADU TELANGANA
#> 14 14 14 1
#> TRIPURA UTTAR PRADESH UTTARAKHAND WEST BENGAL
#> 14 14 14 14
#> [1] FALSE
📈 Insight: data imbalance dengan kondisi: Dari beberapa wilayah
India ada satu State yang digunakan memiliki informasi waktu yang
berbeda, yakni State TELANGANA, dimana dari data selama 14
tahun hanya terdapat 1 data tahun saja.
Balancing the Data
Untuk melakukan balancing dapat menggunakan fungsi
make.pbalanced dengan parameter balance.type
yang dapat diisi dengan 3 opsi sebagai berikut:
- Balancing metode
fill: untuk setiap kolom waktu yg hilang akan diberikan nilai NA - Balancing metode
shared.times: dari data akan diambil keseluruhan individu dengan ketentuan informasi waktu terdapat di semua individu - Balancing metode
shared.individuals: dari data akan diambil individu dengan ketentuan informasi waktu lengkap
# balancing metode fill
balance1 <- pdata.frame(crime, index = c("State.India","Year") ) %>%
make.pbalanced(balance.type = "fill")
table(balance1$State.India)#>
#> A & N ISLANDS ANDHRA PRADESH ARUNACHAL PRADESH ASSAM
#> 14 14 14 14
#> BIHAR CHANDIGARH CHHATTISGARH D & N HAVELI
#> 14 14 14 14
#> DAMAN & DIU DELHI GOA GUJARAT
#> 14 14 14 14
#> HARYANA HIMACHAL PRADESH JAMMU & KASHMIR JHARKHAND
#> 14 14 14 14
#> KARNATAKA KERALA LAKSHADWEEP MADHYA PRADESH
#> 14 14 14 14
#> MAHARASHTRA MANIPUR MEGHALAYA MIZORAM
#> 14 14 14 14
#> NAGALAND ODISHA PUDUCHERRY PUNJAB
#> 14 14 14 14
#> RAJASTHAN SIKKIM TAMIL NADU TELANGANA
#> 14 14 14 14
#> TRIPURA UTTAR PRADESH UTTARAKHAND WEST BENGAL
#> 14 14 14 14
# balancing metode shared.times
balance2 <- pdata.frame(crime, index = c("State.India","Year") ) %>% make.pbalanced(balance.type = "shared.times")
table(balance2$State.India)#>
#> A & N ISLANDS ANDHRA PRADESH ARUNACHAL PRADESH ASSAM
#> 1 1 1 1
#> BIHAR CHANDIGARH CHHATTISGARH D & N HAVELI
#> 1 1 1 1
#> DAMAN & DIU DELHI GOA GUJARAT
#> 1 1 1 1
#> HARYANA HIMACHAL PRADESH JAMMU & KASHMIR JHARKHAND
#> 1 1 1 1
#> KARNATAKA KERALA LAKSHADWEEP MADHYA PRADESH
#> 1 1 1 1
#> MAHARASHTRA MANIPUR MEGHALAYA MIZORAM
#> 1 1 1 1
#> NAGALAND ODISHA PUDUCHERRY PUNJAB
#> 1 1 1 1
#> RAJASTHAN SIKKIM TAMIL NADU TELANGANA
#> 1 1 1 1
#> TRIPURA UTTAR PRADESH UTTARAKHAND WEST BENGAL
#> 1 1 1 1
# balancing metode shared.individuals
balance3 <- pdata.frame(crime, index = c("State.India","Year") ) %>% make.pbalanced(balance.type = "shared.individuals")
table(balance3$State.India)#>
#> A & N ISLANDS ANDHRA PRADESH ARUNACHAL PRADESH ASSAM
#> 14 14 14 14
#> BIHAR CHANDIGARH CHHATTISGARH D & N HAVELI
#> 14 14 14 14
#> DAMAN & DIU DELHI GOA GUJARAT
#> 14 14 14 14
#> HARYANA HIMACHAL PRADESH JAMMU & KASHMIR JHARKHAND
#> 14 14 14 14
#> KARNATAKA KERALA LAKSHADWEEP MADHYA PRADESH
#> 14 14 14 14
#> MAHARASHTRA MANIPUR MEGHALAYA MIZORAM
#> 14 14 14 14
#> NAGALAND ODISHA PUDUCHERRY PUNJAB
#> 14 14 14 14
#> RAJASTHAN SIKKIM TAMIL NADU TELANGANA
#> 14 14 14 0
#> TRIPURA UTTAR PRADESH UTTARAKHAND WEST BENGAL
#> 14 14 14 14
📈 Insight:
Melihat dari ketiga kondisi data yang dimiliki, kita tidak akan memakai balancing shared.times karena akan menghilangkan banyak informasi. Selanjutnya hanya akan menggunakan metode shared.individuals, dimana data State Telangana yang nilainya hanya memiliki informasi waktu hanya 1 tahun dan setelah dilakukan pengecekkan untuk State Telangana hanya memiliki data tahun 2014 saja. Maka dari itu, kita akan menggunakan metode shared individuals, dengan meng-exclude State Telangana.
Setelah pada hasil balance sudah ditentukan, akan disimpan pada
pdataframe bernama balanced dan kita akan memfilter
beberapa State untuk dilakukan pemodelan. Untuk fokus State yang
dimasukkan ke pemodelan, yakni State yang cenderung memiliki angka kasus
kejahatan cukup tinggi terhadap perempuan.
# mengambil data state tertentu
balanced <- balance3 %>% filter(State.India %in% c("ANDHRA PRADESH", "ASSAM", "BIHAR", "CHHATTISGARH" ,"JHARKHAND", "MADHYA PRADESH", "MAHARASHTRA", "ODISHA", "RAJASTHAN", "UTTAR PRADESH", "WEST BENGAL"))
# memeriksa kembali keseimbangan data
is.pbalanced(balanced)#> [1] TRUE
Dari hasil pengecekkan data dapat diketahui bahwa data yang digunakan sudah lengkap.
⚙️ Untuk memastikannya kembali dapat melakukan pengecekkan kelengkapan data
#> State.India
#> 0
#> Year
#> 0
#> Rape
#> 0
#> Kidnapping.and.Abduction
#> 0
#> Dowry.Deaths
#> 0
#> Assault.on.women.with.intent.to.outrage.her.modesty
#> 0
#> Insult.to.modesty.of.Women
#> 0
#> Cruelty.by.Husband.or.his.Relatives
#> 0
#> Importation.of.Girls
#> 0
Dari hasil pengecekkan kelengkapan data dapat diketahui bahwa tidak ditemukan adanya data yang kosong atau NA.
Eksplorasi Data
Ringkasan Data
#> State.India Year Rape Kidnapping.and.Abduction
#> ANDHRA PRADESH:14 2001 :11 Min. : 1134 Min. : 298
#> ASSAM :14 2002 :11 1st Qu.: 1970 1st Qu.: 1339
#> BIHAR :14 2003 :11 Median : 2570 Median : 2267
#> CHHATTISGARH :14 2004 :11 Mean : 3054 Mean : 3471
#> JHARKHAND :14 2005 :11 3rd Qu.: 3457 3rd Qu.: 4363
#> MADHYA PRADESH:14 2006 :11 Max. :10152 Max. :21252
#> (Other) :70 (Other):88
#> Dowry.Deaths Assault.on.women.with.intent.to.outrage.her.modesty
#> Min. : 118.0 Min. : 236
#> 1st Qu.: 553.5 1st Qu.: 2426
#> Median : 856.0 Median : 4824
#> Mean :1188.0 Mean : 5656
#> 3rd Qu.:1436.5 3rd Qu.: 7522
#> Max. :4938.0 Max. :20002
#>
#> Insult.to.modesty.of.Women Cruelty.by.Husband.or.his.Relatives
#> Min. : 2.0 Min. : 968
#> 1st Qu.: 40.5 1st Qu.: 3288
#> Median : 290.0 Median : 8467
#> Mean :1381.8 Mean :10770
#> 3rd Qu.:1564.5 3rd Qu.:15316
#> Max. :9940.0 Max. :46556
#>
#> Importation.of.Girls
#> Min. : 0.00
#> 1st Qu.: 0.00
#> Median : 0.00
#> Mean : 11.17
#> 3rd Qu.: 7.50
#> Max. :166.00
#>
Berdasarkan ringkasan diatas dapat kita ketahui beberapa hal berikut:
- [Rape/ Y] : Rata-rata tingkat kasus pelecahan tertinggi di negara India adalah 3.054 dengan nilai tertinggi sebesar 10.152 (MADHYA PRADESH) dan tingkat kasus pelecahan terendah adalah 1.134 (JHARKHAND).
- [Kidnapping and abduction / X1] : Rata-rata tingkat kasus penculikan adalah 3.471 dengan nilai tertinggi sebesar 21.252, artinya kasus penculikan terhadap perempuan masih sering terjadi di negara India.
- [Dowry deaths / X2] : Rata-rata tingkat kasus kematian mahar adalah 1188 dengan nilai tertinggi sebesar 4.938, artinya kasus kematian mahar di negara India masih cukup tinggi. Dimana suami dan mertua akan berusaha memeras mahar yang lebih besar, sehingga mengakibatkan istri melakukan bunuh diri.
- [Assault on women with intent to outrage her modesty / X3] : Rata-rata tingkat kasus penyerangan terhadap perempuan adalah 5.656 dengan nilai tertinggi sebesar 20.002, artinya untuk tingkat keamanan perempuan di negara India memang masih rendah.
- [Insult to modesty of women / X4] : Rata-rata tingkat kasus penghinaan terhadap kesopanan perempuan di negara India adalah 1.381 dengan nilai tertinggi sebesar 9.940, artinya bukan hanya kejahatan fisik yang terjadi cukup tinggi melainkan kejahatan dalam psikis terjadap perempuan juga tinggi di negara India.
- [Cruelty by husband or his relatives / X5] : Rata-rata tingkat kasus kekerasan oleh suami atau kerabat terdekat di negara India adalah 10.770 dengan nilai tertinggi sebesar 46.556, yang artinya dari tahun 2001-2014 kasus kejahatan terhadap perempuan yang terjadi di negara India, pelakunya dari orang-orang terdekat korban itu sendiri.
- [Importation of girls / X6] : Rata-rata tingkat kasus memperjual-belikan anak perempuan di negara India masih termasuk kecil yaitu sebesar 11 dengan nilai tertinggi sebesar 166, yang artinya untuk usia korban kejahatan di India termasuk anak perempuan di bawah umur.
Matriks Korelasi(Heatmap)
Dikarenakan dari beberapa kasus kejahatan di India yang paling umum
terjadi adalah kasus pelecehan. Maka dari itu, kita akan menjadikan
kolom Rape menjadi variabel target dan variabel
prediktornya adalah kasus selain pelecehan. Untuk mengetahui seberapa
besar tingkat hubungan antar variabel prediktor terhadap variabel target
dapat kita gunakan fungsi ggcorrplot.
📈 Berdasarkan hasil plot heatmap diatas, dapat diketahui bahwa:
- Terdapat satu variabel yang memiliki korelasi tinggi terhadap persentase tingkat pelecehan yakni variabel kasus penyerangan terhadap perempuan.
- Sedangkan keempat variabel lainnya memiliki korelasi yang relatif kecil terhadap kasus pelecehan.
- Terdapat indikasi terjadi multikolinieritas antara variabel Kidnapping.and.Abduction dengan Dowry.Deaths.
Pembuatan Model
Cross-Validation
Tahapan cross validation baik akan selalu dilakukan sebelum pembuatan
model, data akan dibagi menjadi data train dan data test. Dikarenakan
data panel memiliki informasi keterangan waktu maka pembagian data tidak
boleh diambil secara acak melainkan dibagi dengan cara dipisah secara
berurutan. Untuk melakukannya kita bisa menggunakan bantuan fungsi
filter(). Dimana untuk data train diambil dari tahun
2001-2013, dan data test diambil tahun 2014.
Pemeriksaan Asumsi Multikolinieritas
Dikarenakan pada hasil pemeriksaan korelasi pada tahapan EDA
sebelumnya menunjukkan adanya indikasi multikolinieritas antar variabel
prediktor, maka akan dilakukan pemeriksaan asumsi multikolinieritas
terlebih dahulu dengan cara pembuatan model regresi dengan fungsi
lm() dan dilanjutkan pengujian menggunakan fungsi
vif(). Ketika nilai VIF lebih dari 10 artinya terjadi
multikolinearitas, dan harapannya mendapatkan VIF < 10.
#> Kidnapping.and.Abduction
#> 3.751602
#> Dowry.Deaths
#> 3.207960
#> Assault.on.women.with.intent.to.outrage.her.modesty
#> 1.359525
#> Insult.to.modesty.of.Women
#> 2.044257
#> Cruelty.by.Husband.or.his.Relatives
#> 2.188551
#> Importation.of.Girls
#> 1.337760
📉 Berdasarkan hasil pengujian VIF diatas didapati keseluruhan
variabel prediktor memiliki nilai VIF < 10, artinya tidak terjadi
multikolinieritas pada model. Sehingga seluruh variabel prediktor dapat
digunakan untuk pembuatan model.
Untuk setiap pembuatan model akan digunakan fungsi plm()
dengan parameter:
- formula = Target ~ Prediktor
- data = berupa dataframe
- index = c(“kolom_individu”,“kolom_waktu”)
- model =
“pooling” : model gabungan atau common effect model (CEM)
“within” : model pengaruh tetap atau fixed effect model (FEM)
“random” : model pengaruh acak atau random effect (REM)
🔻 Penentuan variabel:
- Variabel Target : Rape
- Variabel Prediktor : Semua variabel kasus, kecuali Rape.
Model Gabungan (CEM)
cem <- plm(Rape ~ Kidnapping.and.Abduction + Dowry.Deaths + Assault.on.women.with.intent.to.outrage.her.modesty + Insult.to.modesty.of.Women + Cruelty.by.Husband.or.his.Relatives + Importation.of.Girls,
data = data_train,
index = c("State.India","Year"),
model = "pooling")Model Pengaruh Tetap (FEM)
Uji Chow
Uji Chow dilakukan untuk memilih model terbaik antara model common effect (cem) dengan model fixed effect (fem).
H0 : Model Common Effect
H1 : Model Fixed Effect
H0 ditolak jika P-value lebih kecil dari nilai α. Nilai α yang digunakan sebesar (0.05).
#>
#> F statistic
#>
#> data: Rape ~ Kidnapping.and.Abduction + Dowry.Deaths + Assault.on.women.with.intent.to.outrage.her.modesty + ...
#> F = 19.261, df1 = 10, df2 = 126, p-value < 0.00000000000000022
#> alternative hypothesis: unstability
Keputusan : Karena p-value 0.00000000000000022 < α (0.05), maka
tolak H0
📉 Kesimpulan : Dengan tingkat keyakinan 95%, bahwa
model fixed effect lebih baik digunakan daripada
menggunakan metode common effect.
Uji Hausman
Lalu dilakukan pengujian kembali dengan Uji Hausman untuk mengetahui apakah terdapat random effect dalam model data panel.
H0 : Model Random Effect
H1 : Model Fixed Effect
H0 ditolak jika P-value lebih kecil dari nilai α. Nilai α yang digunakan sebesar (0.05).
# membuat model regresi panel
fem <- plm(Rape ~ Kidnapping.and.Abduction + Dowry.Deaths + Assault.on.women.with.intent.to.outrage.her.modesty + Insult.to.modesty.of.Women + Cruelty.by.Husband.or.his.Relatives + Importation.of.Girls,
data = data_train,
index = c("State.India","Year"),
model = "within")
rem <- plm(Rape ~ Kidnapping.and.Abduction + Dowry.Deaths + Assault.on.women.with.intent.to.outrage.her.modesty + Insult.to.modesty.of.Women + Cruelty.by.Husband.or.his.Relatives + Importation.of.Girls,
data = data_train,
index = c("State.India","Year"),
model = "random")
# Menguji Hausmaan
phtest(fem,rem)#>
#> Hausman Test
#>
#> data: Rape ~ Kidnapping.and.Abduction + Dowry.Deaths + Assault.on.women.with.intent.to.outrage.her.modesty + ...
#> chisq = 6.4804, df = 6, p-value = 0.3716
#> alternative hypothesis: one model is inconsistent
Keputusan : Karena p-value 0.3716 > α (0.05), maka gagal tolak
H0
📉 Kesimpulan : Dengan tingkat keyakinan 95%, bahwa
model random effect merupakan metode yang lebih baik untuk
digunakan bila dibandingkan dengan model fixed effect.
Uji Breusch-Pagan
Setelah diperoleh model yang terbaik yaitu model random effect,
selanjutnya akan dilakukan uji Breusch-Pagan.
Gunanya untuk menentukan apakah ada time effect maupun cross section
effect atau bahkan tidak ada pada model. Ketika nilai p-value kurang
dari α maka dapat disimpulkan ada effect.
#Uji Breusch Pagan
gr <- plm(Rape ~ Kidnapping.and.Abduction + Dowry.Deaths + Assault.on.women.with.intent.to.outrage.her.modesty + Insult.to.modesty.of.Women + Cruelty.by.Husband.or.his.Relatives + Importation.of.Girls,
data = data_train,
model = "random")
#Efek Dua Arah
plmtest(gr, effect="twoways", type="bp")#>
#> Lagrange Multiplier Test - two-ways effects (Breusch-Pagan)
#>
#> data: Rape ~ Kidnapping.and.Abduction + Dowry.Deaths + Assault.on.women.with.intent.to.outrage.her.modesty + ...
#> chisq = 194.04, df = 2, p-value < 0.00000000000000022
#> alternative hypothesis: significant effects
#>
#> Lagrange Multiplier Test - (Breusch-Pagan)
#>
#> data: Rape ~ Kidnapping.and.Abduction + Dowry.Deaths + Assault.on.women.with.intent.to.outrage.her.modesty + ...
#> chisq = 191.42, df = 1, p-value < 0.00000000000000022
#> alternative hypothesis: significant effects
#>
#> Lagrange Multiplier Test - time effects (Breusch-Pagan)
#>
#> data: Rape ~ Kidnapping.and.Abduction + Dowry.Deaths + Assault.on.women.with.intent.to.outrage.her.modesty + ...
#> chisq = 2.6148, df = 1, p-value = 0.1059
#> alternative hypothesis: significant effects
📉 Berdasarkan hasil pengujian Breusch-Pagan diperoleh kesimpulan
bahwa pada model random effect terdapat efek dua arah. Namun setelah
diuji cross section effect dan time effect, hanya terdapat
cross section effect.
Dari Uji Hausman dan Uji Breusch-Pagan disimpulkan bahwa model yang
akan digunakan adalah model random effect dengan
cross section effect. Kemudian dilakukan uji signifikansi
variabel pada model sebagai berikut :
#model gabungan dengan pengaruh waktu
pred_random <- plm(Rape ~ Kidnapping.and.Abduction + Dowry.Deaths + Assault.on.women.with.intent.to.outrage.her.modesty + Insult.to.modesty.of.Women + Cruelty.by.Husband.or.his.Relatives + Importation.of.Girls,
data = data_train,
index = c("State.India","Year"),
model = "random",
effect = "individual")Prediksi Model
Untuk melakukan prediksi pada model akan gunakan fungsi
predict() dengan parameter:
- object = nama model yang digunakan
- newdata = data baru yang akan diprediksi
model_pred <- predict(pred_random,newdata = data_test)
library(MLmetrics)
MAPE(y_pred = model_pred , y_true = data_test$Rape)#> [1] 0.3466585
Diperoleh nilai MAPE sebesar 0.3466585 artinya model kita dalam memprediksi data baru mengalami kesalahan prediksi sebesar 34.66% atau dapat dikatakan model kita sudah cukup baik dalam memprediksi nilai baru.
Interpretasi Model
#> Oneway (individual) effect Random Effect Model
#> (Swamy-Arora's transformation)
#>
#> Call:
#> plm(formula = Rape ~ Kidnapping.and.Abduction + Dowry.Deaths +
#> Assault.on.women.with.intent.to.outrage.her.modesty + Insult.to.modesty.of.Women +
#> Cruelty.by.Husband.or.his.Relatives + Importation.of.Girls,
#> data = data_train, effect = "individual", model = "random",
#> index = c("State.India", "Year"))
#>
#> Unbalanced Panel: n = 11, T = 3-14, N = 143
#>
#> Effects:
#> var std.dev share
#> idiosyncratic 233361.7 483.1 0.35
#> individual 433166.5 658.2 0.65
#> theta:
#> Min. 1st Qu. Median Mean 3rd Qu. Max.
#> 0.6098 0.8075 0.8075 0.8034 0.8075 0.8075
#>
#> Residuals:
#> Min. 1st Qu. Median Mean 3rd Qu. Max.
#> -1736.28 -273.00 5.12 5.08 251.22 1626.74
#>
#> Coefficients:
#> Estimate Std. Error
#> (Intercept) 784.0929334 236.6121649
#> Kidnapping.and.Abduction 0.0069074 0.0316698
#> Dowry.Deaths 0.0454791 0.0936395
#> Assault.on.women.with.intent.to.outrage.her.modesty 0.3346937 0.0157218
#> Insult.to.modesty.of.Women -0.1355541 0.0379291
#> Cruelty.by.Husband.or.his.Relatives 0.0382229 0.0096452
#> Importation.of.Girls 4.2652281 1.8350691
#> z-value
#> (Intercept) 3.3138
#> Kidnapping.and.Abduction 0.2181
#> Dowry.Deaths 0.4857
#> Assault.on.women.with.intent.to.outrage.her.modesty 21.2886
#> Insult.to.modesty.of.Women -3.5739
#> Cruelty.by.Husband.or.his.Relatives 3.9629
#> Importation.of.Girls 2.3243
#> Pr(>|z|)
#> (Intercept) 0.0009203 ***
#> Kidnapping.and.Abduction 0.8273463
#> Dowry.Deaths 0.6271920
#> Assault.on.women.with.intent.to.outrage.her.modesty < 0.00000000000000022 ***
#> Insult.to.modesty.of.Women 0.0003517 ***
#> Cruelty.by.Husband.or.his.Relatives 0.00007404 ***
#> Importation.of.Girls 0.0201101 *
#> ---
#> Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#>
#> Total Sum of Squares: 191890000
#> Residual Sum of Squares: 32002000
#> R-Squared: 0.83325
#> Adj. R-Squared: 0.82589
#> Chisq: 668.73 on 6 DF, p-value: < 0.000000000000000222
📉 Berdasarkan output diatas dapat kita peroleh informasi sebagai berikut:
- Bahwa dari keenam variabel yang diujikan untuk tingkat kasus pelecehan terhadap perempuan di India yang signifikan berpengaruh, yakni variabel kasus penyerangan, kasus penghinaan terhadap kesopanan perempuan, dan kasus kekerasan yang dilakukan oleh suami atau kerabat dekat, dan kasus memperjualbelikan anak perempuan dimana ditunjukkan dengan nilai p-value kurang dari 0.05.
- Diperoleh nilai adj. R-squared sebesar 0.82589, artinya model dapat menjelaskan persentase tingkat kasus kejahatan seksual terhadap perempuan di India dengan baik sebesar 82.59%.
Rape = 0.0069074 Kidnapping.and.Abduction + 0.0454791 Dowry.Deaths + 0.3346937 Assault.on.women.with.intent.to.outrage.her.modesty - 0.1355541 Insult.to.modesty.of.Women + 0.0382229 Cruelty.by.Husband.or.his.Relatives + 4.2652281 Importation.of.Girls + efek wilayah negara + efek waktu
- Kidnapping.and.Abduction = 0.0069074, artinya untuk setiap kenaikan 1 satuan nilai Kidnapping.and.Abduction akan menambah nilai Rape sebesar 0.0069074 dengan mengganggap variabel lain konstan. Variabelnya bernilai positif, artinya ada sebagian kasus kejadian penculikan, dari pelakunya juga melakukan tindak pelecehan terhadap korban.
- Dowry.Deaths = 0.0454791, artinya untuk setiap kenaikan 1 satuan nilai Dowry.Deaths akan menambah nilai Rape sebesar 0.0454791 dengan mengganggap variabel lain konstan. Variabelnya bernilai positif, artinya memang dari korban perempuan kematian mahar, dari calon atau suaminya juga ada melakukan tindak kekerasan atau pelecehan.
- Assault.on.women.with.intent.to.outrage.her.modesty = 0.3346937, artinya untuk setiap kenaikan 1 satuan nilai Assault.on.women.with.intent.to.outrage.her.modesty akan menambah nilai Rape sebesar 0.3346937 dengan mengganggap variabel lain konstan. Variabelnya bernilai positif, artinya dari kasus penyerangan tersebut ada tindak pelecehan yang dilakukan oleh pelaku.
- Insult.to.modesty.of.Women = -0.1355541, artinya untuk setiap kenaikan 1 satuan nilai Insult.to.modesty.of.Women akan menurunkan nilai Rape sebesar 0.1355541 dengan mengganggap variabel lain konstan. Variabelnya bernilai negatif, hal ini memberikan kasus penyerangan terhadap kesopanan perempuan hanya berdampak pada mental atau psikis korban.
- Cruelty.by.Husband.or.his.Relatives = 0.0382229, artinya untuk setiap kenaikan 1 satuan nilai Cruelty.by.Husband.or.his.Relatives akan menambah nilai Rape sebesar 0.0382229 dengan mengganggap variabel lain konstan. Variabelnya bernilai positif, artinya memang dari meningkatkanya kasus pelecehan dikarenakan sebagian besar pelakunya dari orang terdekat korban, baik suami, keluarga, ataupun teman.
- Importation.of.Girls = 4.2652281, artinya untuk setiap kenaikan 1 satuan nilai Importation.of.Girls akan menambah nilai Rape sebesar 4.2652281 dengan mengganggap variabel lain konstan. Variabelnya bernilai positif, dimana dari kasus pelecehan yang terjadi di India dengan cara memperjualbelikan korban dan rata-rata korbannya anak perempuan usia di bawah umur.
Evaluasi Model
Uji Normalitas
Uji statistik menggunakan shapiro.test()
#>
#> Shapiro-Wilk normality test
#>
#> data: pred_random$residuals
#> W = 0.98117, p-value = 0.04638
Berdasarkan nilai p-value 0.04638 < α (0.05), maka tolak H0 dan model tidak berdistribusi normal.
Uji Autokorelasi
Hipotesis yang diuji adalah sebagai berikut :
- H0 : tidak terjadi autokorelasi
- H1 : terjadi autokorelasi
H0 ditolak jika P-value < α. Nilai α yang digunakan sebesar 5%.
#>
#> Box-Ljung test
#>
#> data: .
#> X-squared = 22.599, df = 1, p-value = 0.000001996
Berdasarkan nilai p-value 0.000001996 < 0.05, maka tolak H0 artinya terjadi permasalahan autokorelasi antar sisaan.
Uji Homoskedastisitas
Uji statistika dengan Breusch-Pagan dari package lmtest
fungsi bptest()
#>
#> studentized Breusch-Pagan test
#>
#> data: .
#> BP = 31.504, df = 6, p-value = 0.00002031
Berdasarkan nilai p-value = 0.00002031 < α (0.05), maka tolak H0. Dengan tingkat kepercayaan 95%, kita yakin bahwa model heteroskedastisitas.
Kesimpulan dan Saran
Dari serangkaian proses analisis yang telah dilakukan, dapat kita peroleh kesimpulan sebagai berikut:
- Diperoleh model terbaik untuk memprediksi tingkat kejahatan seksual di India adalah Random Effect Model (REM) dengan pengaruh individual.
- Dari keenam variabel prediktor yang digunakan hanya variabel kasus penculikan dan kasus kematian mahar yang tidak signifikan berpengaruh terhadap persentase tingkat kejahatan seksual di India.
- Diperoleh nilai adj. R-squared sebesar 0.82589, artinya model dapat menjelaskan persentase tingkat kejahatan seksual dengan baik sebesar 82.59%
- Diperoleh nilai MAPE sebesar 0.3466585 artinya model kita dalam memprediksi data baru mengalami kesalahan prediksi sebesar 34.66%. Sehingga dapat dikatakan model yang kita miliki sudah cukup baik dalam memprediksi nilai baru di masa yang akan datang.
- Melihat dari hasil pengamatan pada tahapan EDA dan uji signifikansi prediktor. Diperoleh dari variabel kasus penculikan, kasus kematian mahar, kasus penyerangan, kasus kejahatan dari suami atau kerabat dan kasus memperjualbelikan anak perempuan bernilai positif terhadap peningkatan kasus pelecehan di India.
Dari beberapa kesimpulan diatas, terdapat beberapa saran sebagai berikut:
- Pada penelitan kali ini masih didapati kendala dimana terbatasnya data yang digunakan, yakni periode waktu yang digunakan sudah cukup lampau. Hal ini dikhawatirkan akan membuat model kurang baik dalam mempelajari data. Sehingga diharapkan pada penelitan selanjutnya bisa mencoba dilakukan dengan rentang waktu dari data yang lebih update.
- Diharapkan pemerintah India bisa lebih meningkatkan keamanan dan perlindungan hak-hak perempuan di India, terutama untuk anak perempuan usia di bawah umur. Dengan didukung oleh organisasi Internasional dan aktivis-aktivis pejuang hak-hak perempuan di India dengan berlandaskan perspektif feminisme. Dimana dengan mempertahankan kepercayaan bahwa perempuan harus dilindungi serta memiliki kesetaraan dengan laki-laki (kesetaraan gender).
Referensi
- https://www.kaggle.com/code/marcogherbezza/crimes-against-women/input
- https://rpubs.com/Yusraf002/plm_tptpulaujawa
- https://rpubs.com/Yusraf002/plm_whr
- https://rpubs.com/annebel/analisisdatapanel
- https://en.wikipedia.org/wiki/Violence_against_women_in_India#cite_note-25
- https://suluhperempuan.org/2015/01/24/dowry-dan-kekerasan-terhadap-perempuan-di-india.html