GammaGammaModel#
- class pymc_marketing.clv.models.gamma_gamma.GammaGammaModel(data=None, *, model_config=None, sampler_config=None)[fuente]#
Modelo Gamma-Gamma para el valor monetario futuro esperado.
El modelo Gamma-Gamma asume que el gasto futuro esperado sigue una distribución Gamma, y la escala de esta distribución también está distribuida según una Gamma.
Este modelo está condicionado al valor medio de las transacciones repetidas para cada cliente y se basa en [1], [2]. Los datos deben ser resumidos por frecuencia y valor_monetario para cada cliente, utilizando
clv.rfm_summary()o equivalente.Vea
GammaGammaModelIndividualpara un modelo equivalente condicionado a los valores de transacción individuales.- Parámetros:
- datos :
DataFrameDataFrame DataFrame que contiene las siguientes columnas:
customer_id: Identificador único del clientemonetary_value: Valor medio de transacción de compras repetidas para cada clientefrequency: Número de transacciones repetidas observadas para cada cliente
- model_config :
dict, opcionalpython: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, opcionalpython:dict, opcional Diccionario de parámetros del muestreador. Por defecto es Ninguno.
- datos :
Referencias
[1]Fader, P. S., & Hardie, B. G. (2013). «El modelo Gamma-Gamma del valor monetario». https://www.brucehardie.com/notes/025/gamma_gamma.pdf
[2]Peter S. Fader, Bruce G. S. Hardie y Ka Lok Lee (2005), “RFM y CLV: Uso de curvas iso-valor para el análisis de la base de clientes”, Journal of Marketing Research, 42 (noviembre), 415-430. https://journals.sagepub.com/doi/pdf/10.1509/jmkr.2005.42.4.415
Ejemplos
import pandas as pd import pymc as pm data = pd.DataFrame( { "customer_id": [0, 1, 2, 3, ...], "monetary_value": [23.5, 19.3, 11.2, 100.5, ...], "frequency": [6, 8, 2, 1, ...], } model = GammaGammaModel( ), model_config={ "p": {"dist": "HalfNormal", kwargs: {}}, "q": {"dist": "HalfStudentT", kwargs: {"nu": 4, "sigma": 10}}, "v": {"dist": "HalfCauchy", kwargs: {"beta": 1}}, }, 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 spend of customers for which we know transaction history, conditioned on data. expected_customer_spend = ( model.expected_customer_spend( data=pandas.DataFrame( { "customer_id": [0, 1, 2, 3, ...], "monetary_value": [23.5, 19.3, 11.2, 100.5, ...], "frequency": [6, 8, 2, 1, ...], } ), ), ) print(expected_customer_spend.mean("customer_id")) # Predict spend of 10 new customers, conditioned on data new_customer_spend = model.expected_new_customer_spend(n=10) print(new_customer_spend.mean("new_customer_id"))
Métodos
GammaGammaModel.__init__([data, ...])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.
GammaGammaModel.build_model([data])Construya el modelo.
Cree atributos para los datos de inferencia.
Distribución posterior de los valores medios de gasto para cada cliente.
Distribución posterior de los valores de gasto medio para nuevos clientes.
Calcule el valor promedio de vida útil para un grupo de uno o más clientes.
Calcule el valor medio de gasto futuro esperado por cliente.
Calcule el valor medio de gasto esperado para un nuevo cliente.
GammaGammaModel.fit([data, method, fit_method])Inferir la posterior del modelo.
GammaGammaModel.fit_summary(**kwargs)Calcule el resumen del resultado del ajuste.
GammaGammaModel.graphviz(**kwargs)Obtenga la representación graphviz del modelo.
Cree los kwargs de inicialización a partir de un objeto InferenceData.
GammaGammaModel.load(fname[, check])Cree una instancia de ModelBuilder a partir de un archivo.
GammaGammaModel.load_from_idata(idata[, verificar])Cree una instancia de ModelBuilder a partir de un objeto InferenceData.
GammaGammaModel.save(fname, **kwargs)Guarde los datos de inferencia del modelo en un archivo.
GammaGammaModel.set_idata_attrs([idata])Establecer atributos en un objeto InferenceData.
GammaGammaModel.table(**model_table_kwargs)Obtenga la tabla resumen del modelo.
GammaGammaModel.thin_fit_result(keep_every)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