saturation#

Saturation transformations for the MMM model.

Each of these transformations is a subclass of pymc_marketing.mmm.components.saturation.SaturationTransformation and defines a function that takes media and return the saturated media. The parameters of the function are the parameters of the saturation transformation.

Examples#

Create a new saturation transformation:

from pymc_marketing.mmm import SaturationTransformation
from pymc_marketing.prior import Prior

class InfiniteReturns(SaturationTransformation):
    lookup_name: str = "infinite_returns"

    def function(self, x, b):
        return b * x

    default_priors = {"b": Prior("HalfNormal", sigma=1)}

Plot the default priors for a saturation transformation:

from pymc_marketing.mmm import HillSaturation

import matplotlib.pyplot as plt

saturation = HillSaturation()
prior = saturation.sample_prior()
curve = saturation.sample_curve(prior)
saturation.plot_curve(curve)
plt.show()

Define a hierarchical saturation function with only hierarchical parameters for saturation parameter of logistic saturation.

from pymc_marketing.prior import Prior
from pymc_marketing.mmm import LogisticSaturation

hierarchical_lam = Prior(
    "Gamma",
    alpha=Prior("HalfNormal"),
    beta=Prior("HalfNormal"),
    dims="channel",
)
priors = {
    "lam": hierarchical_lam,
    "beta": Prior("HalfNormal", dims="channel"),
}
saturation = LogisticSaturation(priors=priors)

Functions

saturation_from_dict(data)

Get a saturation function from a dictionary.

Classes

HillSaturation([priors, prefix])

Wrapper around Hill saturation function.

HillSaturationSigmoid([priors, prefix])

Wrapper around Hill saturation sigmoid function.

InverseScaledLogisticSaturation([priors, prefix])

Wrapper around inverse scaled logistic saturation function.

LogisticSaturation([priors, prefix])

Wrapper around logistic saturation function.

MichaelisMentenSaturation([priors, prefix])

Wrapper around Michaelis-Menten saturation function.

RootSaturation([priors, prefix])

Wrapper around Root saturation function.

SaturationTransformation([priors, prefix])

Subclass for all saturation transformations.

TanhSaturation([priors, prefix])

Wrapper around tanh saturation function.

TanhSaturationBaselined([priors, prefix])

Wrapper around tanh saturation function.