Análisis RFM en retail. Empezando a segmentar clientes (I)

Pirámide de Pareto, ley del 20-80

RFM es uno de los métodos de segmentación de clientes más sencillos de implantar, y al mismo tiempo uno de los que mejores resultados aportan a corto plazo. Se basa en el célebre principio de Pareto, según la cual el 20% de los clientes de una compañía generan el 80% de los ingresos.

El RFM es la mejor manera de constatar hasta qué punto este paradigma es real en nuestro caso, y ubicar a cada cliente en su escalón de la pirámide de valor. Es decir, RFM es una técnica de segmentación basada en la dimensión comportamental del cliente.

El análisis consiste en clasificar a los clientes por su valor en función de tres variables:

Recencia. Días transcurridos desde la última compra.

Frecuencia. Número de compras por período de tiempo, como promedio. Por ejemplo, número de compras mensuales.

Money. Valor de las compras totales realizadas por el cliente en el tiempo de análisis.

Para ello, construímos escalas, basadas en estas variables, dando a cada cliente un valor según el percentil en que se encuentra (percentiles = n grupos de igual tamaño, o nº de clientes). Lo más habitual es trabajar con 5 valores (quintiles), aunque no es raro el uso de 10 valores (deciles), sobre todo en venta directa y online.

Por ejemplo, un cliente que estuviera entre el 20% de los que más recientemente han comprado, en el 2º 20% por frecuencia de compra y el 4º 20% en valor total de compras, se le asignaría el segmento 124,  (R)5 (F)4 (M)2. Lo vemos en el gráfico:

 

RFM. Asignación de valores y segmento a un cliente

El gráfico siguiente muestra cómo se distribuye la venta de una enseña de comercio minorista, en función del segmento de valor monetario M al que pertenecen los clientes. Efectivamente, refleja la distribución 20/80 (ligeramente reducida, como suele ocurrir al llevar los paradigmas a la práctica).

RFM_clientes_vs_ventas

 

El análisis RFM presenta claros beneficios tanto en la segmentación estratégica como táctica de clientes en retail:

  • sencillez de interpretación y aplicación
  • relativa sencillez de cálculo, frente a técnicas multivariantes
  • se integra fácilmente en las dinámicas promocionales habituales en un área de marketing y es ideal para marketing directo y marketing relacional: ¿a qué segmentos dirijo qué comunicación? o ¿qué segmentos responden mejor a la oferta?
  • dado que los modelos de abandono son complicados de ajustar en retail, el trabajo continuo sobre la recencia de compra es un medio excelente de reducción de abandono a medio plazo
  • por todo lo anterior, se presenta como un magnífico punto de partida cuando nos enfrentamos a la segmentación de clientes sin un aprendizaje previo, y con la necesidad de aplicarla inmediatamente

La segmentación táctica y medición de retorno de acciones por canales directos es una de las aplicaciones más usuales de este tipo de análisis. A continuación mostramos unos ejemplos de análisis de respuesta a emails basados en RFM.

fuente: http://www.dbmarketing.com/articles/Art148.htm

RFM. Tasa de respuesta mkt dto por frecuencia

fuente: http://www.dbmarketing.com/articles/Art148.htm

Rápidamente apreciamos en el ejemplo cómo el quintil 5 de recencia, es decir el 20% de clientes qué han comprado hace menos tiempo, presenta una tasa de respuesta de 3,49%, lo que casi triplica la tasa del siguiente, quintil. La recencia ha constituído en este caso una excelente variable para predecir la respuesta, y podríamos en sucesivas acciones centrarnos este 20% si buscamos la máxima tasa de respuesta. Si nos fijamos en la frecuencia, también la tasa de respuesta mayor correspondel al quintil 5, y hay una caída de la misma según bajamos de quintil, pero la influencia de la frecuencia en la respuesta es claramente menor.

Y más aplicaciones, como análisis de comportamiento de clientes por categorías, por temporadas y campañas, por tipo de pdv o implantación, integración de la dimensión espacial en análisis RFML (Location)… pero todo esto ya es materia suficiente para otro post.

Como siempre, esperamos vuestras opiniones, sugerencias, críticas. A vuestra disposición.

Análisis RFM en retail. Empezando a segmentar clientes (I) was last modified: agosto 30th, 2023 by Guillermo Córdoba
The following two tabs change content below.

Guillermo Córdoba

Licenciado en sociología, llevo más de 15 años en esto de la inteligencia de clientes. Me interesa la integración de visiones, disciplinas y técnicas orientadas a un mejor conocimiento de cada consumidor. Creo en el trabajo en red y multidisciplinar, como solución a los nuevos retos que la relación con el cliente plantea. A tu disposición, si puedo ayudarte.

