Analyse RFM | Valeur à vie du client par analyse RFM

Contenu

introduction

Quatre-vingt pour cent de notre activité provient de 20% de nos clients.

Frais 10 fois moins de vendre à un client existant que de trouver un nouveau client

T

98834capture-8983678

Dans notre indice de acciones, BONJOUR 50 définit comment notre marché boursier se comporte de manière similaire, dans les affaires, il est important de comprendre qui sont vos principaux clients qui fournissent des flux de revenus constants et croissants à votre entreprise.

L'une des méthodologies simples et efficaces généralement utilisées pour calculer la valeur client sur une période de temps est la RFM., Qu'est que c'est,

Récence (R): depuis combien de temps un client a effectué un achat
La fréquence (F): combien de fois un client fait un achat
Valeur monétaire (M): valeur en dollars des achats

Nous approfondirons un peu l'analyse RFM dans la section suivante:

Prenons un petit exemple où une banque souhaite identifier des clients clés à fidéliser / développement / acquisition.

Ensuite, dans le scénario précédent, nous devons évaluer chaque client qui a effectué des transactions récentes avec la banque sur trois paramètres importants mentionnés ci-dessus R, F et M. Alors, créer une méthodologie de qualification pour segmenter la clientèle et postuler à différents programmes marketing.

Processus d'analyse RFM

Calculons le score RFM pour 5 exemples de clients,

Paso 1: Déduire R, F & M des transactions de la banque au cours de la dernière année.

De préférence, RFM est fait pour les données récentes et sera mis à jour trimestriellement / semestriellement selon l'activité

7527712-1610308

Trouver R, F et M est assez simple. Disons qu'un client a déposé 10 K d'argent le 1 mai et déposé d'autres 5 K le 10 juin et si vous effectuez une analyse RFM, le 1 de juillet. Maintenant pour ce client, l'ancienneté sera 1 mois car la dernière transaction a eu lieu en juin et la fréquence sera 2 car vous avez effectué deux dépôts en mai et juin et M sera 15 K

Paso 2: Obtenez le score de chaque client en fonction de chaque paramètre en fonction de la plage au sein du paramètre

Para récence, le plus petit, mieux, à cause du client, nous sommes dans votre esprit et pour la fréquence & Le moniteur et les valeurs plus grandes sont meilleurs

5314323-6636622

Prenons le tableau ci-dessus comme exemple, par rapport à tous les clients, l'ancienneté est meilleure pour le client 3, puisqu'il est classé comme le nombre 1, alors que pour la fréquence il est en 4ème position et, en termes de valeur, en 2ème position.

Paso 3: Standardiser le score de chaque client en fonction de chaque paramètre (0-100)

24346123-9468920

Standardiser = valeur actuelle / Max (Valeur) * 100

Paso 4: Déduire le score pondéré via chaque paramètre pour chaque client

Note consolidée = 0.15 * R + 0.28 * F + 0.57 * M

Les pondérations peuvent être appliquées de manière égale ou nous pouvons fournir des pondérations spécifiques pour chaque paramètre en fonction de la connaissance du domaine ou des données commerciales. Ici, dans le cas précédent, Nous accordons plus d'importance à la fréquence et au suivi.

20825234-7012388

Nous appliquons simplement ces poids à chaque client.

Par exemple,

La valeur client 4 = 0,15 * 40 + 0,28 * 60 + 0,57 * 60 = 57

Alors, nous séparons le score en trois segments,

  • 0 – 50 – Client de faible valeur
  • 50 – 75 – Client de valeur moyenne
  • 76-100 – Client de grande valeur

À présent, basé sur les notes précédentes, une entreprise peut appliquer le stratégie de différenciation comme rétention / développement / acquisition de différents segments de clientèle

En outre, la plupart d'entre nous peuvent profiler ces segments avec des caractéristiques supplémentaires comme la démographie, modèle de dépenses et divers produits, etc. les comprendre un peu plus.

Essayons maintenant d'implémenter cette analyse RFM en Python.

Analyse RMF en Python

Ceci est une étude de cas, où nous utilisons un ensemble de données de la chaîne de distribution européenne.

Les exemples de données sont les suivants:

74730sampledata-2170489

Pour notre analyse RFM, les fonctionnalités clés importantes que nous utiliserons sont InvoicDate, CustomerID et pour les ventes, nous utilisons la quantité et le prix unitaire

