Dataset ini berasal dari sistem bike sharing di Washington, D.C., yang diperoleh dari UCI Machine Learning Repository yang dapat di akses melalui link ini. Dataset ini mencatat aktivitas penyewaan sepeda setiap hari selama dua tahun. Setelah memahami dalam kondisi apa data dikumpulkan (musim, cuaca, dan jenis hari), langkah berikutnya adalah melihat bagaimana perilaku nilai numerik dalam dataset.
Pada tahap ini analis mulai bertanya:
Seberapa besar variasi jumlah penyewaan sepeda dari hari ke hari? Apakah nilainya stabil, menyebar, atau memiliki lonjakan tertentu?
Untuk menjawab pertanyaan tersebut digunakan visualisasi univariate kontinu, yaitu visualisasi yang berfokus pada satu variabel numerik dalam satu waktu. Visualisasi ini membantu kita memahami distribusi data, mengidentifikasi pola, dan mendeteksi outlier. Dengan menggunakan visualisasi univariate kontinu, kita dapat melihat bagaimana nilai numerik dalam dataset bervariasi dari hari ke hari, apakah nilainya stabil, menyebar, atau memiliki lonjakan tertentu. Informasi ini dapat memberikan wawasan yang lebih dalam tentang pola penggunaan sepeda dalam dataset dan membantu dalam perencanaan layanan sepeda yang lebih efektif.
Import data dari file CSV ke dalam R menggunakan fungsi
read.csv(). Pastikan untuk menyesuaikan path file dengan
lokasi di mana dataset disimpan di komputer Anda. Berikut adalah kode
untuk memuat data:
bike_data <- read.csv("C:/Users/USER/Downloads/day.csv")
colnames(bike_data)
## [1] "instant" "dteday" "season" "yr" "mnth"
## [6] "holiday" "weekday" "workingday" "weathersit" "temp"
## [11] "atemp" "hum" "windspeed" "casual" "registered"
## [16] "cnt"
Berdasarkan output di atas, dataset ini memiliki 16 variabel,
termasuk variabel numerik dan kategorik. Variabel numerik dalam dataset
ini termasuk temp, atemp, hum,
windspeed, casual, registered,
dan cnt. Variabel-variabel ini memberikan informasi tentang
suhu, kelembapan, kecepatan angin, jumlah penyewaan sepeda oleh pengguna
kasual, jumlah penyewaan sepeda oleh pengguna terdaftar, dan total
jumlah penyewaan sepeda. Berikut adalah deskripsi dari variabel-variabel
numerik dalam dataset:
Sedangkan variabel-variabel kategorik sudah dijelaskan pembelajaran
sebelumnya, variabel-variabel kategorik seperti season,
weathersit, dan workingday di-recode untuk
memudahkan dalam interpretasi visualisasi dan analisis selanjutnya.
Dengan melakukan recode pada variabel-variabel kategorik, kita dapat lebih mudah memahami dan menginterpretasikan visualisasi yang akan dibuat selanjutnya. Misalnya, ketika kita membuat grafik yang menunjukkan jumlah penyewaan sepeda berdasarkan musim, kita dapat langsung melihat label “Spring”, “Summer”, “Fall”, dan “Winter” daripada harus mengingat bahwa 1 = Spring, 2 = Summer, dan seterusnya. Hal ini membuat visualisasi lebih intuitif dan mudah dipahami oleh audiens.
Struktur data setelah recode akan tetap sama, tetapi nilai-nilai
dalam variabel season, weathersit, dan
workingday sekarang memiliki label yang lebih deskriptif.
Ini akan memudahkan kita dalam membuat visualisasi yang lebih informatif
dan mudah dipahami.
datatable(bike_data, options = list(pageLength = 5, autoWidth = TRUE))
Setelah memahami pola distribusi satu variabel, analisis dapat dilanjutkan ke tahap berikutnya, yaitu visualisasi bivariate. Visualisasi bivariate digunakan untuk melihat hubungan antara dua variabel, misalnya bagaimana jumlah penyewaan sepeda (cnt) dipengaruhi oleh faktor lain seperti musim (season), kondisi cuaca (weathersit), suhu (temp), atau jenis hari (workingday). Pendekatan ini memungkinkan analis tidak hanya memahami bagaimana data tersebar, tetapi juga mulai mengeksplorasi faktor-faktor yang berasosiasi dengan perubahan jumlah penyewaan sepeda.
Dengan demikian, visualisasi univariate memberikan pemahaman awal mengenai karakteristik dan variasi data, sedangkan visualisasi bivariate membantu menggali hubungan antarvariabel yang dapat menjelaskan pola penggunaan sepeda secara lebih mendalam. Berikut adalah beberapa jenis visualisasi bivariate yang dapat digunakan untuk menganalisis hubungan antara jumlah penyewaan sepeda (cnt) dengan variabel lain dalam dataset:
Scatter plot adalah grafik yang menunjukkan hubungan antara dua
variabel numerik. Setiap titik pada scatter plot mewakili satu
pengamatan, dengan posisi titik ditentukan oleh nilai kedua variabel.
Berikut adalah contoh kode untuk membuat scatter plot antara
cnt dan temp:
ggplot(bike_data, aes(x = temp, y = cnt)) +
geom_point(color = "steelblue", alpha = 0.5) +
labs(title = "Scatter Plot of Total Bike Rentals vs Temperature",
x = "Temperature (temp)",
y = "Total Rentals (cnt)") +
theme_minimal()
Scatter plot di atas menunjukkan hubungan antara suhu (temp) dan jumlah penyewaan sepeda (cnt). Setiap titik pada grafik mewakili satu hari, dengan posisi horizontal menunjukkan suhu dan posisi vertikal menunjukkan jumlah penyewaan sepeda pada hari tersebut. Dari visualisasi ini terlihat bahwa terdapat pola positif antara suhu dan jumlah penyewaan sepeda, di mana semakin tinggi suhu, semakin banyak penyewaan sepeda yang terjadi. Hal ini menunjukkan bahwa cuaca yang lebih hangat cenderung meningkatkan penggunaan sepeda, sementara suhu yang lebih rendah mungkin membuat orang enggan untuk menyewa sepeda. Meskipun terdapat beberapa titik yang menyebar, pola umum menunjukkan bahwa suhu memiliki pengaruh positif terhadap jumlah penyewaan sepeda.
Boxplot bivariate digunakan untuk membandingkan distribusi variabel
numerik (cnt) berdasarkan kategori dari variabel lain, seperti musim
(season). Berikut adalah contoh kode untuk membuat boxplot bivariate
antara cnt dan season:
ggplot(bike_data, aes(x = season, y = cnt)) +
geom_boxplot(fill = "lightblue", color = "darkblue") +
labs(title = "Boxplot of Total Bike Rentals by Musim",
x = "Musim",
y = "Total Rentals (cnt)") +
theme_minimal()
Boxplot bivariate di atas digunakan untuk membandingkan distribusi jumlah penyewaan sepeda (cnt) berdasarkan kategori musim (season). Setiap kotak pada grafik mewakili distribusi penyewaan sepeda untuk masing-masing musim, dengan garis di dalam kotak menunjukkan median, batas kotak menunjukkan kuartil pertama (Q1) dan kuartil ketiga (Q3), serta whisker yang memanjang menunjukkan rentang data. Dari visualisasi ini terlihat bahwa musim Summer memiliki jumlah penyewaan sepeda yang lebih tinggi dibandingkan dengan musim lainnya, dengan median yang berada di kisaran 5.000 penyewaan per hari. Sementara itu, musim Winter memiliki jumlah penyewaan yang lebih rendah, dengan median di bawah 3.000 penyewaan per hari. Hal ini menunjukkan bahwa penggunaan sepeda cenderung meningkat selama musim panas dan menurun selama musim dingin, kemungkinan karena faktor cuaca yang mempengaruhi kenyamanan dalam menggunakan sepeda.
Violin plot bivariate digunakan untuk membandingkan distribusi
variabel numerik (cnt) berdasarkan kategori dari variabel lain, seperti
kondisi cuaca (weathersit). Berikut adalah contoh kode untuk membuat
violin plot bivariate antara cnt dan
weathersit:
ggplot(bike_data, aes(x = weathersit, y = cnt)) +
geom_violin(fill = "lightcoral", color = "darkred", alpha = 0.6) +
geom_boxplot(width = 0.1, fill = "white", color = "black", outlier.shape = NA) +
labs(title = "Violin Plot of Total Bike Rentals by Kondisi Cuaca",
x = "Kondisi Cuaca",
y = "Total Rentals (cnt)") +
theme_minimal()
Violin plot bivariate di atas digunakan untuk membandingkan distribusi jumlah penyewaan sepeda (cnt) berdasarkan kondisi cuaca (weathersit). Setiap bentuk violin mewakili distribusi penyewaan sepeda untuk masing-masing kondisi cuaca, dengan bagian yang lebih lebar menunjukkan bahwa lebih banyak hari memiliki jumlah penyewaan pada kisaran tersebut. Boxplot di dalam violin memberikan informasi statistik ringkas, seperti median dan kuartil. Dari visualisasi ini terlihat bahwa kondisi cuaca yang cerah (Clear) memiliki distribusi penyewaan sepeda yang lebih tinggi dan lebih padat dibandingkan dengan kondisi cuaca lainnya, seperti hujan ringan (Light Rain) atau hujan deras (Heavy Rain), yang memiliki distribusi penyewaan yang lebih rendah. Hal ini menunjukkan bahwa kondisi cuaca yang baik cenderung meningkatkan penggunaan sepeda, sementara kondisi cuaca yang buruk dapat mengurangi minat orang untuk menyewa sepeda.
Visualisasi bivariate antara jumlah penyewaan sepeda (cnt) dengan variabel lain seperti suhu (temp), musim (season), dan kondisi cuaca (weathersit) menunjukkan bahwa
Suhu memiliki hubungan positif dengan jumlah penyewaan sepeda, di mana suhu yang lebih tinggi cenderung meningkatkan jumlah penyewaan sepeda, sementara suhu yang lebih rendah dapat menurunkan minat untuk menyewa sepeda.
Musim juga mempengaruhi penggunaan sepeda, dengan musim panas menunjukkan tingkat penyewaan yang lebih tinggi dibandingkan dengan musim dingin, kemungkinan karena faktor cuaca yang mempengaruhi kenyamanan dalam menggunakan sepeda.
Kondisi cuaca yang cerah meningkatkan penggunaan sepeda, sementara kondisi cuaca yang buruk seperti hujan dapat mengurangi minat untuk menyewa sepeda, menunjukkan bahwa faktor cuaca memiliki pengaruh signifikan terhadap pola penggunaan sepeda.
Dengan demikian, faktor-faktor lingkungan seperti suhu, musim, dan kondisi cuaca memiliki pengaruh yang signifikan terhadap pola penggunaan sepeda dalam dataset ini. Informasi ini dapat digunakan untuk perencanaan layanan sepeda yang lebih efektif dan responsif terhadap kondisi lingkungan.
Dataset ini berasal dari sistem bike sharing di Washington, D.C., yang diperoleh dari UCI Machine Learning Repository. Dataset ini mencatat jumlah penyewaan sepeda setiap hari selama dua tahun (2011–2012). Selain jumlah total penyewaan (cnt), data juga memuat informasi mengenai jenis hari (workingday), kecepatan angin (windspeed), dan tahun operasional (yr).
Setelah memahami kondisi pengumpulan data seperti musim, cuaca, dan periode waktu, tahap berikutnya adalah mengeksplorasi hubungan antarvariabel melalui analisis bivariat. Analisis ini bertujuan untuk melihat bagaimana suatu variabel berhubungan dengan jumlah penyewaan sepeda.
Beberapa pertanyaan yang muncul dalam tahap ini antara lain:
Apakah terdapat hubungan antara jumlah penyewa terdaftar dengan total jumlah penyewaan sepeda, Apakah jumlah penyewaan berbeda antara hari kerja dan bukan hari kerja, Seberapa besar pengaruh kondisi cuaca terhadap jumlah penyewaan sepeda oleh pengguna terdaftar
Melalui visualisasi bivariat, seperti perbandingan workingday dengan cnt, hubungan windspeed dengan cnt, serta perbandingan tahun (yr) dengan cnt, analis dapat mengidentifikasi pola, perbedaan distribusi, dan kemungkinan tren pertumbuhan. Hasil visualisasi ini memberikan gambaran yang lebih jelas mengenai pola penggunaan sepeda serta menjadi dasar dalam pengambilan keputusan operasional yang lebih efektif.
Import data dari file CSV ke dalam R menggunakan fungsi
read.csv(). Pastikan untuk menyesuaikan path file dengan
lokasi di mana dataset disimpan di komputer Anda. Berikut adalah kode
untuk memuat data:
bike_data <- read.csv("C:/Users/USER/Downloads/day.csv")
colnames(bike_data)
## [1] "instant" "dteday" "season" "yr" "mnth"
## [6] "holiday" "weekday" "workingday" "weathersit" "temp"
## [11] "atemp" "hum" "windspeed" "casual" "registered"
## [16] "cnt"
Berdasarkan hasil output yang diperoleh, dataset ini terdiri dari 16 variabel yang mencakup variabel bertipe numerik maupun kategorik.
Variabel numerik dalam dataset ini meliputi temp,
atemp, hum, windspeed,
casual, registered, dan cnt.
Variabel-variabel tersebut berisi informasi kuantitatif yang dapat
diukur dan dianalisis secara statistik.
Secara rinci, temp menunjukkan suhu aktual, sedangkan
atemp merepresentasikan suhu yang dirasakan. Variabel
hum menggambarkan tingkat kelembapan udara dan
windspeed menunjukkan kecepatan angin pada waktu tertentu.
Selain itu, casual mencerminkan jumlah penyewaan sepeda
oleh pengguna tidak terdaftar, registered menunjukkan
jumlah penyewaan oleh pengguna terdaftar, dan cnt merupakan
total keseluruhan penyewaan sepeda yang merupakan gabungan dari casual
dan registered. Variabel-variabel numerik ini sangat penting dalam
analisis karena memungkinkan peneliti untuk melihat pola, hubungan,
serta pengaruh faktor cuaca terhadap jumlah penyewaan sepeda secara
lebih mendalam.
Sementara itu, variabel-variabel yang bersifat kategorik seperti
season, weathersit, dan
workingday telah dilakukan proses recode agar lebih mudah
dibaca dan dipahami dalam tahap analisis maupun visualisasi. Proses ini
bertujuan untuk mengganti kode numerik menjadi label yang lebih
deskriptif sehingga interpretasi data menjadi lebih jelas.
Dengan melakukan recode, setiap kategori tidak lagi ditampilkan dalam bentuk angka, melainkan dalam bentuk keterangan yang representatif.
datatable(bike_data, options = list(pageLength = 5, autoWidth = TRUE))
Scatter plot adalah grafik yang menunjukkan hubungan antara dua
variabel numerik. Setiap titik pada scatter plot mewakili satu
pengamatan, dengan posisi titik ditentukan oleh nilai kedua
variabel.Berikut adalah contoh kode untuk membuat scatter plot antara
registered dan cnt:
ggplot(bike_data, aes(x = registered, y = cnt)) +
geom_point(color = "darkgreen", alpha = 0.6) +
geom_smooth(method = "lm",
color = "red",
se = FALSE) +
labs(title = "Scatter Plot of Jumlah Penyewa Terdaftar vs Total Jumlah Penyewa",
x = "Jumlah Penyewa Terdaftar (registered)",
y = "Total Jumlah Penyewa (cnt)") +
theme_minimal()
## `geom_smooth()` using formula = 'y ~ x'
Grafik scatter plot menunjukkan hubungan yang sangat kuat dan positif antara jumlah penyewa terdaftar (registered) dan total penyewaan (cnt). Titik-titik data membentuk pola linear yang naik, dan garis regresi memperlihatkan kecenderungan peningkatan yang konsisten. Hal ini menunjukkan bahwa semakin tinggi jumlah pengguna terdaftar, maka total penyewaan sepeda juga semakin meningkat. Hubungan ini sangat logis karena registered merupakan bagian dari total penyewaan (cnt).
Boxplot bivariate digunakan untuk membandingkan distribusi variabel
numerik (cnt) berdasarkan kategori dari variabel lain, seperti musim
(working day).Berikut adalah contoh kode untuk membuat boxplot bivariate
antara working day dan cnt:
ggplot(bike_data, aes(x = factor(workingday), y = cnt)) +
geom_boxplot(fill = "grey", color = "darkgreen") +
labs(title = "Perbandingan Jumlah Penyewaan pada Hari Kerja dan Bukan Hari Kerja",
x = "Working Day",
y = "Total Rentals (cnt)") +
theme_minimal()
Boxplot bivariat sebelumnya digunakan untuk membandingkan distribusi jumlah penyewaan sepeda (cnt) berdasarkan kategori workingday (hari kerja dan bukan hari kerja). Setiap kotak pada grafik merepresentasikan distribusi jumlah penyewaan pada masing-masing kategori. Garis horizontal di dalam kotak menunjukkan nilai median, bagian bawah dan atas kotak menunjukkan kuartil pertama (Q1) dan kuartil ketiga (Q3), sedangkan garis whisker menggambarkan rentang data di luar kuartil.
Berdasarkan visualisasi tersebut, terlihat bahwa median jumlah penyewaan pada hari kerja (Yes) sedikit lebih tinggi dibandingkan dengan hari non-kerja (No). Selain itu, rentang dan penyebaran data pada hari kerja tampak cukup luas, yang menunjukkan variasi jumlah penyewaan yang relatif besar. Meskipun perbedaannya tidak terlalu ekstrem, kecenderungan ini mengindikasikan bahwa aktivitas penyewaan sepeda lebih tinggi pada hari kerja dibandingkan hari libur. Hal ini kemungkinan disebabkan oleh penggunaan sepeda sebagai sarana transportasi untuk bekerja atau beraktivitas rutin pada hari kerja.
Violin plot bivariate digunakan untuk membandingkan distribusi
variabel numerik (registered) berdasarkan kategori dari variabel lain,
seperti kondisi cuaca (weathersit).Berikut adalah contoh kode untuk
membuat violin plot bivariate antara registered dan
weathersit:
ggplot(bike_data, aes(x = factor(weathersit), y = registered)) +
geom_violin(fill = "darkred", alpha = 0.7) +
geom_boxplot(width = 0.1,
fill = "white",
outlier.shape = NA) +
labs(title = "Jumlah Penyewaan Registered Berdasarkan Kondisi Cuaca",
x = "Kondisi Cuaca",
y = "Jumlah Penyewaan Registered") +
theme_minimal()
Violin plot bivariat tersebut digunakan untuk melihat distribusi jumlah penyewaan sepeda (cnt) berdasarkan kondisi cuaca (weathersit). Setiap bentuk violin menggambarkan kepadatan distribusi data pada masing-masing kategori cuaca, di mana bagian yang lebih lebar menunjukkan jumlah observasi yang lebih banyak pada rentang nilai tertentu. Boxplot di dalamnya menampilkan median serta kuartil sebagai ringkasan statistik.
Dari grafik terlihat bahwa kondisi Clear (cerah) memiliki jumlah penyewaan yang lebih tinggi dengan median dan sebaran yang lebih besar dibandingkan kondisi cuaca lainnya. Sebaliknya, pada kondisi Light Rain atau cuaca yang lebih buruk, jumlah penyewaan cenderung lebih rendah dan distribusinya lebih sempit. Hal ini menunjukkan bahwa cuaca yang baik mendorong peningkatan penggunaan sepeda, sedangkan cuaca yang kurang mendukung cenderung menurunkan jumlah penyewaan.
Visualisasi bivariat antara jumlah penyewaan sepeda (cnt) dengan variabel workingday, registered, dan weathersit menunjukkan bahwa:
Jumlah pengguna terdaftar (registered) memiliki hubungan yang sangat kuat dan positif dengan total penyewaan sepeda (cnt), sehingga peningkatan jumlah pengguna terdaftar secara langsung meningkatkan total penyewaan.
Hari kerja (workingday) cenderung memiliki jumlah penyewaan yang lebih tinggi dibandingkan hari non-kerja, meskipun perbedaannya tidak terlalu signifikan.
Kondisi cuaca (weathersit) berpengaruh terhadap jumlah penyewaan sepeda, di mana cuaca cerah menghasilkan penyewaan tertinggi, sedangkan kondisi hujan menurunkan jumlah penyewaan secara cukup signifikan.
Dengan demikian, faktor-faktor lingkungan dan karakteristik hari berperan penting dalam membentuk pola penggunaan sepeda, sehingga dapat menjadi pertimbangan dalam perencanaan layanan yang lebih efektif dan adaptif.