output: html_document: toc: true toc_float: collapsed: false
smooth_scroll: true toc_depth: 3 number_sections: true theme:
cosmo
highlight: tango code_folding: show —
Industri musik digital berkembang sangat pesat, di mana platform streaming seperti Spotify menjadi salah satu kiblat utama dalam menikmati karya musik di seluruh dunia. Bagi para produser musik dan musisi, memahami faktor-faktor apa saja yang membuat sebuah lagu menjadi populer merupakan hal yang sangat krusial. Karakteristik audio dari sebuah lagu—seperti tingkat ketukan (tempo), energi, durasi, hingga seberapa mudah lagu tersebut dipakai untuk menari (danceability)—diduga memiliki kontribusi besar terhadap tingkat popularitasnya di masyarakat.
Oleh karena itu, dalam praktikum ini dilakukan studi kasus untuk memodelkan faktor-faktor yang memengaruhi popularitas lagu di platform Spotify menggunakan metode Analisis Regresi Linier Berganda. Dataset yang digunakan diperoleh dari sumber terbuka (open source) yang memuat berbagai metrik karakteristik audio dari lagu-lagu yang tersedia di Spotify.
Dataset yang dianalisis dalam penelitian ini telah memenuhi seluruh ketentuan praktikum yang ditetapkan, yaitu memiliki jumlah observasi di atas batas minimal 30 data (menggunakan keseluruhan baris data Spotify) serta melibatkan lebih dari 2 variabel prediktor.
Penetapan variabel-variabel di dalam model regresi ini adalah sebagai berikut:
popularity: Tingkat popularitas lagu (skala 0 -
100).duration_ms):
Durasi lagu dalam satuan milidetik.danceability): Tingkat kemudahan lagu untuk digunakan
menari.energy):
Ukuran persepsi intensitas dan aktivitas lagu.loudness):
Keseluruhan kenyaringan lagu dalam satuan desibel (dB).speechiness):
Kehadiran kata-kata yang diucapkan dalam lagu.acousticness): Ukuran probabilitas apakah lagu tersebut
bersifat akustik.instrumentalness): Memprediksi apakah sebuah lagu tidak
mengandung vokal.liveness):
Mendeteksi kehadiran penonton dalam rekaman (efek live).valence):
Ukuran kepositifan musik yang dihantarkan oleh trek (suasana
ceria).tempo):
Keseluruhan perkiraan tempo lagu dalam ketukan per menit (BPM).Berdasarkan rumusan studi kasus yang diberikan, tujuan diadakannya praktikum analisis ini adalah: 1. Mampu melakukan eksplorasi data melalui ekstraksi statistika deskriptif serta visualisasi scatter plot untuk melihat hubungan awal antar variabel. 2. Mampu membangun model regresi linier berganda berbasis metode Ordinary Least Squares (OLS) menggunakan software RStudio. 3. Mampu melakukan uji signifikansi model secara simultan (Uji F) dan secara parsial (Uji t) terhadap parameter regresi. 4. Mampu mengevaluasi pemenuhan uji asumsi klasik (linieritas, normalitas sisaan, heteroskedastisitas, autokorelasi, dan multikolinieritas) guna menjamin keabsahan model prediktif yang diperoleh.
Statistik deskriptif merupakan bidang statistik yang ruang lingkup kegiatannya meliputi tata cara mengumpulkan, menyusun, mengolah, menyajikan, hingga menganalisis data angka. Tujuannya adalah memaparkan gambaran yang sistematis, ringkas, serta jelas mengenai suatu fenomena (Usman, 2012). Deskripsi data dapat disajikan melalui bentuk tabel, diagram, histogram, ukuran pemempatan (median, kuartil), ukuran gejala pusat (rata-rata hitung, modus), hingga ukuran simpangan data.
Diagram scatter digunakan untuk memeriksa arah dan pola hubungan antara variabel prediktor dengan variabel respon. Pola hubungan yang dapat digambarkan meliputi: 1. Hubungan Linier atau Non-Linier: Dikatakan linier jika titik-titik data membentuk pola garis lurus. 2. Hubungan Positif atau Negatif: Bersifat positif (searah) jika titik data membentang dari kiri bawah ke kanan atas. Bersifat negatif (terbalik) jika titik data membentang dari kiri atas ke kanan bawah. 3. Konsentrasi Data: Menunjukkan tingkat penyebaran titik data, apakah mengelompok terpusat atau tersebar luas (Anonym, 2021).
Regresi linier berganda merupakan model persamaan yang menjelaskan hubungan antara satu variabel tak bebas (response / \(Y\)) dengan dua atau lebih variabel bebas (predictor / \(X_1, X_2, \dots, X_n\)).
Secara teoretis pada tingkat populasi, persamaan regresi linier berganda menyertakan komponen sisaan (error) \(\epsilon\): \[Y = \beta_0 + \beta_1X_1 + \beta_2X_2 + \dots + \beta_nX_n + \epsilon\]
Sedangkan untuk keperluan estimasi nilai pada sampel melalui data pengamatan, persamaannya dirumuskan sebagai berikut: \[\hat{Y} = a + b_1X_1 + b_2X_2 + \dots + b_nX_n\]
Keterangan: * \(Y\) = Variabel tak bebas (nilai yang diprediksi) * \(a\) = Konstanta (Intercept) * \(b_1, b_2, \dots, b_n\) = Nilai koefisien regresi parsial * \(X_1, X_2, \dots, X_n\) = Variabel bebas * \(\epsilon\) = Error / sisaan model
Arah hubungan ditentukan oleh nilai koefisien regresi (\(b\)): * \(b = 0\): Variabel \(Y\) tidak dipengaruhi oleh variabel \(X\). * \(b\) bernilai negatif (-): Terjadi hubungan dengan arah terbalik. * \(b\) bernilai positif (+): Terjadi hubungan yang searah.
Untuk mengestimasi nilai parameter konstanta (\(a\)) dan koefisien (\(b\)), digunakan Metode Kuadrat Terkecil (Ordinary Least Squares / OLS) melalui dua pendekatan matematis: * Metode Deviasi (Aljabar Simultan): Berbasis jumlah kuadrat deviasi terhadap rata-rata sampel. \[b_1 = \frac{(\sum x_2^2 \sum x_1y) - (\sum x_1x_2 \sum x_2y)}{(\sum x_1^2 \sum x_2^2) - (\sum x_1x_2)^2}\] * Metode Matriks (Aturan Cramer): Menggunakan perhitungan nilai determinan matriks koefisien \(M\) dan vektor hasil \(h\). \[a = \frac{\text{det}(M_1)}{\text{det}(M)}, \quad b_1 = \frac{\text{det}(M_2)}{\text{det}(M)}, \quad b_2 = \frac{\text{det}(M_3)}{\text{det}(M)}\]
Menurut Susanti et al. (2019), pengujian signifikansi parameter dilakukan melalui dua tahap:
Uji F digunakan untuk mengetahui apakah seluruh variabel prediktor secara bersama-sama berpengaruh terhadap variabel respon. * Hipotesis: * \(H_0: \beta_1 = \beta_2 = \dots = \beta_n = 0\) (Tidak terdapat hubungan linier signifikan). * \(H_1\): Minimal ada satu \(\beta_i \neq 0\) (Terdapat hubungan linier signifikan). * Kriteria Keputusan: Tolak \(H_0\) jika \(F_{\text{hitung}} > F_{\text{tabel}}\) atau nilai p-value < \(\alpha\) (0,05).
Uji t digunakan untuk menguji pengaruh masing-masing variabel prediktor secara individu/parsial. * Kriteria Keputusan: Tolak \(H_0\) jika \(t_{\text{hitung}} > t_{\text{tabel}}\) atau nilai p-value < \(\alpha\) (0,05), yang berarti variabel prediktor tersebut berpengaruh nyata secara parsial terhadap variabel respon.
Guna memastikan bahwa model regresi menghasilkan parameter yang bersifat Best Linear Unbiased Estimator (BLUE), diperlukan pemenuhan serangkaian asumsi klasik (Santoso, 2011):
Memastikan apakah spesifikasi hubungan antara variabel bebas dan terikat bersifat linier. Uji formal dilakukan menggunakan Ramsey RESET Test. Asumsi linieritas terpenuhi apabila nilai p-value \(\ge\) 0,05.
Menguji apakah komponen sisaan (residual) dalam model berdistribusi normal (Ghozali, 2009). Evaluasi dilakukan lewat Normal Probability Plot (titik data harus mengikuti arah garis diagonal) atau uji formal Kolmogorov-Smirnov (terpenuhi jika p-value > 0,05).
Menguji apakah terjadi ketidaksamaan ragam (variance) pada sisaan antar pengamatan (Ghozali, 2013). Deteksi dilakukan lewat scatter plot sisaan (harus memencar acak tanpa pola geometris tertentu) atau melalui uji formal Breusch-Pagan Test (bebas heteroskedastisitas jika p-value > 0,05).
Menguji apakah terdapat korelasi antara sisaan pada periode \(t\) dengan sisaan periode sebelumnya (\(t-1\)). Pengujian menggunakan Durbin-Watson (DW) Test dengan kriteria: model dinyatakan aman dan bebas autokorelasi jika nilai \(1,65 < \text{DW} < 2,35\).
Menguji apakah terdapat hubungan korelasi yang nyata atau sempurna sesama variabel bebas (Ghozali, 2009). Indikator yang digunakan adalah Variance Inflation Factor (VIF) dan Tolerance. Model dinyatakan bebas dari multikolinieritas jika nilai \(\text{Tolerance} > 0,1\) dan \(\text{VIF} < 10\).
Langkah awal dalam komputasi di RStudio adalah memanggil fungsi impor dokumen secara interaktif. Data Spotify dimuat, lalu diperiksa dimensi tabelnya untuk memastikan seluruh baris data terunggah sempurna.
# Mengaktifkan fungsi impor file interaktif .csv
data_spotify <- read.csv(file.choose())
# Menampilkan data 3 baris teratas
head(data_spotify, 3)
# Menampilkan total baris dan kolom dataset
dim(data_spotify)
# Mendefinisikan vektor variabel audio target
variabel <- c("popularity", "duration_ms", "danceability", "energy", "loudness",
"speechiness", "acousticness", "instrumentalness", "liveness",
"valence", "tempo")
# Mengeluarkan ringkasan nilai statistik deskriptif dasar
summary(data_spotify[, variabel])
# Mengunci sistem pengacakan sampel data
set.seed(123)
# Menarik 100 baris sampel acak secara sederhana
data_sampel <- data_spotify[sample(nrow(data_spotify), 100), ]
# Membagi output grafik menjadi layout matriks 2x2
par(mfrow = c(2, 2))
# Membuat visualisasi diagram sebar (scatter plot) variabel terhadap Popularity
plot(data_sampel$duration_ms, data_sampel$popularity, main="Duration (ms) vs Popularity", xlab="Duration (ms)", ylab="Popularity", col="purple", pch=16)
plot(data_sampel$danceability, data_sampel$popularity, main="Danceability vs Popularity", xlab="Danceability", ylab="Popularity", col="purple", pch=16)
plot(data_sampel$speechiness, data_sampel$popularity, main="Speechiness vs Popularity", xlab="Speechiness", ylab="Popularity", col="purple", pch=16)
plot(data_sampel$acousticness, data_sampel$popularity, main="Acousticness vs Popularity", xlab="Acousticness", ylab="Popularity", col="purple", pch=16)
# Menampung nama kolom asli variabel bebas
variabel_x <- c("duration_ms", "danceability", "energy", "loudness", "speechiness",
"acousticness", "instrumentalness", "liveness", "valence", "tempo")
# Menyalin representasi kolom menjadi notasi matematika X1 hingga X10
names(data_spotify)[match(variabel_x, names(data_spotify))] <- paste0("X", 1:10)
# Mengestimasi model regresi linier berganda berbasis metode OLS
model <- lm(popularity ~ X1 + X2 + X3 + X4 + X5 + X6 + X7 + X8 + X9 + X10, data = data_spotify)
summary(model)
# Mengaktifkan library statistika pendukung
library(lmtest)
library(car)
# 1. Ramsey RESET Test (Uji Linieritas)
resettest(model)
# Mengekstrak komponen sisaan model OLS untuk uji normalitas
residual <- residuals(model)
# 2. One Sample Kolmogorov-Smirnov Test (Uji Normalitas Sisaan)
ks.test(residual, "pnorm", mean(residual), sd(residual))
# 3. Breusch-Pagan Test (Uji Heteroskedastisitas)
bptest(model)
# 4. Durbin-Watson Test (Uji Non-autokorelasi)
dwtest(model)
# 5. Variance Inflation Factor (Uji Non-multikolinieritas)
vif(model)
Berdasarkan hasil visualisasi scatter plot yang diekstrak dari 100 sampel data acak Spotify, diperoleh gambaran hubungan awal antar variabel sebagai berikut:
Catatan Pengambilan Sampel Visual: Teknik pengambilan sampel acak sederhana sebanyak 100 observasi dari total populasi dataset (\(N = 114.000\)) sengaja diterapkan pada tahapan visualisasi untuk menghindari penumpukan data (overplotting) ekstrem. Memaksakan ratusan ribu baris ke dalam grafik akan memicu penumpukan piksel pekat yang membuat pola variabilitas data tidak terbaca. Meskipun demikian, proses pemodelan regresi selanjutnya tetap menggunakan keseluruhan 114.000 data demi menjaga keaslian dan keakuratan matematis model.
Berdasarkan hasil pengolahan data menggunakan metode Ordinary Least Squares (OLS) di RStudio, diperoleh persamaan model regresi linier berganda sebagai berikut:
\[\hat{Y} = 36.40 - 0.000001995X_1 + 9.194X_2 - 2.693X_3 + 0.115X_4 - 12.56X_5 - 1.165X_6 - 8.170X_7 + 1.488X_8 - 9.789X_9 + 0.0146X_{10}\]
Melalui pengamatan nilai statistik sidik ragam pada masing-masing parameter regresi, diperoleh hasil pengujian sebagai berikut:
Berdasarkan seluruh rangkaian analisis regresi linier berganda yang telah dilakukan terhadap data karakteristik musik pada platform Spotify dengan ukuran sampel sebesar 114.000 observasi, diperoleh beberapa kesimpulan utama sebagai berikut:
Karakteristik Visual Data Eksploratif: Berdasarkan hasil pengamatan awal melalui visualisasi scatter plot (100 sampel acak), hubungan parsial antara karakteristik audio dengan tingkat popularitas lagu cenderung lemah dan menyebar luas. Pola sebaran menunjukkan bahwa lagu populer di Spotify umumnya didominasi oleh musik modern non-akustik (acousticness mendekati 0), memiliki komponen vokal yang kuat (instrumentalness mendekati 0), direkam di studio (liveness rendah), kandungan kata lisan atau rap yang minim (speechiness rendah), tingkat volume tinggi (loudness tinggi), serta tempo sedang hingga cepat pada kisaran 100–150 BPM.
Arah Pengaruh Variabel Prediktor: Persamaan regresi linier berganda memberikan gambaran mengenai arah pengaruh karakteristik audio terhadap popularitas lagu:
Signifikansi Parameter Model: Berdasarkan pengujian signifikansi parameter pada taraf nyata \(\alpha = 0,05\), hampir seluruh variabel independen memberikan pengaruh yang signifikan secara statistik terhadap popularitas lagu (\(p\text{-value} < 0,05\)). Satu-satunya variabel yang ditemukan tidak signifikan adalah energy (\(p\text{-value} = 0.24071\)), sehingga gagal menolak \(H_0\). Artinya, tingkat energi lagu tidak memberikan kontribusi tambahan yang berarti dalam menjelaskan variasi popularitas ketika variabel lain sudah ada di dalam model.
Validitas dan Stabilitas Model (Uji Asumsi): Hasil pengujian asumsi klasik menunjukkan adanya penolakan \(H_0\) pada uji linearitas, normalitas sisaan, homoskedastisitas, dan non-autokorelasi (\(p\text{-value} < 0,05\)). Meskipun demikian, kondisi tersebut sangat wajar dan dapat diterima (acceptable) mengingat ukuran sampel data yang sangat besar (\(N = 114.000\)), sehingga pengujian formal menjadi sangat sensitif terhadap penyimpangan kecil.
Di sisi lain, pengujian Variance Inflation Factor (VIF) menunjukkan seluruh nilai VIF < 5, yang menandakan model sepenuhnya bebas dari gejala multikolinieritas. Hubungan antar-variabel independen tidak menimbulkan gangguan terhadap kestabilan estimasi koefisien regresi, sehingga model yang dibentuk dinyatakan cukup robust, valid, dan sangat layak digunakan.