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.
- Mengetahui kesehatan bisnis
- Memahami pelanggan dengan lebih baik
- Segmentasi pelanggan dengan lebih akurat
- Peningkatan retensi pelanggan
- Meningkatkan produk/layanan untuk untuk meningkatkan minat
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 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.
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
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.
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:
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.
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.
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.
Query di atas akan menghapus data duplikat yang berjumlah 5.215 dan menyisakan 392.669 data bersih untuk dianalisis.
Dalam melakukan cohort analysis, pertama perlu mengelompokkan customer berdasarkan bulan mereka melakukan pembelian pertama lalu menyimpannya di tabel cohort.
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.
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.
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.
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.