Analisi RFM | Lifetime Value del cliente tramite analisi RFM

Contenuti

introduzione

L'ottanta per cento della nostra attività proviene da 20% dei nostri clienti.

Costi 10 volte meno per vendere a un cliente esistente che per trovare un nuovo cliente

T

98834cattura-8983678

Nel nostro indice de acciones, NIFTY 50 definisce come il nostro mercato azionario si comporta in modo simile, in affari, è importante capire chi sono i tuoi migliori clienti che forniscono flussi di entrate coerenti e in crescita per la tua attività.

Una delle metodologie semplici ed efficaci generalmente utilizzate per calcolare il valore del cliente in un periodo di tempo è RFM, Che cos'è,

Recente (R): da quanto tempo un cliente ha effettuato un acquisto
Frequenza (F): la frequenza con cui un cliente effettua un acquisto
Valore monetario (m): valore in dollari degli acquisti

Ci immergeremo un po' più in profondità nell'analisi RFM nella prossima sezione:

Facciamo un piccolo esempio in cui una banca vuole identificare i clienti chiave per la fidelizzazione / sviluppando / acquisizione.

Quindi, nello scenario precedente, dobbiamo valutare ogni cliente che ha avuto transazioni recenti con la banca su tre importanti metriche sopra menzionate R, F e M. Dopo, creare una metodologia di qualificazione per segmentare la base di clienti e fare domanda per diversi programmi di marketing.

Processo di analisi RFM

Calcoliamo il punteggio RFM per 5 clienti campione,

passo 1: Deriva R, F & M delle operazioni della banca nell'ultimo anno.

Preferibilmente, La RFM viene eseguita per i dati recenti e verrà aggiornata trimestralmente / semestralmente a seconda dell'attività

7527712-1610308

Trova R, F e M è piuttosto semplice. Diciamo che un cliente ha depositato 10 K di soldi il 1 Maggio e depositato altro 5 K the 10 giugno e se stai facendo un'analisi RFM il 1 di luglio. Ora per questo cliente, l'anzianità sarà 1 mese perché l'ultima transazione è stata a giugno e la frequenza sarà 2 perché hai fatto due depositi a maggio e giugno e M sarà 15 K

passo 2: Ottieni il punteggio per ogni cliente in base a ciascun parametro in base all'intervallo all'interno del parametro

Per la recente attualità, il più piccolo, meglio, a causa del cliente, siamo nella tua mente e per la frequenza & Monitor e valori più grandi sono migliori

5314323-6636622

Prendiamo come esempio la tabella sopra, rispetto a tutti i clienti, l'anzianità è meglio per il cliente 3, poiché è classificato come il numero 1, mentre per la frequenza è in 4° posizione e, in termini di valore, in seconda posizione.

passo 3: Standardizzare il punteggio di ciascun cliente in base a ciascun parametro (0-100)

24346123-9468920

Standardizzare = valore corrente / Max (Valore) * 100

passo 4: Ricava punteggio ponderato tramite ogni parametro per ogni cliente

Punteggio consolidato = 0.15 * R + 0.28 * F + 0.57 * m

I pesi possono essere applicati allo stesso modo o possiamo fornire pesi specifici per ciascun parametro in base alla conoscenza del dominio o all'input aziendale. Qui, nel caso precedente, Diamo più importanza alla Frequenza e al Monitoraggio.

20825234-7012388

Applichiamo semplicemente quei pesi a ciascun cliente.

Ad esempio,

Valore per il consumatore 4 = 0,15 * 40 + 0,28 * 60 + 0,57 * 60 = 57

Dopo, separiamo il punteggio in tre segmenti,

  • 0 – 50 – Cliente di basso valore
  • 50 – 75 – Cliente di valore medio
  • 76-100 – Cliente di alto valore

Ora, in base ai punteggi precedenti, un'azienda può applicare il strategia di differenziazione come ritenzione / sviluppando / acquisizione di diversi segmenti di clientela

Cosa c'è di più, la maggior parte di noi può profilare questi segmenti con caratteristiche aggiuntive come i dati demografici, modello di spesa e prodotti vari, eccetera. capirli un po' più a fondo.

Ora proviamo a implementare questa analisi RFM in Python.

Analisi RMF in Python

Questo è un caso di studio, dove stiamo utilizzando un set di dati dalla catena di vendita al dettaglio europea.

I dati di esempio sono i seguenti:

74730sampledata-2170489

Per la nostra analisi RFM, le importanti funzionalità chiave che utilizzeremo sono InvoicDate, ID cliente e per le vendite, usiamo quantità e prezzo unitario

