TUGAS ANALISIS EKSPLORASI DATA PENDUGA ROBUST
PENGANTAR
Dalam sebuah gugus data, sangat mungkin terdapat amatan-amatan dengan nilai yang berbeda dari sebagian besar amatan yang lain. Perbedaan tersebut bisa sangat besar sehingga amatan tersebut dikenal sebagai pencilan (outlier) dari data. Amatan pencilan dapat mengganggu proses analisis data. Keberadaan data pencilan dapat berakibat pada diperolehnya nilai-nilai dugaan parameter yang jauh dari yang seharusnya. Oleh karena itu, pengidentifikasian pencilan sangat penting untuk dilakukan.
Keberadaan pencilan dalam suatu gugus data akan berpengaruh terhadap penduga ukuran pemusatan yaitu rata-rata. Karenanya kita menyebutkan bahwa rata-rata tidak bersifat kekar (robust) karena nilainya mudah terganggu oleh keberadaan pencilan terutama jika ukuran gugus datanya tidak besar. Untuk itu, diperkenalkan beberapa penduga rata-rata populasi yang bersifat kekar dan tidak banyak terpengaruh oleh keberadaan pencilan, yaitu Trimmed Mean, Winsorized Mean, dan M-Estimators.
Nilai simpangan baku juga mudah sekali terpengaruh oleh keberadaan pencilan. Jika ada sebuah amatan ekstrim baik yang bernilai jauh lebih besar maupun jauh lebih kecil dibandingkan amatan lainnya, maka simpangan baku akan membengkak menjadi lebih besar dari yang semestinya jika amatan pencilan tersebut tidak ada. Karena itu, menggunakan simpangan baku pada saat data memuat pencilan akan menyebabkan kita salah menafsirkan kondisi data.Penduga kekar bagi simpangan baku diperlukan untuk memberikan informasi mengenai simpangan baku yang sesungguhnya tanpa banyak terganggu oleh keberadaan amatan pencilan pada gugus data, contohnya adalah Inter Quartile Range, Median Absolute Deviation, dan Gini’s mean difference.
Input Data
Data dalam bentuk excel dimasukkan terlebih dahulu ke R.
library(readxl)
data_robust1 <- read_excel("C:/Users/USER/Downloads/Data praktikum 12.xlsx")
data_robust2 <- read_excel("C:/Users/USER/Downloads/Data praktikum 12.xlsx", sheet=2)
y1 <- data_robust1$y1
y2 <- data_robust1$y2
x1 <- data_robust2$x1
x2 <- data_robust2$x2Uji Normalitas
Sebelum dianalisis dan dieksplorasi, data y1, y2, x1, dan x2 terlebih dahulu diuji apakah sebarannya mendekati distribusi normal atau tidak, karena beberapa perhitungan pencilan dan penduga robust memiliki syarat normalitas untuk setiap gugus datanya.
ks.test(y1, "pnorm", mean = mean(y1), sd = sd(y1))##
## One-sample Kolmogorov-Smirnov test
##
## data: y1
## D = 0.085937, p-value = 0.4512
## alternative hypothesis: two-sided
ks.test(y2, "pnorm", mean = mean(y2), sd = sd(y2))##
## One-sample Kolmogorov-Smirnov test
##
## data: y2
## D = 0.16786, p-value = 0.007139
## alternative hypothesis: two-sided
shapiro.test(x1)##
## Shapiro-Wilk normality test
##
## data: x1
## W = 0.83965, p-value = 0.0437
shapiro.test(x2)##
## Shapiro-Wilk normality test
##
## data: x2
## W = 0.93129, p-value = 0.4607
Berdasarkan output di atas, hanya sebaran data y1 dan x2 yang mendekati distribusi normal.
1. Mendeteksi Pencilan Pada Data
Pencilan adalah amatan yang memiliki nilai berbeda (jauh lebih besar atau jauh lebih kecil) dari sebagian besar amatan yang lain. Karenanya intuisi paling sederhana yang bisa dikemukakan untuk mengidentifikasi pencilan peubah tunggal adalah jika amatan tersebut jauh dari nilai ukuran pemusatan (misalnya rata-rata). Amatan yang bernilai lebih kecil daripada Batas Bawah atau amatan yang bernilai lebih besar daripada Batas Atas pada boxplot diidentifikasi sebagai pencilan.
nilai.pencilan1 <- boxplot.stats(y1)$out
nilai.pencilan2 <- boxplot.stats(y2)$out
nilai.pencilan3 <- boxplot.stats(x1)$out
nilai.pencilan4 <- boxplot.stats(x2)$out
nilai.pencilan1## numeric(0)
nilai.pencilan2## [1] 37.56401 43.29616 48.86305
nilai.pencilan3## [1] 24.75342
nilai.pencilan4## numeric(0)
Berdasarkan output tersebut, data yang memiliki pencilan hanya data ‘y2’ dan ‘x1’. Data ‘y2’ memiliki 3 pencilan yaitu amatan ke-98 (37.56401), amatan ke-99 (43.29616), dan amatan ke-100 (48.86305). Data ‘x1’ memiliki 1 pencilan yaitu amatan ke-10 (24.75342).
2. Penerapan Penduga Robust bagi Mean
a. Trimmed Mean
Rataan terpangkas (trimmed mean) merupakan rata-rata dari data yang ada di bagian tengah data, tepatnya data di 1 – 2𝛼 bagian tengah data dengan 0 < 𝛼 < 1. Trimmed mean adalah estimator yang resistan, karena tidak dipengaruhi oleh outlier. Data yang digunakan pada praktikum ini keempatnya tidak berdistribusi normal, oleh karena itu Trimmen Mean yang bekerja dengan baik untuk berbagai macam bentuk distribusi (normal, lognormal, dll) sangat cocok digunakan untuk menghitung nilai mean.
Trimmed Mean cocok digunakan untuk data yang memiliki banyak amatan, karena ketika membuang atau memangkas beberapa amatan terbesar atau terkecil, masih banyak amatan lainnya yang dapat digunakan untuk mewakili ukuran pemusatan data. Penduga robust ini cocok digunakan untuk data ‘y1’ dan ‘y2. Rataan terpangkas 10% akan digunakan untuk menghitung Mean pada data ’y1’ dan ‘y2’ dengan menghilangkan 5 amatan terbesar dan 5 amatan terkecil, sehingga masing-masing data akan memiliki 90 amatan.
Data y1
mean_real1 <- mean(y1) ; mean_trim1 <- mean(y1, trim=0.05)
mean_real1 ; mean_trim1## [1] 0.4906979
## [1] 0.5074825
Data y2
mean_real2 <- mean(y2) ; mean_trim2 <- mean(y2, trim=0.05)
mean_real2 ; mean_trim2 ## [1] 10.82127
## [1] 9.939848
Berdasarkan output di atas, terlihat bahwa nilai rata-rata asli dari seluruh data berbeda dengan rata-rata terpangkas. Nilai rata-rata asli cenderung tidak menggambarkan pemusatan data secara baik karena memiliki nilai yang lebih besar dari sebagian besar amatan. Hal ini tentu saja dikarenakan ada amatan yang ekstrim lebih besar dibandingkan nilai dari amatan-amatan lainnya. Oleh karena itu, Trimmed Mean atau rataan terpangkas lebih baik digunakan untuk mengukur pemusatan data ‘y1’ dan ‘y2’.
b. Winsorized Mean
Nilai winsorized mean diperoleh dengan menghitung rata-rata setelah kita lakukan penggantian nilai terhadap amatan-amatan terbesar dan terkecil. Sebanyak nα amatan terkecil diganti nilainya dengan nilai amatan y([nα] + 1) dan sebanyak nα amatan terbesar diganti nilainya dengan nilai amatan y(n - [nα]).
Penduga robust ini cocok digunakan untuk data ‘x1’ dan ‘x2’ yang memiliki sedikit amatan, karena winsorization hanya meminimalkan pengaruh outlier dalam data dengan menetapkan bobot yang lebih rendah pada outlier dan mengubah nilai sehingga mendekati nilai lain dalam himpunan. Nilai α yang digunakan untuk menghitung nilai Winsorized Mean data ‘x1’ dan ‘x2’ sebesar 10%, sehingga nilai amatan terkecil akan diganti dengan nilai amatan terkecil kedua, sementara amatan terbesar akan diganti dengan nilai amatan terbesar kedua.
Data x1
library(psych)
mean_real3 <- mean(x1) ; mean_win1 <- winsor.mean(x1, trim=0.1)
mean_real3 ; mean_win1## [1] 21.02891
## [1] 20.82403
Data x2
library(psych)
mean_real4 <- mean(x2) ; mean_win2 <- winsor.mean(x2, trim=0.1)
mean_real4 ; mean_win2## [1] 2.020437
## [1] 2.071475
Berdasarkan output di atas, terlihat bahwa nilai rata-rata asli dari seluruh data berbeda dengan Winsorized Mean. Nilai rata-rata asli cenderung tidak menggambarkan pemusatan data secara baik karena memiliki nilai yang lebih besar atau lebih kecil dari sebagian besar amatan. Hal ini tentu saja dikarenakan ada amatan yang ekstrim lebih besar atau lebih kecil dibandingkan nilai dari amatan-amatan lainnya. Oleh karena itu, Winsorized Mean lebih baik digunakan untuk mengukur pemusatan data ‘x1’ dan ‘x2’.
3. Penerapan Penduga Robust bagi Ragam
a. MAD (Median Absolute Deviation)
MAD merupakan penduga kekar paling populer untuk ukuran penyebaran. Nilai MAD didefinisikan sebagai MAD = mediani { yj – medianj{yj}} di mana medianj{yj} merupakan median dari n amatan pada gugus data sedangkan mediani menghitung median dari nilai mutlak selisih antara setiap data dengan mediannya.
Penduga Robust ini memiliki syarat normalitas untuk datanya, sehingga hanya data x2 yang menyebar normal yang dapat dihitung penduga robust bagi ragamnya. Pada data yang menyebar normal, simpangan baku dapat diduga sebagai 1.4826 x 𝑀𝐴𝐷.
Data y1
nilai.mad1 <- mad(y1, constant=1)
simp.baku1 <- sd(y1)
simp.baku.kekar1 <- mad(y1)
c(nilai.mad1, simp.baku1, simp.baku.kekar1) ## [1] 0.2720740 0.3482005 0.4033769
Berdasarkan output di atas, didapatkan simpangan baku kekar data x2 sebesar 0.4033769 yang merupakan perkalian antara 1.4826 x 0.2720740. Terlihat bahwa nilai simpangan baku data adalah 0.3482005 yang lebih kecil karena adanya amatan yang lebih kecil dari amatan lainnya. Oleh karena itu, penduga robust MAD merupakan penduga yang tepat untuk mencari ukuran penyebaran data y1.
Data x2
nilai.mad2 <- mad(x2, constant=1)
simp.baku2 <- sd(x2)
simp.baku.kekar2 <- mad(x2)
c(nilai.mad2, simp.baku2, simp.baku.kekar2) ## [1] 0.734091 2.802018 1.088363
Berdasarkan output di atas, didapatkan simpangan baku kekar data x2 sebesar 1.088363 yang merupakan perkalian antara 1.4826 x 0.734091. Terlihat bahwa nilai simpangan baku data adalah 2.802018 yang cukup besar karena adanya amatan pencilan pada data. Oleh karena itu, penduga robust MAD merupakan penduga yang tepat untuk mencari ukuran penyebaran data x2.