Skip to content

cohort retention analysis using MySQL for online retail dataset

Notifications You must be signed in to change notification settings

fadhlurrahmann/cohort-analysis-online-retail

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Cohort Retention Analysis - Online Retail Dataset

Cohort analysis adalah suatu teknik yang digunakan untuk menganalisis dan memahami perilaku sekelompok individu dari waktu ke waktu. Individu tersebut dikelompokkan berdasarkan karakteristiknya, seperti waktu saat mereka mendaftar untuk suatu layanan atau produk yang dibeli.

Dalam cohort retention analysis, pelanggan dikelompokkan secara berbeda berdasarkan waktu saat mereka kembali menggunakan layanan atau membeli produk, mencerminkan metrik yang disebut retensi.

Fungsi Cohort Analysis

  • Mengetahui kesehatan bisnis
  • Memahami pelanggan dengan lebih baik
  • Segmentasi pelanggan dengan lebih akurat
  • Peningkatan retensi pelanggan
  • Meningkatkan produk/layanan untuk untuk meningkatkan minat

Metodologi

Proyek ini menggunakan tool DBeaver dengan DBMS MySQL untuk melakukan analisis retensi, dan Tableu adalah tool visualisasi yang digunakan.
Berikut ini adalah rincian langkah-langkah yang diambil untuk melaksanakan proyek ini.

Dataset

Dataset yang digunakan diperoleh dari Kaggle. Ini berisi semua transaksi yang terjadi antara bulan Desember 2010 hingga Desember 2011. Kumpulan data ini berisi semua pembelian yang dilakukan untuk perusahaan retail online yang berbasis di UK.

Data Cleaning

Dataset diunduh dalam format CSV yang kemudian diimpor sebagai flat file ke DBeaver. Kemudian dilakukan semua proses data cleaning sesuai dengan query yang terdapat pada file cohort_analysis.sql.

Hal pertama yang dilakukan adalah menampilkan seluruh data untuk memberikan gambaran tentang apa yang akan dikerjakan. Di sini dapat dilihat bahwa ada lebih dari lima ratus ribu baris data yang dapat digunakan untuk analisis.

Raw Dataset

Raw Dataset

Selanjutnya adalah mengubah format dan tipe data dari kolom InvoiceDate, yang sebelumnya bertipe data VARCHAR menjadi tipe data DATE, agar mempermudah dalam mengelompokkan data berdasarkan tanggal nantinya.

Raw Dataset

Selanjutnya adalah mencari tahu apakah terdapat data null di dataset tersebut. Karena pada proyek ini sedang melakukan analisis retensi, kolom utama yang digunakan adalah CustomerID yang merupakan pengindentifikasi unik untuk setiap pelanggan yang membeli layanan/produk perusahaan.

Pengecekan data null pada kolom CustomerID dengan query berikut:

Raw Dataset

Dari 541.909, terdapat 135.080 baris data tidak memiliki CustomerID. Sehingga menyisakan 406.829 baris data untuk dianalisis.

Jika diperhatikan bahwa terdapat nilai negatif pada kolom Quantity. Kemungkinan besar ini adalah barang yang dikembalikan atau rusak. Ini jelas akan mempengaruhi kolom UnitPrice. Jadi data dengan nilai negatif tersebut perlu dihapus.

negative quantity

Raw Dataset

Ini mengurangi baris data sebesar 8.905. Sehingga sisa baris pada dataset menjadi 397.924.

Kita juga akan memeriksa apakah kolom UnitPrice juga terdapat nilai negatif atau nol, karena tidak mungkin harga produk di perusahaan bernilai negatif atau nol. Jadi data dengan nilai negatif atau nol tersebut juga perlu dihapus.

Raw Dataset

Ini mengurangi baris data sebesar 40. Sehingga sisa baris pada dataset menjadi 397.884.

Selanjutnya kita akan memeriksa dan menghapus data duplikat. Ini menunjukkan setiap baris memiliki data yang sama yang dimasukkan lebih dari satu kali. Saya akan membuat CTE (Common Table Expression) untuk melakukan tugas ini.

Raw Dataset

Query di atas akan menghapus data duplikat yang berjumlah 5.215 dan menyisakan 392.669 data bersih untuk dianalisis.

Performing Cohort Analysis

Dalam melakukan cohort analysis, pertama perlu mengelompokkan customer berdasarkan bulan mereka melakukan pembelian pertama lalu menyimpannya di tabel cohort.

Raw Dataset

Selanjutnya adalah membuat cohort index. Ini pada dasarnya adalah representasi bilangan bulat dari jumlah bulan yang berlalu sejak pembelian pertama customer. Di sini kita akan menggabungkan dua tabel yaitu tabel utama onlineretail dengan tabel cohort untuk memungkinkan menghitung cohort index. Hasil query ini akan disimpan dalam tabel cohort_retention.

Raw Dataset

Dengan menjalankan query di atas kita dapat melihat pelanggan yang kembali setelah pembelian pertama mereka, kita juga bisa melihat berapa bulan berlalu sebelum pembelian berikutnya, dan juga customer yang tidak kembali membeli sama sekali.

Selanjutnya adalah membuat tabel pivot yang berupa ringkasan data sehingga dapat melihat berapa banyak customer yang termasuk ke dalam setiap kelompok.

Pivot Table

Dari gambar di atas dapat dilihat bahwa terdapat customer yang berjumlah 885 pada bulan cohort Desember 2010 , namun hanya 324 yang kembali. Selain itu juga dapat dilihat tren lainnya seiring berjalannya waktu.

Data Visualization

Untuk lebih mudah dalam memahami dan menginterpretasikan data, berikut ini link visualisasi data tersebut dengan menggunakan Tableu.

  • Y-axis merepresentasikan jumlah customer yang membeli produk untuk pertama kalinya setiap bulan.
  • X-axis merepresentasikan jumlah customer yang aktif di bulan-bulan berikutnya sejak pembelian pertama.
  • Pada tabel cohort retention rate, setiap kotak mewakili persentase customer yang kembali pada bulan tertentu. Bulan cohort pertama akan selalu menampilkan 100% karena ini adalah bulan dasar customer melakukan pembelian pertama.

Sebagai contoh bulan Desember 2010, dapat dilihat distribusinya sepanjang bulan. Semakin gelap warnanya, semakin banyak customer yang kembali, semakin terang warnanya, semakin sedikit jumlah customer yang kembali. Jika dilihat hingga bulan ke-12, maka akan terlihat peningkatan signifikan dalam jumlah customer yang kembali. Kemungkinan peningkatan tersebut bertepatan dengan musim liburan, sehingga customer akan kembali untuk membeli produk saat liburan.

Kita juga dapat membacanya secara vertikal untuk membandingkan nilai antar kelompok (cohort). Dan terakhir, kita bisa membacanya secara diagonal untuk melihat bulan kalender. Hal ini sangat berguna jika ingin mencoba menemukan masalah dalam jangka waktu tertentu. Dapat dilihat bahwa ada perbedaan yang signifikan antara kelompok bulan Desember 2010 dan bulan Januari 2011. Tampaknya juga akuisisi customer menurun sepanjang periode tersebut.

Berdasarkan analisis cohort tersebut, dapat dieksplorasi lebih banyak wawasan berdasarkan data tersebut. Dengan lebih banyak pertanyaan dan penelitian dapat membantu memahami pola perilaku customer di setiap bulannya.

About

cohort retention analysis using MySQL for online retail dataset

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published