trazar_curva#

pymc_marketing.plot.plot_curve(curve, non_grid_names, n_samples=10, hdi_probs=None, random_seed=None, subplot_kwargs=None, sample_kwargs=None, hdi_kwargs=None, axes=None, same_axes=False, colors=None, legend=None, sel_to_string=None)[fuente]#

Trazar el IDH con muestras de la curva a través de las coordenadas.

Parámetros:
curva : xr.DataArrayxr.DataArray

Curva a graficar

non_grid_namespython:str | conjunto[python:str]

Los nombres a excluir de la cuadrícula. HDI y muestras tienen ambos valores predeterminados de hdi y cadena, dibujar, respectivamente.

n_samples : int, opcionalpython:int, opcional

Número de muestras

hdi_probs : float | list[float], opcionalpython:float | python:list[python:float], opcional

Probabilidades de HDI. Por defecto es None, lo que utiliza el valor predeterminado de arviz para stats.ci_prob, que es del 94%.

random_seed : np.random.Generator, opcionalnp.random.Generator, opcional

Generador de números aleatorios. Por defecto es None, lo que utiliza np.random.default_rng()

subplot_kwargs : dict, opcionalpython:dict, opcional

kwargs adicionales al crear la figura y los ejes

sample_kwargs : dict, opcionalpython:dict, opcional

Kwargs para la función plot_samples()

hdi_kwargs : dict, opcionalpython:dict, opcional

Kwargs para la función plot_hdi()

same_axesbool

Si todos los gráficos están en el mismo eje

colores : Iterable[str], opcionalIterable[python:str], opcional

Colores para los gráficos

leyenda : bool, opcionalbool, opcional

Si se incluye una leyenda. Por defecto es True si same_axes

sel_to_string : Callable[[Selection], str], opcionalLlamable[[Selección], python:str], opcional

Función para convertir la selección en una cadena. Por defecto, se utiliza «, «.join(f»{key}={value}» para clave, valor en sel.items())

Devoluciones:
tuple[plt.Figure, npt.NDArray[plt.Axes]]

Figura y los ejes

Ejemplos

Trazar prior para Determinista arbitrario en el modelo PyMC

import numpy as np
import pandas as pd

import pymc as pm

import matplotlib.pyplot as plt

from pymc_marketing.plot import plot_curve

seed = sum(map(ord, "Arbitrary curve"))
rng = np.random.default_rng(seed)

dates = pd.date_range("2024-01-01", periods=52, freq="W")

coords = {"date": dates, "product": ["A", "B"]}
with pm.Model(coords=coords) as model:
    data = pm.Normal(
        "data",
        mu=[-0.5, 0.5],
        sigma=1,
        dims=("date", "product"),
    )
    cumsum = pm.Deterministic(
        "cumsum",
        data.cumsum(axis=0),
        dims=("date", "product"),
    )
    idata = pm.sample_prior_predictive(random_seed=rng)

curve = idata.prior["cumsum"]

fig, axes = plot_curve(
    curve,
    "date",
    subplot_kwargs={"figsize": (15, 5)},
    random_seed=rng,
)
plt.show()

(Source code, png, hires.png, pdf)

../../_images/pymc_marketing-plot-plot_curve-1.png

Elija los intervalos de HDI y el número de muestras.

fig, axes = plot_curve(
    curve,
    "date",
    n_samples=3,
    hdi_probs=[0.5, 0.95],
    random_seed=rng,
)
fig.suptitle("Same data but fewer lines and more HDIs")
plt.show()

(Source code, png, hires.png, pdf)

../../_images/pymc_marketing-plot-plot_curve-2.png

Trazar la misma curva en los mismos ejes con colores personalizados

colors = ["red", "blue"]
fig, axes = plot_curve(
    curve,
    "date",
    same_axes=True,
    colors=colors,
    random_seed=rng,
)
axes[0].set(title="Same data but on same axes and custom colors")
plt.show()

(Source code, png, hires.png, pdf)

../../_images/pymc_marketing-plot-plot_curve-3.png