NestedLogit#
- class pymc_marketing.customer_choice.nested_logit.NestedLogit(choice_df, utility_equations, depvar, covariates, nesting_structure, model_config=None, sampler_config=None, alphas_nests=False)[fuente]#
Clase Nested Logit.
Clase para realizar un análisis de logit anidado con la intención específica de determinar los efectos de los atributos del producto en la preferencia del consumidor. La implementación aquí se basa en una discusión en el libro de Kenneth Train «Discrete Choice Methods with Simulation» Segunda Edición de 2009. Una discusión útil sobre el modelo también se puede encontrar en el libro de Paez y Boisjoly «Discrete Choice Analysis with R» de 2022.
- Parámetros:
- choice_df
pd.DataFrame Un DataFrame amplio donde cada fila es un escenario de elección. Los atributos específicos del producto se almacenan en columnas, y la variable dependiente identifica el producto elegido.
- utility_equations :
listdeformulastringspython:lista de cadenas de fórmulas Una lista de fórmulas que especifican cómo modelar la utilidad de cada alternativa de producto. Las fórmulas deben estar en notación de estilo Wilkinson y permitir que el producto objetivo se especifique como una función de los atributos específicos de la alternativa y los atributos específicos del individuo: target_product ~ target_attribute1 + target_attribute2 | individual_attribute
- depvar
str El nombre de la variable dependiente en el choice_df.
- covariables :
listdestrpython:lista de python:str Nombres de covariables (por ejemplo, [“X1”, “X2”])
- estructura_anidada: dict
Dictionary to specify how to nest the choices between products. Single-layer nesting only. For more complex substitution patterns, consider using MixedLogit instead.
- model_config :
dict, opcionalpython:dict, opcional Configuración del modelo. Si es None, se utiliza la configuración predeterminada.
- sampler_config :
dict, opcionalpython:dict, opcional Configuración del muestreador. Si es None, se utiliza la configuración predeterminada.
- choice_df
Notas
Ejemplo:#
El formato de
choice_df:Depvar
alt_1_X1
alt_1_X2
alt_2_X1
alt_2_X2
alt_1
2.4
4.5
5.4
6.7
alt_2
3.5
6.7
2.3
8.9
Ejemplo de lista
utility_equations:utility_equations = [ "alt_1 ~ X1_alt1 + X2_alt1 | income", "alt_2 ~ X1_alt2 + X2_alt2 | income", "alt_3 ~ X1_alt3 + X2_alt3 | income", ]
Example nesting structure (single-layer only):
nesting_structure = { "Land": ["alt_1", "alt_2"], "Air": ["alt_3"], }
Métodos
NestedLogit.__init__(choice_df, ...[, ...])Inicializar la configuración del modelo y la configuración del muestreador para el modelo.
NestedLogit.apply_intervention(nuevo_choice_df)Aplique uno de los dos tipos de intervención.
Convierte la configuración del modelo y la configuración del muestreador de los atributos a argumentos de palabra clave.
NestedLogit.build_from_idata(idata)Build model from loaded InferenceData.
NestedLogit.build_model(**kwargs)Build model using stored choice_df and utility_equations.
Calculate conditional probability within a nest.
NestedLogit.calculate_share_change(idata, ...)Calcular la diferencia en la cuota de mercado debido a la intervención en el mercado.
Cree los atributos para el objeto InferenceData.
NestedLogit.fit([choice_df, ...])Fit the discrete choice model.
NestedLogit.graphviz(**kwargs)Obtenga la representación graphviz del modelo.
Cree la configuración del modelo y la configuración del muestreador a partir de InferenceData como argumentos de palabra clave.
NestedLogit.load(fname[, check])Cree una instancia de ModelBuilder a partir de un archivo.
NestedLogit.load_from_idata(idata[, check])Cree una instancia de ModelBuilder a partir de un objeto InferenceData.
Create coefficients for alternative-specific covariates.
NestedLogit.make_fixed_coefs(X_fixed, n_obs, ...)Create alternative-varying coefficients for fixed (non-varying) covariates.
Create alternative-specific intercepts with reference alternative set to zero.
Create nest-specific lambda (scale) parameters.
NestedLogit.make_model(X, W, y)Build nested logit model.
NestedLogit.make_nest_probs(U, lambdas, ...)Calculate nest selection probabilities and conditional probabilities.
NestedLogit.parse_formula(df, fórmula, var_dep)Analice la estructura de tres partes de una especificación de fórmula.
NestedLogit.plot_change(change_df[, título, ...])Cambio de trama inducido por una intervención en el mercado.
NestedLogit.prepare_X_matrix(df, ...)Prepare la matriz X para las ecuaciones de utilidad.
NestedLogit.preprocess_model_data(choice_df, ...)Preprocesar las entradas de iniciación del modelo en un formato que pueda ser utilizado por el modelo PyMC.
NestedLogit.sample([...])Muestrea todas las cosas.
Sample from posterior predictive distribution.
Sample from prior predictive distribution.
NestedLogit.save(fname, **kwargs)Guarde los datos de inferencia del modelo en un archivo.
NestedLogit.set_idata_attrs([idata])Establecer atributos en un objeto InferenceData.
NestedLogit.table(**model_table_kwargs)Obtenga la tabla resumen del modelo.
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.
output_varLa variable de salida del modelo.
posteriorposterior_predictivepredictionspriorprior_predictiveversionidatasampler_configmodel_config