# Importa pacchetti
importa numpy come np
importa panda come pd
tempo di importazione, avvisi
importa data e ora come dt
warnings.filterwarnings("ignorare")
# Ottieni i dati
# Leggi i dati
df=pd.read_csv("retail_data.csv")
df.head()
# Analisi RFM
** RFM ** (Recente, Frequenza, Monetario) analisi prima dobbiamo creare tre feature R , F & M dai dati
creiamo queste funzionalità
## Recente
# Per calcolare la recency, dobbiamo scoprire **quando è stato l'acquisto più recente del cliente.**.
# Crea una nuova colonna chiamata data che contiene solo la data della fattura
df['Data'] = pd.DatetimeIndex(df['Data fattura']).Data
# Raggruppa per clienti e controlla l'ultima data di acquisto
recency_df = df.groupby(per='ID cliente', as_index=Falso)['Data'].max()
recency_df.columns = ['Identificativo del cliente','Data ultimo acquisto']
# Calcola la data recente per trovare la data recente rispetto a questa data
data_recente=recency_df.LastPurshaceDate.max()
Stampa(data_recente)
# Calcola recency
recency_df['Recente'] = recency_df['Data ultimo acquisto'].applicare(lambda x: (data_recente - X).giorni)
recency_df.head()
120072-3756079

Ora allo stesso modo calcoleremo sia la frequenza che i valori monetari.

# ## Frequenza
# Per calcolare la Frequenza dobbiamo controllare **Quanto spesso un cliente effettua un acquisto**.
# Elimina duplicati
df1= df
df1.drop_duplicates(sottoinsieme=['Fattura n', 'Identificativo del cliente'], mantieni="primo", inplace=Vero)
# Calcola la frequenza degli acquisti
frequency_df = df1.groupby(per=['Identificativo del cliente'], as_index=Falso)['Fattura n'].contare()
frequency_df.columns = ['Identificativo del cliente','Frequenza']
frequency_df.head()
# ## Monetario
# Per calcolare il valore monetario **Quanti soldi ha speso il cliente durante il periodo di tempo?**
# Crea costo totale colonna
df['Costo totale'] = df['Quantità'] * df['Prezzo unitario']
moneta_df = df.groupby(per='ID cliente',as_index=Falso).agg({'Costo totale': 'somma'})
money_df.columns = ['Identificativo del cliente','Monetario']
money_df.head()
# ## Crea tabella RFM
# Unisci dataframe di recency con dataframe di frequenza
temp_df = recency_df.merge(frequency_df,on='ID cliente')
temp_df.head()
# Unisci con dataframe monetario per ottenere una tabella con il 3 colonne
rfm_df = temp_df.merge(moneta_df,on='ID cliente')
# Usa CustomerID come indice
rfm_df.set_index('Identificativo del cliente',inplace=Vero)
# Controlla la testa
rfm_df.head()
980453-6627241
# Classifica ogni metrica R , F & m
rfm_df['R_rank'] = rfm_df['Recente'].classifica( ascendente=Falso)
rfm_df['Franco'] = rfm_df['Frequenza'].classifica(ascendente=Vero)
rfm_df['M_rank'] = rfm_df['Monetario'].classifica(ascendente=Vero)
rfm_df.head()
# normalizza ogni grado con il grado massimo
rfm_df['R_rank_norm']=(rfm_df['R_rank']/rfm_df['R_rank'].max())*100
rfm_df['F_rank_norm']=(rfm_df['Franco']/rfm_df['Franco'].max())*100
rfm_df['M_rank_norm']=(rfm_df['Franco']/rfm_df['M_rank'].max())*100
rfm_df.head()
# Ora applica la nostra equazione e crea il punteggio finale **Punteggio consolidato = 0,15*R_rank_norm + 0.28*F_rank_norm + 0.57M_rank_norm**
rfm_df['Punteggio_RFM']=0.15*rfm_df['R_rank_norm']+0.28*rfm_df['F_rank_norm']+0.57*rfm_df['M_rank_norm']
rfm_df=rfm_df.round(0)
rfm_df.head()
856894-3465923
# ## Segmenti di clientela con modello RFM
# # Segmenta i clienti in base al punteggio RFM
# 0 - 50 - Cliente di basso valore
# 50 - 75 - Cliente di valore medio
# 76 - 100 - Cliente di alto valore
rfm_df["Segmento_cliente"]=np.dove(rfm_df['Punteggio_RFM'] > 75 ,"Cliente di alto valore",(np.dove(rfm_df['Punteggio_RFM'] < 50 , "Cliente di basso valore" ,"Cliente di valore medio")))
rfm_df.head()
861505-1670907

Ora che conosciamo i nostri segmenti di clientela, possiamo scegliere come orientarci o come affrontare ogni segmento.

Ad esempio:

Cliente di alto valore: Sono i tuoi clienti fedeli, quindi, per favore, fornisci loro un supporto costante tramite il servizio clienti.

Cliente di valore medio: Invia loro e-mail di vendita personalizzate e incoraggiali a comprare di più

Cliente di basso valore: Questi clienti stanno per uscire o entrare in una fase inattiva, applicare strategie di riattivazione per loro.

In Python e R abbiamo diversi pacchetti che supportano l'analisi RFM e ci sono anche diversi modi per derivare un punteggio RFM.

Spero che questo articolo ti piaccia. Buon apprendimento 🙂

Il supporto mostrato in questo articolo non è di proprietà di DataPeaker e viene utilizzato a discrezione dell'autore.

Iscriviti alla nostra Newsletter

Non ti invieremo posta SPAM. Lo odiamo quanto te.