Pertanyaan
Periksa distribusi dari variabel math, reading dan writing score, cek apakah ada outlier
Apa yang dimaksud dengan oulier? jelaskan cara memeriksa dan menanggulanginya?
Jam belajar manakah per minggu yang paling banyak dilakukan oleh student
Periksa perbedaan nilai student (math, writing, reading) per ethnic
cek korelasi antar variabel math, reading, and writing score menggunakan corelation heatmap
Periksa perbedaan antara nilai student per PracticeSport. Apakah rata-rata math score pada siswa menunjukkan nilai yang tinggi pada student yang sering berolahraga
Jawaban
1. Distribusi dari variabel math, reading dan writing score, dapat divisualisasi menggunakan boxplot.
# data
data <- read.csv("Expanded_data_with_more_features.csv", stringsAsFactors = TRUE)
# boxplot untuk memeriksa distribusi dan outlier
boxplot(data$MathScore, data$ReadingScore, data$WritingScore,
names = c("Math Score", "Reading Score", "Writing Score"),
main = "Boxplot of Scores",
col = c("lightgreen", "lightpink", "lightblue"),
ylab = "Scores")
# outlier menggunakan IQR
outliers <- function(score) {
Q1 <- quantile(score, 0.25, na.rm = TRUE)
Q3 <- quantile(score, 0.75, na.rm = TRUE)
IQR <- Q3 - Q1
lower_bound <- Q1 - 1.5 * IQR
upper_bound <- Q3 + 1.5 * IQR
return(score[score < lower_bound | score > upper_bound])
}
list(
Math_Outliers = outliers(data$MathScore),
Reading_Outliers = outliers(data$ReadingScore),
Writing_Outliers = outliers(data$WritingScore)
)
## $Math_Outliers
## [1] 18 0 21 18 8 21 22 17 20 16 21 21 22 19 22 22 22 17 20 15 15 18 18 11 19
## [26] 12 12 13 18 22 17 19 21 21 9 18 21 22 10 7 22 21 17 22 10 22 14 14 19 19
## [51] 11 9 10 13 18 20 21 16 13 22 13 22 10 16 21 21 16 18 20 19 9 19 11 9 21
## [76] 19
##
## $Reading_Outliers
## [1] 17 25 23 24 24 26 23 21 18 25 15 23 24 11 17 24 23 26 24 17 20 24 24 25 19
## [26] 25 16 20 22 26 22 27 27 23 22 23 19 23 24 11 27 24 26 22 27 23 17 23 12 12
## [51] 18 23 16 27 23 23 21 20 20 26 26 21 23 26 27 24 27 16 23 24 23 12 26 15 21
## [76] 27 17 25 18 19 10 25 23 25 25 26 18 14 25 19
##
## $Writing_Outliers
## [1] 10 21 19 26 15 23 17 25 26 24 15 20 21 25 24 23 6 17 24 22 22 21 25 14 26
## [26] 25 18 16 19 23 26 19 24 14 17 26 24 24 21 24 23 15 26 24 18 19 20 21 24 15
## [51] 24 12 22 25 18 16 24 26 17 19 24 18 9 19 20 25 18 21 23 19 16 18 25 23 20
## [76] 20 20 22 26 26 26 24 26 25 18 20 23 24 23 17 15 21 12 25 16 25 20 18 13 26
## [101] 20 23 21 26 26 22 4 20 24
Interpretasi
Setiap boxplot menunjukkan median (garis tebal di dalam kotak), kuartil pertama (Q1), kuartil ketiga (Q3), serta rentang interkuartil (IQR). Selain itu, terdapat “whiskers” yang menunjukkan batas data non-outlier, serta titik-titik di luar whiskers yang merepresentasikan outlier.
Dari visualisasi ini, terlihat bahwa ketiga kategori skor memiliki distribusi yang serupa, dengan median yang berada di sekitar nilai 65-75. Namun, terdapat sejumlah outlier pada bagian bawah untuk semua kategori skor, terutama pada Math Score, yang menunjukkan bahwa ada beberapa siswa yang mendapatkan nilai jauh lebih rendah dibandingkan siswa lainnya. Outlier ini dapat disebabkan oleh berbagai faktor, seperti kesalahan dalam pencatatan data atau variasi kinerja siswa. Secara keseluruhan, distribusi skor tampak cukup simetris tanpa indikasi skewness yang ekstrem.
2. Outlier adalah nilai yang jauh berbeda dari nilai lainnya dalam kumpulan data. Nilai ini muncul sebagai pengecualian dalam pola data yang ada. Nilai yang ada di outlier bisa jauh lebih tinggi maupun lebih rendah dibandingkan dengan nilai-nilai lain dalam dataset.
Salah satu metode yang umum digunakan untuk mengidentifikasi outlier adalah menggunakan teknik visualisasi, seperti box plot atau scatter plot. Box plot, misalnya, dapat dengan jelas menunjukkan nilai-nilai yang berada di luar rentang interquartile (IQR). Dengan visualisasi ini, analis dapat dengan mudah melihat titik data yang mencolok dan memutuskan apakah mereka perlu ditangani lebih lanjut. Ini merupakan langkah awal yang penting sebelum memutuskan bagaimana cara menangani outlier.
Setelah outlier teridentifikasi, langkah selanjutnya adalah menentukan apakah outlier tersebut valid atau perlu dihapus. Jika outlier muncul akibat kesalahan pengukuran atau data yang tidak valid, maka penghapusan entri tersebut adalah solusi yang tepat. Namun, jika outlier mencerminkan variasi yang sebenarnya dalam data, mereka sebaiknya tidak dihapus karena bisa memberikan wawasan yang berharga.
3. Kategori jam belajar yang paling sering muncul adalah yang memiliki bar tertinggi.
# Frekuensi jam belajar
study_hours_freq <- table(data$WklyStudyHours)
# Mengurutkan data dari terbesar ke terkecil
study_hours_sorted <- sort(study_hours_freq, decreasing = TRUE)
# Menampilkan distribusi dalam bentuk barplot
barplot(study_hours_sorted, col = "skyblue",
main = "Distribusi Jam Belajar Per Minggu",
xlab = "Jam Belajar per Minggu",
ylab = "Jumlah Siswa")
Interpretasi
Dari grafik tersebut, terlihat bahwa sebagian besar siswa lebih dari 15.000 menghabiskan waktu belajar antara 5 hingga 10 jam per minggu, menjadikannya kelompok terbesar. Kelompok kedua terbesar adalah siswa yang belajar kurang dari 5 jam per minggu, meskipun jumlahnya jauh lebih sedikit dibandingkan kelompok pertama. Siswa yang belajar lebih dari 10 jam per minggu berada dalam jumlah yang lebih kecil dibandingkan dua kelompok sebelumnya, menunjukkan bahwa hanya sedikit siswa yang mengalokasikan waktu belajar yang lebih lama. Secara keseluruhan, data ini mengindikasikan bahwa mayoritas siswa memilih waktu belajar dalam rentang sedang (5-10 jam), sementara hanya sedikit yang belajar dalam durasi yang sangat tinggi atau sangat rendah.
4. Gambar di atas menunjukkan rata-rata nilai dari tiga mata pelajaran (Math Score, Reading Score, dan Writing Score) berdasarkan kelompok etnis (Ethnic Group A hingga E).
# Menghitung rata-rata nilai untuk setiap ethnic group
mean_scores <- aggregate(cbind(MathScore, ReadingScore, WritingScore) ~ EthnicGroup, data = data, mean)
# Mengatur grafik menjadi side-by-side
barplot(t(as.matrix(mean_scores[, -1])), beside = TRUE,
names.arg = mean_scores$EthnicGroup, col = c("blue", "red", "green"),
main = "Rata-rata Nilai per Ethnic Group",
ylab = "Rata-rata Nilai", xlab = "Ethnic Group",
legend = c("Math Score", "Reading Score", "Writing Score"),
args.legend = list(x = "bottomright"))
Interpretasi
Grafik ini menunjukkan rata-rata nilai matematika, membaca, dan menulis berdasarkan kelompok etnis. Secara umum, terlihat bahwa nilai membaca dan menulis cenderung lebih tinggi dibandingkan dengan nilai matematika di semua kelompok. Kelompok E memiliki rata-rata nilai tertinggi di ketiga mata pelajaran, sedangkan kelompok A memiliki rata-rata nilai terendah dibandingkan kelompok lainnya. Meskipun terdapat variasi antar kelompok, pola distribusi nilai tetap konsisten, di mana perbedaan antara nilai membaca dan menulis dengan nilai matematika cukup terlihat. Hal ini menunjukkan bahwa dalam data yang dianalisis, kemampuan membaca dan menulis lebih dominan dibandingkan dengan matematika, serta terdapat variasi rata-rata skor berdasarkan kelompok etnis.
5. heatmap matriks korelasi yang menunjukkan hubungan antara tiga variabel: Math Score, Reading Score, dan Writing Score.
library(corrplot)
## Warning: package 'corrplot' was built under R version 4.3.3
## corrplot 0.95 loaded
# Hitung korelasi
score_cor <- cor(data[, c("MathScore", "ReadingScore", "WritingScore")])
# Plot heatmap
corrplot(score_cor, method="color", type="upper", col= colorRampPalette(c("lightblue", "blue", "darkblue"))(50))
Interpretasi
Dapat dilihat bahwa semua korelasi memiliki warna biru pekat, yang menunjukkan nilai korelasi yang tinggi dan positif, mendekati 1. Berarti Math Score, Reading Score, dan Writing Score memiliki hubungan yang kuat satu sama lain, ketika satu skor tinggi, skor lainnya cenderung tinggi juga. Semakin gelap warna biru, semakin tinggi korelasi antara dua variabel tersebut. Karena tidak ada warna yang lebih terang atau bernuansa negatif, ini menunjukkan bahwa tidak ada hubungan negatif antara variabel-variabel ini. Dengan kata lain, siswa yang memiliki nilai tinggi dalam satu mata pelajaran kemungkinan besar akan memiliki nilai tinggi juga dalam mata pelajaran lainnya. Secara keseluruhan, heatmap ini mengindikasikan bahwa kemampuan siswa dalam matematika, membaca, dan menulis saling berkaitan erat. Hal ini dapat digunakan untuk menyimpulkan bahwa jika seorang siswa memiliki performa yang baik dalam satu bidang, kemungkinan besar ia juga akan baik dalam bidang lainnya.
-Jika korelasi mendekati 1, berarti ada hubungan kuat antara dua variabel.
-Jika korelasi mendekati 0, berarti tidak ada hubungan yang signifikan.
6. boxplot yang menunjukkan distribusi Math Score berdasarkan kebiasaan seseorang dalam berolahraga (never, regularly, dan sometimes).
tapply(data$MathScore, data$PracticeSport, mean)
## never regularly sometimes
## 66.63708 64.17108 67.83916 66.27483
boxplot(MathScore ~ PracticeSport, data = data, main = "Math Score Berdasarkan Kebiasaan Berolahraga",
col = c("lightcoral", "skyblue"))
Interpretasi
Setiap kategori menunjukkan distribusi nilai dengan median, kuartil pertama (Q1), kuartil ketiga (Q3), serta keberadaan outlier. Dari visualisasi ini, terlihat bahwa distribusi nilai matematika relatif serupa di antara ketiga kelompok. Median skor untuk semua kategori berada di sekitar 65-70, yang menunjukkan bahwa tidak ada perbedaan signifikan dalam pencapaian matematika berdasarkan kebiasaan berolahraga.
Namun, terdapat perbedaan dalam jumlah outlier, terutama pada kelompok yang berolahraga secara teratur (regularly) dan kadang-kadang (sometimes), di mana lebih banyak nilai yang berada di bawah batas bawah. Hal ini menunjukkan bahwa ada sejumlah siswa dengan kebiasaan berolahraga yang memiliki skor matematika jauh lebih rendah dibandingkan mayoritas. Sementara itu, kelompok yang tidak pernah berolahraga (never) juga memiliki beberapa outlier, tetapi jumlahnya lebih sedikit dibandingkan kelompok lainnya. Secara keseluruhan, meskipun ada variasi skor dalam setiap kategori, kebiasaan berolahraga tampaknya tidak memiliki pengaruh yang mencolok terhadap pencapaian matematika berdasarkan distribusi data yang ditampilkan.