GammaGammaModeloIndividual#

class pymc_marketing.clv.models.gamma_gamma.GammaGammaModelIndividual(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 a los valores de gasto de cada compra para cada cliente y se basa en [1], [2].

Consulte GammaGammaModel para un modelo equivalente condicionado a los valores medios de transacción de las compras repetidas para la población de clientes.

Parámetros:
datos : DataFrameDataFrame

Dataframe que contiene las siguientes columnas:

  • customer_id: Identificador único del cliente

  • individual_transaction_value: Valor monetario de cada compra 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.

Referencias

[1]

Fader, P. S., y Hardie, B. G. (2013). «El modelo Gamma-Gamma del valor monetario». http://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 pymc as pm
from pymc_marketing.clv import GammaGammaModelIndividual

model = GammaGammaModelIndividual(
    data=pandas.DataFrame(
        {
        "customer_id": [0, 0, 0, 1, 1, 2, ...],
        "individual_transaction_value": [5.3. 5.7, 6.9, 13.5, 0.3, 19.2 ...],
        }
    ),
    model_config={
        "p": {dist: 'HalfNorm', kwargs: {}},
        "q": {dist: 'HalfStudentT', kwargs: {"nu": 4, "sigma": 10}},
        "v": {dist: 'HalfCauchy', kwargs: {}},
    },
    sampler_config={
        "draws": 1000,
        "tune": 1000,
        "chains": 2,
        "cores": 2,
        "nuts_kwargs": {"target_accept": 0.95},
    },
)

model.fit()
print(model.fit_summary())

# Predict spend of customers for which we know transaction history,
# conditioned on data. May include customers not included in fitting
expected_customer_spend = model.expected_customer_spend(
    data=pandas.DataFrame(
        {
        "customer_id": [0, 0, 0, 1, 1, 2, ...],
        "individual_transaction_value": [5.3. 5.7, 6.9, 13.5, 0.3, 19.2 ...],
        }
    ),
)
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

GammaGammaModelIndividual.__init__([data, ...])

Inicializar la configuración del modelo y la configuración del muestreador para el modelo.

GammaGammaModelIndividual.attrs_to_init_kwargs(attrs)

Convierte la configuración del modelo y la configuración del muestreador de los atributos a argumentos de palabra clave.

GammaGammaModelIndividual.build_from_idata(idata)

Construya el modelo a partir del objeto InferenceData.

GammaGammaModelIndividual.build_model([data])

Construya el modelo.

GammaGammaModelIndividual.create_idata_attrs()

Cree atributos para los datos de inferencia.

GammaGammaModelIndividual.distribution_customer_spend(datos)

Distribución posterior de los valores de gasto medio para cada cliente.

GammaGammaModelIndividual.distribution_new_customer_spend([...])

Distribución posterior de los valores de gasto medio para nuevos clientes.

GammaGammaModelIndividual.expected_customer_lifetime_value(...)

Calcule el valor promedio de vida útil para un grupo de uno o más clientes.

GammaGammaModelIndividual.expected_customer_spend(datos)

Calcule el valor medio de gasto futuro esperado por cliente.

GammaGammaModelIndividual.expected_new_customer_spend()

Calcule el valor medio de gasto esperado para un nuevo cliente.

GammaGammaModelIndividual.fit([data, ...])

Inferir la posterior del modelo.

GammaGammaModelIndividual.fit_summary(**kwargs)

Calcule el resumen del resultado del ajuste.

GammaGammaModelIndividual.graphviz(**kwargs)

Obtenga la representación graphviz del modelo.

GammaGammaModelIndividual.idata_to_init_kwargs(idata)

Cree los kwargs de inicialización a partir de un objeto InferenceData.

GammaGammaModelIndividual.load(fname[, check])

Cree una instancia de ModelBuilder a partir de un archivo.

GammaGammaModelIndividual.load_from_idata(idata)

Cree una instancia de ModelBuilder a partir de un objeto InferenceData.

GammaGammaModelIndividual.save(fname, **kwargs)

Guarde los datos de inferencia del modelo en un archivo.

GammaGammaModelIndividual.set_idata_attrs([idata])

Establecer atributos en un objeto InferenceData.

GammaGammaModelIndividual.table(...)

Obtenga la tabla resumen del modelo.

GammaGammaModelIndividual.thin_fit_result(...)

Devuelva una copia del modelo con un resultado de ajuste reducido.

Atributos

default_model_config

Configuración de modelo predeterminada.

default_sampler_config

Configuración de muestreador predeterminada.

fit_result

Obtenga el resultado de ajuste posterior fit_result.

id

Generar un valor hash único para el modelo.

posterior

posterior_predictive

predictions

prior

prior_predictive

version

idata

sampler_config

model_config