MVITS#

class pymc_marketing.customer_choice.mv_its.MVITS(existing_sales, saturated_market=True, model_config=None, sampler_config=None)[source]#

Multivariate Interrupted Time Series class.

Class to perform a multivariate interrupted time series analysis with the specific intent of determining where the sales of a new product came from.

Parameters:
existing_saleslist of str

The names of the existing products.

saturated_marketbool, optional

Whether the market is saturated or not. If True, the sum of the beta’s will be 1. Else, the sum of the beta’s will be less than 1 with the remaining sales attributed to the new product.

model_configdict, optional

The model configuration. If None, the default model configuration will be used.

sampler_configdict, optional

The sampler configuration. If None, the default sampler configuration will be used.

Methods

MVITS.__init__(existing_sales[, ...])

Initialize model configuration and sampler configuration for the model.

MVITS.attrs_to_init_kwargs(attrs)

Convert the attributes of the InferenceData object to the __init__ kwargs.

MVITS.build_from_idata(idata)

Build model from the InferenceData object.

MVITS.build_model(X, y, **kwargs)

Build a PyMC model for a multivariate interrupted time series analysis.

MVITS.calculate_counterfactual([random_seed])

Calculate the counterfactual scenario of never releasing the new product.

MVITS.causal_impact([variable])

Calculate the causal impact of the new product on the existing products.

MVITS.create_fit_data(X, y)

Create the fit_data group based on the input data.

MVITS.create_idata_attrs()

Create the attributes for the InferenceData object.

MVITS.fit(X[, y, progressbar, random_seed])

Fit a model using the data passed as a parameter.

MVITS.graphviz(**kwargs)

Get the graphviz representation of the model.

MVITS.inform_default_prior(data)

Inform the default prior based on the data.

MVITS.load(fname)

Create a ModelBuilder instance from a file.

MVITS.load_from_idata(idata)

Create a ModelBuilder instance from an InferenceData object.

MVITS.plot_causal_impact_market_share([...])

Plot the inferred causal impact of the new product on the existing products.

MVITS.plot_causal_impact_sales([variable, ax])

Plot causal impact of sales.

MVITS.plot_counterfactual([variable, ...])

Plot counterfactual scenario.

MVITS.plot_data([plot_total_sales, ax])

Plot the observed data.

MVITS.plot_fit([variable, plot_total_sales, ax])

Plot the model fit (posterior predictive) of the existing products.

MVITS.post_sample_model_transformation()

Perform transformation on the model after sampling.

MVITS.predict([X, extend_idata])

Use a model to predict on unseen data and return point prediction of all the samples.

MVITS.predict_posterior([X, extend_idata, ...])

Generate posterior predictive samples on unseen data.

MVITS.predict_proba([X, extend_idata, combined])

Alias for predict_posterior, for consistency with scikit-learn probabilistic estimators.

MVITS.sample(X, y[, random_seed, ...])

Sample all the things.

MVITS.sample_posterior_predictive([X, ...])

Sample from the model's posterior predictive distribution.

MVITS.sample_prior_predictive([X, y, ...])

Sample from the model's prior predictive distribution.

MVITS.save(fname)

Save the model's inference data to a file.

MVITS.set_idata_attrs([idata])

Set attributes on an InferenceData object.

Attributes

X

default_model_config

Default model configuration.

default_sampler_config

Default sampler configuration.

fit_result

Get the posterior fit_result.

id

Generate a unique hash value for the model.

output_var

The output variable of the model.

posterior

posterior_predictive

predictions

prior

prior_predictive

version

y