# Importer des packages
importer numpy en tant que np
importer des pandas au format pd
heure d'importation, mises en garde
importer la date et l'heure en tant que dt
warnings.filterwarnings("ignorer")
# Obtenez les données
# Lire les données
df=pd.read_csv("retail_data.csv")
df.head()
# RFM Analysis
**RFM** (Récence, La fréquence, Monétaire) analyse nous devons d'abord créer trois fonctionnalités R , F & M à partir des données
créons ces fonctionnalités
## Récence
# Pour calculer la récence, nous devons découvrir **quand était le dernier achat du client.**.
# Créez une nouvelle colonne appelée date qui contient uniquement la date de la facture
df['Date'] = pd.DatetimeIndex(df[« Date de la facture »]).Date
# Regrouper par clients et vérifier la dernière date d'achat
recency_df = df.groupby(par='CustomerID', as_index=Faux)['Date'].max()
recency_df.columns = ['N ° de client','Dernier PurshaceDate']
# Calculer la date récente pour trouver la récence par rapport à cette date
recent_date=recency_df.LastPurshaceDate.max()
imprimer(date_récente)
# Calculer la récence
récence_df['Récence'] = récence_df['Dernier PurshaceDate'].appliquer(lambda x: (date_récente - X).jours)
recency_df.head()
120072-3756079

Maintenant, de la même manière, nous allons calculer à la fois la fréquence et les valeurs monétaires.

# ## La fréquence
# Pour calculer la fréquence, nous devons vérifier **Combien de fois un client effectue un achat**.
# Supprimer les doublons
df1= df
df1.drop_duplicates(sous-ensemble =[« Non de facture », 'N ° de client'], garder ="premier", inplace=Vrai)
# Calculer la fréquence des achats
fréquence_df = df1.groupby(par=['N ° de client'], as_index=Faux)[« Non de facture »].compter()
fréquence_df.columns = ['N ° de client','La fréquence']
fréquence_df.head()
# ## Monétaire
# Pour calculer la valeur monétaire ** Combien d'argent le client a-t-il dépensé pendant la période?**
# Créer le coût total de la colonne
df['Coût total'] = df['Quantité'] * df['Prix unitaire']
monétaire_df = df.groupby(par='CustomerID',as_index=Faux).agglutiné({'Coût total': 'somme'})
monétaire_df.columns = ['N ° de client','Monétaire']
monetaire_df.head()
# ## Créer un tableau RFM
# Fusionner la trame de données de récence avec la trame de données de fréquence
temp_df = recency_df.merge(fréquence_df,on='CustomerID')
temp_df.head()
# Fusionner avec le cadre de données monétaires pour obtenir un tableau avec le 3 Colonnes
rfm_df = temp_df.merge(monétaire_df,on='CustomerID')
# Utiliser CustomerID comme index
rfm_df.set_index('N ° de client',inplace=Vrai)
# Vérifiez la tête
rfm_df.head()
980453-6627241
# Classez chaque métrique R , F & M
rfm_df['R_rang'] = rfm_df['Récence'].rang( ascendant=Faux)
rfm_df['Franc'] = rfm_df['La fréquence'].rang(ascendant=Vrai)
rfm_df['M_rang'] = rfm_df['Monétaire'].rang(ascendant=Vrai)
rfm_df.head()
# normaliser chaque rang avec le rang Max
rfm_df['R_rank_norm']=(rfm_df['R_rang']/rfm_df['R_rang'].max())*100
rfm_df['F_rank_norm']=(rfm_df['Franc']/rfm_df['Franc'].max())*100
rfm_df['M_rank_norm']=(rfm_df['Franc']/rfm_df['M_rang'].max())*100
rfm_df.head()
# Appliquez maintenant notre équation et créez le score final ** Score consolidé = 0,15 * R_rank_norm + 0.28*F_rank_norm + 0.57M_rank_norm**
rfm_df['RFM_Score']=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.ronde(0)
rfm_df.head()
856894-3465923
# ## Segments de clientèle avec le modèle RFM
# # Segmenter les clients en fonction du score RFM
# 0 - 50 - Client peu valorisé
# 50 - 75 - Client de valeur moyenne
# 76 - 100 - Client de grande valeur
rfm_df["Client_segment"]=np.où(rfm_df['RFM_Score'] > 75 ,"Client de grande valeur",(np.où(rfm_df['RFM_Score'] < 50 , "Client de faible valeur" ,"Client de valeur moyenne")))
rfm_df.head()
861505-1670907

Maintenant que nous connaissons nos segments de clientèle, nous pouvons choisir comment nous orienter ou traiter chaque segment.

Par exemple:

Client de grande valeur: Ce sont vos clients fidèles, alors s'il vous plaît donnez-leur un soutien constant par le biais du service client.

Client de valeur moyenne: Envoyez-leur des e-mails de vente personnalisés et encouragez-les à acheter plus

Client de faible valeur: Ces clients sont sur le point de quitter ou d'entrer dans une phase inactive, appliquer des stratégies de réactivation pour eux.

En Python et R, nous avons plusieurs packages qui prennent en charge l'analyse RFM et il existe également plusieurs façons de dériver un score RFM.

J'espère que cet article vous plaira. Bon apprentissage

Les médias présentés dans cet article ne sont pas la propriété de DataPeaker et sont utilisés à la discrétion de l'auteur.

Abonnez-vous à notre newsletter

Nous ne vous enverrons pas de courrier SPAM. Nous le détestons autant que vous.