12 Eylül 2017 Salı

R ile RFM analizi

R Studio; Kobiler için: 5 Satır Kod ile RFM Analizi

Kobi_RStudio_RFM
Kobilerin e-ticaret içinde kullanabilecekleri basit analizlere yer vermeye devam ediyorum. 

Bu yazımda RFM analizinin detaylarına girmek istemiyorum. Lakin basit bir şekilde Müşteri İlişkileri Yönetimi açısından son derece kolay ve yararlı bir analiz olduğunu vurgulamak isterim.

RFM; Recency(Güncellik), Frequency(Frekans) ve Moneatry(Tutar) kelimelerinin kısaltması olup, müşteri bakımından en son ne zaman alışveriş yaptığını, bizden kaç kere alışveriş yaptığını ve toplamda bizlere kaç para kazandığını hesapladığımız bir analiz yöntemidir.

Hepimizin veri tabanında Müşteri ID, Müşteri Fatura No, Fatura tutarı ve Fatura tarihi bulunmakta. Bu veriler ile çok basit RFM analizi yapmak mümkün. Ben sizin için çok kısa R-Studio kodu yazdım. Umarım sizlere faydalı olur. İsteyen arkadaşıma analizde kullandığım veri setini gönderebilirim.

Kodumuz kısaca söyle;

##Aşağıdaki kod ile veri tabanını çağırıyoruz.


df <- read.table(file.choose(),header=F)



##Veri tabanındaki verilerden yukarıdaki veriler ile yeni bir data.frame oluşturuyoruz.
df <- as.data.frame(cbind(df[,1],df[,2],df[,3],df[,4]))
  
##Sonra ilgili satırlarımıza Müşteri ID için id, Müşteri Fatura Tarihi için data ve Müşteri Ödemesi için de payment olarak kolon isimlerini değiştiriyoruz. 

names <- c("id", "date", "NumberCd", "payment")
    
names(df) <- names
    
##Sonrasında date için format belirliyoruz.
      
df[,2] <- as.Date(as.character(df[,2]),"%Y%m%d")

### ilgili analiz için gerekli paketi indirip yüklüyoruz

install.packages("devtools") # if you have not installed "devtools" package
devtools::install_github("hoxo-m/easyRFM")
library(dplyr)
require(easyRFM)

####Bu paketi çalıştırmak için sadece "rfm_auto("datasetiniz") yeterli

result <- rfm_auto(df)
head(result)

###Artık aşağıdaki kodlar ile günlük olarak müşteri analizi yapabilirsiniz.

degerli_musteri <- result$get_sliced_rfm(R_slice=5:6, F_slice=4:5, M_slice=4:5)
gelistirebilir_musteri <- result$get_sliced_rfm(R_slice=1:2, F_slice=1:2, M_slice=4:5)
sıfırınaltında_musteri <- result$get_sliced_rfm(R_slice=1:2, F_slice=1:2, M_slice=1:2)
kayıp_musteri<- result$get_sliced_rfm(R_slice=1:2, F_slice=2:3, M_slice=4:5)
azalan_musteri<- result$get_sliced_rfm(R_slice=5:4, F_slice=5:4, M_slice=1:2)
yeni_karli_musteri<- result$get_sliced_rfm(R_slice=5:4, F_slice=1:2, M_slice=4:5)

Umarım yararlı bulmuşsunuzdur.




0 yorum:

Yorum Gönder