28 thoughts on “Análisis RFM en retail. Empezando a segmentar clientes (I)

  1. De la pregunta anterior ya resolví la situación por segundo y cuarto se refería a conteo de 5 en descendente. Disculpe, por favor haga caso omiso a mi pregunta anterior no supe como borrarla. Gracias

  2. En su gráfico la primer columna representa R o recencia con 5, pero en la segunda habla de frecuencia y su planteamiento dice 2do 20% ,para un 4to en valor total de compras que está en la columna 3. Entonces no sería (R)5 (F)2 (M)4 ? Y entonces sería frecuencia baja e importe alto. Podría explicarme? y también de donde determina el 124? porfavor

  3. Hola Andrea, en el ejemplo son quintiles, sí. De manera general, percentiles -puedes usar también deciles, por ejemplo, o centiles si quisieras montar sistemas de segmentación automática con mucha granularidad en bases de datos grandes

  4. Hola, qué técnica se usa para un RFM? es un árbol de decisión, clúster? Son quintiles, cuál se diría que es la técnica usada?

  5. Buen trabajo amigo, tengo una duda la Recency (R) agrupa en el valor 5 a los clientes que realizaron al menos una compra en los ultimos días del corte de fecha que estamos trabajando. ¿Ahora bien, si yo necesito calcular con que velocidad llegan los clientes a comprar en un periodo de 30 días?

    Ejemplo: El hombre X compra en 30 días 4 veces a la semana con una distancia promedio entre días de 7 días.

  6. hola Hernán, no te acabo de entender, no hay una base de datos en concreto, ni es imprescindible SPSS para calcular un RFM.

    Es cierto que, si no SPSS «clásico», SPSS Clementine, ahora IBM PAWS Modeler, tiene un par de nodos que directamente preparan los datos y ejecutan un RFM, lo cual es muy práctico para probar diferentes aproximaciones -número de segmentos, tratamiento de repeticiones, refinamiento de la Recencia con más de una observación…

    No sé si te refieres a esto.

  7. Como puedo obtener la base de datos en spss donde realizaron el analisis

  8. hola Gabriela, disculpa que tarde en responder, con lo que me cuentas no es fácil darte una respuesta concreta.

    Si tu empresa comercializa cursos, entiendo que la repetición es baja, con lo que un enfoque puro RFM quizá no tenga demasiado sentido, porque es probable que gran parte de los clientes no hayan repetido nunca.

    Yo no descartaría métricas de repetición e importe, pero añadiría las relacionadas con contenidos, relación entre cursos realizados, formación previa del alumno, otro cursos de materias relacionadas que ofertéis. Y daría peso al canal, origen del lead si es online, coste de adquisición…
    También trabajaría la prescripción, testimoniales, acciones tipo member get member.

    Espero que esto te sirva, no sé si responde exactamente a tu pregunta. Un saludo.

  9. Estimado muy bueno sobre RFM pude conocer este termino cuando me vincule a trabajos de Sector Finanzas, solo se puede hacer con windowing function o también spss, algunas empresas no tiene la versión sql server 2008

    saludos cordiales

  10. Buen día, en base a su información yo estoy realizando un análisis de RFM a la empresa para la cual trabajo, quisiera por favor me pudieran orientar en cómo empezar, los datos de clientes que tengo son a partir de las facturas de compras y para conocer el perfil del consumidor cuento con formularios de inscripción que el cliente brinda, pues la empresa se dedica a impartir cursos de programación. La finalidad de esto es poder aplicar estrategias de marketing mix para realizar campañas, atraer nuevos clientes, mantener los actuales. de antemano gracias!!

  11. Hola José, no lo he mirado a fondo pero sí, por ahí van los tiros, seguro que así creas un RFM completo con una sola query. Gracias por el código. Lo importante es recordar que buscamos TILES de igual nº de clientes, no dividir el rango de la distribución en 5 tramos iguales.

    A ver si redacto un ejemplo sobre LRFM, pero sobre tu query podrías meter la «L» creando TILES de distancia al punto de venta más cercano, o por tiempo de desplazamiento para refinar un poco más. Y ya tienes tu RFML. Claro, tendrías que calcular esta variable espacial por fuera, o usar extensión espacial DEL RDBMS, tipo postGIS. MySQL ya tiene dato espacial, por supuesto Oracle, SQL Server también.

  12. Gracias por la respuesta Guillermo,

    En este capítulo Data Mining Using RFM Analysis del libro Knowledge-Oriented Applications in Data Mining vienen usos muy interesantes del análisis RFM.

    Respecto a lo que comentabas en tu respuesta. Yo lo que suelo hacer es crearme un customer view o customer signature con la información más relevante a nivel de cliente y una vez generado ese fichero, obtengo las quintiles de Recency, Frequency y Monetary que puedo especificar, por ejemplo, a una determinada categoría de productos pues previamente me he creado un pedidos_Salud, pedidos_Fitness,…

    Como bien decías, en una comentario tuyo anterior en esta entrada, con SQL y sobre todo haciendo uso de la windowing functions es prácticamente directo la obtención de estas medidas:

    SELECT
    CS.Cliente_ID
    ,Recency_todas
    ,Recency_Liquidado
    ,control_compras.Num_Compras
    ,control_compras.Num_Transacciones
    ,Situacion_Liquidado_18Meses
    ,NTILE(5) OVER(order by (CASE WHEN recency_todas<recency_liquidado and recency_todas<45 then recency_todas WHEN recency_liquidado is null then recency_todas else recency_liquidado end) DESC) AS NTile_R
    ,NTILE(5) OVER(order by control_compras.Num_Compras) AS NTile_F
    ,NTILE(5) OVER(order by Situacion_Liquidado_18Meses) AS NTile_F2
    ,cs.Monetary_Tot
    ,cs.Monetary_AVG
    ,NTILE(5) OVER(order by Monetary_Tot) AS NTile_M
    ,NTILE(5) OVER(order by Monetary_Avg) AS NTile_M2
    ,contactos_OutBound
    ,Ratio_Exito_Outbound
    ,cs.Ultima_Familia
    ,cs.Ultima_Categoria
    ,cs.Ultimo_Producto
    ,cs.ultimo_producto_todas
    ,cs.Ultimo_canal_venta
    ,(
    cast(NTILE(5) OVER(order by (CASE WHEN recency_todas<recency_liquidado and recency_todas<45 then recency_todas WHEN recency_liquidado is null then recency_todas else recency_liquidado end) DESC) as nvarchar(1))
    +
    cast(NTILE(5) OVER(order by Situacion_Liquidado_18Meses) as nvarchar(1))
    +
    cast(NTILE(5) OVER(order by Monetary_Avg) as nvarchar(1))
    ) AS RFM
    FROM
    dbo.customersignature cs

    Si más adelante añadieras algo con respecto de Location te lo agradecíamos.

    Genial trabajo el de tu blog. Nuevamente gracias.

    José.

  13. Hola José,

    pensaba sobre todo en cruzar un RFM “general”, para un período amplio, con la actividad o no de clientes en campañas relevantes del negocio -navidad, rebajas, inicio de verano, vuelta al cole…-. Y efectivamente, como dices, lo mismo para las principales categorías. De esta manera conseguimos dos “fotos” muy interesantes de cómo se comportan los diferentes grandes tipos de clientes -RFM- partiendo en negocio por la dimensión tiempo -campañas- y producto -categorías-.

    De todos modos, tengo pendiente un post explicando este tipo de aplicaciones que apunto al final del post.+

    Espero que se entienda, ¿gracias por tu comentario!

  14. Hola Guillermo,

    Enhorabuena por la entrada.

    Un comentario. Con respecto a lo que comentabas del análisis de comportamiento de clientes por categorías, por temporadas, campañas, RFML,… ¿te referías a crear distintas variables RFM por ejemplo para cada comunidad autonoma, provincia,…? ¿lo mismo para categorías de productos, temporadas,…?

    Saludos,

    José.

  15. Hola Guillermo, la verdad es que no lo he calculado nunca en excel, suelo hacerlo en BD. Pero sería tan sencillo como ordenar los clientes con criterio creciente, para cada variable Recencia, Frecuencia, Monetario, asignar un autonumérico, y a partir de él asignar el valor del grupo a cada cliente.
    Por ejemplo, si tenemos 100.000 clientes y queremos 5 tramos por variable, los 20k primeros tendrán 1, los 20k siguientes 2… los 20k últimos 5.
    Así con las 3 variables, con ello cada cliente tiene su valor RFM, y ya podemos o bien generar una combinación de los tres, o bien simplemente cruzar los 5x5x5 segmentos con los comportamientos que midamos: bajas, respuesta a campañas…
    Espero que se entienda. Muy agradecido por tu amable comentario, me alegro mucho de que te resulte interesante el post.

  16. Estimado, espero pueda contactarse conmigo. Quisiera saber si existe alguna forma de hacer el analisis en excel y si es así, si me puede apoyar a realizarlo. Se lo agradezco mucho.

    Abrazo y exelente material!!

  17. Buenas Guillermo,

    Antes de nada felicitarle por el interesantísimo blog.
    Mi correo es alberto.espinos@gmail.com y estaría muy interesado en compartir con usted, debido a su gran experiencia en BD y segmentación, algunas dudas que me han surgido durante la realización de un proyecto universitario con perspectivas de futuro.

    Espero pueda contactar conmigo e intercambiar opiniones.

    Saludos

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.