ModeloIndividualBetaGeoDesplazado#
- class pymc_marketing.clv.models.shifted_beta_geo.ShiftedBetaGeoModelIndividual(data=None, *, model_config=None, sampler_config=None)[fuente]#
Shifted Beta Geometric model for individual customers.
- Modelo para el comportamiento del cliente en un entorno contractual discreto. Asume que:
Al final de cada período, un cliente tiene una probabilidad
thetade renovar el contrato y1-thetade cancelarlo.La probabilidad
thetano cambia con el tiempo para un cliente dado.La probabilidad
thetavaría entre los clientes de acuerdo con una distribución a priori Beta con hiperparámetrosalphaybeta.
basado en [1].
- Parámetros:
- datos: pd.DataFrame
- DataFrame que contiene las siguientes columnas:
customer_id: Etiquetas de cliente. Debe haber una etiqueta única para cada cliente.t_churn: Tiempo en el que el cliente canceló el contrato (comenzando desde 0).
Debería ser igual a T para los usuarios que no han cancelado al final del período de observación.
T: Período de tiempo máximo observado (comenzando en 0)
- model_config: dict, opcional
Diccionario de parámetros previos del modelo. Si no se proporciona, el modelo utilizará los priors predeterminados especificados en el atributo de clase
default_model_config.- sampler_config: dict, opcional
Diccionario de parámetros del muestreador. Por defecto es None.
Referencias
[1]Fader, P. S., y Hardie, B. G. (2007). Cómo proyectar la retención de clientes. Journal of Interactive Marketing, 21(1), 76-90. https://journals.sagepub.com/doi/pdf/10.1002/dir.20074
Ejemplos
import pandas as pd import pymc as pm from pymc_extras.prior import Prior from pymc_marketing.clv import ShiftedBetaGeoModelIndividual data = pd.DataFrame({ customer_id=[0, 1, 2, 3, ...], t_churn=[1, 2, 8, 4, 8 ...], T=[8 for x in range(len(customer_id))], }) model = ShiftedBetaGeoModelIndividual( model_config={ "alpha": Prior("HalfNormal", sigma=10), "beta": Prior("HalfStudentT", nu=4, sigma=10), }, sampler_config={ "draws": 1000, "tune": 1000, "chains": 2, "cores": 2, "nuts_kwargs": {"target_accept": 0.95}, }, ) model.fit(data=data) print(model.fit_summary()) # Predict how many periods in the future are existing customers likely to cancel (ignoring that some may already have cancelled) expected_churn_time = model.distribution_customer_churn_time( customer_id=[0, 1, 2, 3, ...], ) print(expected_churn_time.mean("customer_id")) # Predict churn time for 10 new customers, conditioned on data new_customers_churn_time = model.distribution_new_customer_churn_time(n=10) print(new_customers_churn_time.mean("new_customer_id"))
Métodos
Inicializar la configuración del modelo y la configuración del muestreador para el modelo.
Convierte la configuración del modelo y la configuración del muestreador de los atributos a argumentos de palabra clave.
Construya el modelo a partir del objeto InferenceData.
Construya el modelo.
Cree atributos para los datos de inferencia.
ShiftedBetaGeoModelIndividual.distribution_customer_churn_time(...)Distribución de muestra del tiempo de cancelación para clientes existentes.
ShiftedBetaGeoModelIndividual.distribution_new_customer_churn_time([...])Distribución de muestra del tiempo de cancelación para nuevos clientes.
ShiftedBetaGeoModelIndividual.distribution_new_customer_theta([...])Distribución de muestra del parámetro theta para nuevos clientes.
ShiftedBetaGeoModelIndividual.fit([data, ...])Inferir la posterior del modelo.
Calcule el resumen del resultado del ajuste.
ShiftedBetaGeoModelIndividual.graphviz(**kwargs)Obtenga la representación graphviz del modelo.
Cree los kwargs de inicialización a partir de un objeto InferenceData.
ShiftedBetaGeoModelIndividual.load(fname[, ...])Cree una instancia de ModelBuilder a partir de un archivo.
Cree una instancia de ModelBuilder a partir de un objeto InferenceData.
ShiftedBetaGeoModelIndividual.save(fname, ...)Guarde los datos de inferencia del modelo en un archivo.
Establecer atributos en un objeto InferenceData.
Obtenga la tabla resumen del modelo.
Devuelva una copia del modelo con un resultado de ajuste reducido.
Atributos
default_model_configConfiguración de modelo predeterminada.
default_sampler_configConfiguración de muestreador predeterminada.
fit_resultObtenga el resultado de ajuste posterior fit_result.
idGenerar un valor hash único para el modelo.
posteriorposterior_predictivepredictionspriorprior_predictiveversionidatasampler_configmodel_config