Dataset ini berisi informasi tentang preferensi pendengar musik di berbagai platform streaming. Kita akan melakukan eksplorasi untuk memahami pola-pola menarik dalam dataset ini.
## 'data.frame': 5000 obs. of 12 variables:
## $ User_ID : chr "U1000" "U1001" "U1002" "U1003" ...
## $ Age : int 34 24 49 55 13 25 49 32 25 37 ...
## $ Country : chr "Japan" "Germany" "Germany" "Australia" ...
## $ Streaming.Platform : chr "Tidal" "Deezer" "Deezer" "YouTube" ...
## $ Top.Genre : chr "Reggae" "Country" "Pop" "Reggae" ...
## $ Minutes.Streamed.Per.Day : int 295 86 363 348 30 536 547 98 526 514 ...
## $ Number.of.Songs.Liked : int 138 388 368 349 328 243 70 448 27 299 ...
## $ Most.Played.Artist : chr "Adele" "Ed Sheeran" "Post Malone" "Dua Lipa" ...
## $ Subscription.Type : chr "Free" "Premium" "Premium" "Premium" ...
## $ Listening.Time..Morning.Afternoon.Night.: chr "Afternoon" "Night" "Afternoon" "Morning" ...
## $ Discover.Weekly.Engagement.... : num 47.4 12.1 47.2 31.3 30.7 ...
## $ Repeat.Song.Rate.... : num 16.7 69.2 67.4 76.5 43.4 ...
## User_ID Age Country Streaming.Platform
## Length:5000 Min. :13.00 Length:5000 Length:5000
## Class :character 1st Qu.:25.00 Class :character Class :character
## Mode :character Median :37.00 Mode :character Mode :character
## Mean :36.66
## 3rd Qu.:49.00
## Max. :60.00
## Top.Genre Minutes.Streamed.Per.Day Number.of.Songs.Liked
## Length:5000 Min. : 10.0 Min. : 1.0
## Class :character 1st Qu.:161.0 1st Qu.:126.0
## Mode :character Median :316.0 Median :254.0
## Mean :309.2 Mean :253.5
## 3rd Qu.:457.2 3rd Qu.:382.0
## Max. :600.0 Max. :500.0
## Most.Played.Artist Subscription.Type Listening.Time..Morning.Afternoon.Night.
## Length:5000 Length:5000 Length:5000
## Class :character Class :character Class :character
## Mode :character Mode :character Mode :character
##
##
##
## Discover.Weekly.Engagement.... Repeat.Song.Rate....
## Min. :10.02 Min. : 5.00
## 1st Qu.:30.15 1st Qu.:24.20
## Median :50.42 Median :41.96
## Mean :50.30 Mean :42.39
## 3rd Qu.:70.34 3rd Qu.:60.74
## Max. :89.99 Max. :79.99
## User_ID Age Country Streaming.Platform Top.Genre Minutes.Streamed.Per.Day
## 1 U1000 34 Japan Tidal Reggae 295
## 2 U1001 24 Germany Deezer Country 86
## 3 U1002 49 Germany Deezer Pop 363
## 4 U1003 55 Australia YouTube Reggae 348
## 5 U1004 13 Germany Amazon Music Reggae 30
## 6 U1005 25 South Korea Spotify EDM 536
## Number.of.Songs.Liked Most.Played.Artist Subscription.Type
## 1 138 Adele Free
## 2 388 Ed Sheeran Premium
## 3 368 Post Malone Premium
## 4 349 Dua Lipa Premium
## 5 328 Adele Free
## 6 243 The Weeknd Premium
## Listening.Time..Morning.Afternoon.Night. Discover.Weekly.Engagement....
## 1 Afternoon 47.42
## 2 Night 12.06
## 3 Afternoon 47.19
## 4 Morning 31.27
## 5 Night 30.68
## 6 Afternoon 70.26
## Repeat.Song.Rate....
## 1 16.74
## 2 69.25
## 3 67.38
## 4 76.51
## 5 43.41
## 6 27.79
## User_ID
## 0
## Age
## 0
## Country
## 0
## Streaming.Platform
## 0
## Top.Genre
## 0
## Minutes.Streamed.Per.Day
## 0
## Number.of.Songs.Liked
## 0
## Most.Played.Artist
## 0
## Subscription.Type
## 0
## Listening.Time..Morning.Afternoon.Night.
## 0
## Discover.Weekly.Engagement....
## 0
## Repeat.Song.Rate....
## 0
ggplot(df, aes(x = Age)) +
geom_histogram(binwidth = 3, fill = "steelblue", color = "black", alpha = 0.7) +
labs(
title = "Distribusi Usia Pendengar Musik",
x = "Usia",
y = "Jumlah Pendengar"
) +
theme_minimal(base_size = 14) +
theme(
plot.title = element_text(hjust = 0.5, face = "bold"),
axis.text = element_text(color = "black"),
axis.title = element_text(face = "bold")
)Dari histogram Distribusi Usia Pendengar Musik, dapat diambil insight bahwa Pendengar musik melalui layanan streaming tersebar di berbagai kelompok usia, tetapi lebih banyak didominasi oleh usia 20-50 tahun. Usia sangat muda dan lebih tua cenderung memiliki jumlah pendengar lebih sedikit, kemungkinan karena perbedaan dalam pola konsumsi musik dan akses terhadap platform digital.
df %>%
count(Streaming.Platform, sort = TRUE) %>%
ggplot(aes(x = reorder(Streaming.Platform, n), y = n, fill = Streaming.Platform)) +
geom_bar(stat = "identity", show.legend = FALSE) +
coord_flip() +
theme_minimal() +
labs(title = "Popularitas Platform Streaming", x = "Platform", y = "Jumlah Pengguna") +
theme(
plot.title = element_text(hjust = 0.5, face = "bold"),
axis.text = element_text(color = "black"),
axis.title = element_text(face = "bold")
)Dari grafik Popularitas Platform Streaming, dapat diambil insight bahwa penggunaan platform streaming musik cukup merata tanpa ada dominasi yang signifikan oleh satu platform tertentu. Meskipun ada sedikit perbedaan dalam jumlah pengguna, semua platform tampak memiliki basis pengguna yang kuat. Hal ini menunjukkan bahwa preferensi pendengar musik terhadap platform streaming cukup beragam, kemungkinan dipengaruhi oleh faktor seperti fitur yang ditawarkan, ketersediaan lagu, harga langganan, dan kebiasaan pengguna.
df %>%
count(Top.Genre, sort = TRUE) %>%
ggplot(aes(x = reorder(Top.Genre, n), y = n, fill = Top.Genre)) +
geom_bar(stat = "identity", show.legend = FALSE) +
coord_flip() +
theme_minimal() +
labs(title = "Popularitas Genre Musik", x = "Genre", y = "Jumlah Pendengar") +
theme(
plot.title = element_text(hjust = 0.5, face = "bold"),
axis.text = element_text(color = "black"),
axis.title = element_text(face = "bold")
)Dari grafik popularitas genre musik, dapat diambil insight bahwa tidak ada genre yang secara signifikan lebih dominan dibandingkan yang lain, menunjukkan bahwa preferensi musik pendengar cukup beragam. Genre seperti Reggae, Jazz, EDM, dan Rock berada di peringkat teratas, yang mengindikasikan bahwa musik dengan ritme yang khas dan variasi instrumental yang kaya cukup populer.
Selain itu, genre Pop dan Classical juga memiliki banyak pendengar, menandakan bahwa ada keseimbangan antara musik mainstream yang mudah dinikmati dan musik klasik yang lebih niche. Keberagaman ini menunjukkan bahwa faktor seperti usia, budaya, dan kebiasaan mendengarkan memengaruhi preferensi musik seseorang.
ggplot(df, aes(x = Subscription.Type, y = Minutes.Streamed.Per.Day, fill = Subscription.Type)) +
geom_boxplot() +
theme_minimal() +
labs(title = "Waktu Streaming Berdasarkan Jenis Langganan",
x = "Jenis Langganan",
y = "Menit Streaming Per Hari") +
theme(
plot.title = element_text(hjust = 0.5, face = "bold"),
axis.text = element_text(color = "black"),
axis.title = element_text(face = "bold")
)Boxplot menunjukkan bahwa tidak ada perbedaan signifikan dalam total waktu streaming antara pengguna Free dan Premium, dengan median dan variasi yang hampir sama di kedua kelompok. Hal ini mengindikasikan bahwa meskipun pengguna Premium memiliki akses tanpa iklan dan fitur tambahan, mereka tidak selalu menghabiskan lebih banyak waktu untuk mendengarkan musik dibandingkan pengguna Free. Variasi waktu streaming yang serupa juga menunjukkan bahwa faktor lain, seperti kebiasaan mendengarkan dan keterbatasan waktu pribadi, mungkin lebih berpengaruh dibandingkan jenis langganan. Dengan demikian, perbedaan langganan tampaknya lebih memengaruhi pengalaman pengguna daripada durasi mendengarkan musik.
df %>%
count(Listening.Time..Morning.Afternoon.Night., sort = TRUE) %>%
ggplot(aes(x = reorder(Listening.Time..Morning.Afternoon.Night., n),
y = n,
fill = Listening.Time..Morning.Afternoon.Night.)) +
geom_bar(stat = "identity", show.legend = FALSE) +
coord_flip() +
theme_minimal() +
labs(title = "Kapan Pendengar Mendengarkan Musik?", x = "Waktu", y = "Jumlah Pendengar") +
theme(
plot.title = element_text(hjust = 0.5, face = "bold"),
axis.text = element_text(color = "black"),
axis.title = element_text(face = "bold")
)Diagram menunjukkan bahwa waktu mendengarkan musik tersebar merata di berbagai periode, dengan jumlah pendengar yang hampir sama pada pagi (Morning), siang (Afternoon), dan malam (Night). Hal ini mengindikasikan bahwa tidak ada preferensi waktu yang dominan dalam kebiasaan mendengarkan musik, sehingga musik dikonsumsi secara fleksibel sesuai dengan aktivitas dan rutinitas individu.
ggplot(df, aes(x = Age, fill = Top.Genre)) +
geom_density(alpha = 0.6) +
labs(title = "Hubungan Usia dan Genre Musik Favorit",
x = "Usia",
y = "Kepadatan",
fill = "Genre Musik") +
theme_minimal() +
theme(
plot.title = element_text(hjust = 0.5, face = "bold"),
axis.text = element_text(color = "black"),
axis.title = element_text(face = "bold")
) +
facet_wrap(~Top.Genre, scales = "free_y") # Membuat panel terpisah untuk setiap genre musikDari visualisasi distribusi usia berdasarkan genre musik favorit, bisa dilihat bahwa beberapa genre memiliki preferensi usia yang lebih menonjol dibandingkan yang lain. Misalnya, Hip-Hop dan R&B lebih banyak diminati oleh usia muda (di bawah 40 tahun), sementara genre seperti Classical dan Jazz memiliki distribusi yang lebih merata atau cenderung lebih populer di usia lebih tua. Genre seperti EDM dan Pop juga cenderung populer di kalangan muda, sedangkan Rock dan Metal memiliki penyebaran usia yang lebih luas tanpa dominasi yang jelas. Ini menunjukkan bahwa preferensi musik dapat dipengaruhi oleh faktor usia, dengan genre tertentu lebih disukai oleh kelompok usia tertentu.
df %>%
count(Subscription.Type, Top.Genre) %>%
ggplot(aes(x = Top.Genre, y = n, fill = Subscription.Type)) +
geom_bar(stat = "identity", position = "dodge") +
coord_flip() +
labs(title = "Perbedaan Preferensi Genre Berdasarkan Jenis Langganan",
x = "Genre Musik", y = "Jumlah Pendengar") +
theme_minimal() +
theme(
plot.title = element_text(hjust = 0.5, face = "bold"),
axis.text = element_text(color = "black"),
axis.title = element_text(face = "bold")
)Dari grafik Perbedaan Preferensi Genre Berdasarkan Jenis Langganan, terlihat bahwa perbedaan jumlah pendengar antara pengguna Premium dan Free cenderung tidak terlalu signifikan, menunjukkan bahwa preferensi musik tidak banyak dipengaruhi oleh jenis langganan. Namun, beberapa genre seperti Jazz dan EDM lebih populer di kalangan pengguna Premium, yang mungkin mengindikasikan bahwa mereka mencari pengalaman musik yang lebih eksklusif atau berkualitas tinggi. Sebaliknya, Reggae dan Pop memiliki lebih banyak pendengar Free, menunjukkan bahwa genre ini lebih diminati oleh pendengar kasual. Sementara itu, Rock memiliki distribusi yang paling seimbang antara pengguna Free dan Premium, menandakan bahwa popularitasnya tidak bergantung pada jenis langganan. Insight tambahan yang bisa dieksplorasi lebih lanjut termasuk hubungan antara preferensi genre dengan usia atau demografi, serta apakah pengguna Premium lebih aktif dalam Discover Weekly Engagement dan memiliki Repeat Song Rate yang lebih tinggi.
ggplot(df, aes(x = Streaming.Platform, y = Minutes.Streamed.Per.Day, fill = Streaming.Platform)) +
geom_boxplot() +
coord_flip() +
labs(title = "Durasi Streaming Berdasarkan Platform",
x = "Platform Streaming", y = "Menit Streaming Per Hari") +
theme_minimal() +
theme(
plot.title = element_text(hjust = 0.5, face = "bold"),
axis.text = element_text(color = "black"),
axis.title = element_text(face = "bold")
)Dari grafik Durasi Streaming Berdasarkan Platform, terlihat bahwa durasi streaming harian cukup merata di berbagai platform, dengan median yang hampir sama di semua kategori. YouTube dan Tidal memiliki distribusi durasi streaming yang lebih luas, yang menunjukkan adanya variasi signifikan dalam kebiasaan pengguna, dengan beberapa mendengarkan dalam durasi yang sangat lama. Sementara itu, Amazon Music dan Apple Music memiliki distribusi yang lebih terkonsentrasi, yang mungkin menandakan pola penggunaan yang lebih konsisten di antara para penggunanya. Spotify dan Deezer menunjukkan pola yang seimbang, dengan variabilitas yang tidak terlalu ekstrem dibandingkan YouTube atau Tidal. Hal ini bisa mengindikasikan bahwa Spotify tetap menjadi pilihan utama dengan penggunaan yang stabil, sementara platform seperti YouTube lebih sering digunakan baik untuk sesi singkat maupun panjang. Insight lebih lanjut bisa didapat dengan melihat hubungan antara durasi streaming dengan genre musik yang paling sering diputar atau karakteristik demografi pengguna tiap platform.