Définir des nœuds

Fonctionnement de l'argument knots

Meridian utilise une approche à intercept aléatoire pour modéliser les effets temporels (Spline (mathématiques), Wikipédia). Ng, Wang et Dai. 2021). Cette approche modélise les effets temporels \(\mu = [\mu_1, \dots, \mu_T]\) pour chacune des périodes \(T\)(une MMM au niveau hebdomadaire sur trois ans comporte \(52 \times 3\) périodes). Les effets temporels \(T\) sont modélisés avec potentiellement moins de \(T\)paramètres à l'aide de la relation suivante :

\[\mu = W \ast b\]

Où :

  • \(\mu\) est \(1 \times T\) représentant l'effet de chaque période où \(t=1, \dots ,T\), \(W\) est une matrice de pondération déterministe \(T \times K\) ;

  • \(b\) (appelé knot_values dans Meridian) correspond à \(K \times 1\)où \(K \leq T\).

L'inférence bayésienne a posteriori est effectuée sur \(b\), qui est traduit en termes de\(\mu\) selon la matrice de pondération \(W\). Le nombre de nœuds \(K\)est déterminé par l'entrée utilisateur. La matrice de pondération \(W\) est déterminée par la distance L1 entre une période et les deux nœuds voisins.

Pour comprendre comment la distance L1 détermine la matrice de pondération, considérons la période\(9\), où les deux nœuds voisins sont respectivement à \(6\) et \(11\). La distance L1 entre la période \(9\) et le nœud \(11\) est \(2\). La distance L1 entre la période \(9\) et le nœud \(6\) est \(3\). Ainsi, le nœud à \(6\)obtient la pondération \(0.4 = 1 - \frac{3}{2+3} \) et le nœud à \(11\) obtient la pondération\(0.6 = 1 - \frac{2}{2+3} \). La moyenne pondérée de ces deux nœuds voisins détermine la valeur de \(\mu_9\).

Notez que lorsque knots < n_times, il existe un certain niveau de réduction de la dimensionnalité. Les périodes n_times sont modélisées avec un nombre de paramètres inférieur à n_times. La fonction de pondération détermine la manière dont les périodes sont combinées.

Paramètres des nœuds par défaut dans Meridian

Par défaut, l'argument knots dans ModelSpec est défini sur None, et enable_aks est défini sur False. Lorsque knots = None, Meridian définit automatiquement le nombre de nœuds selon le niveau d'exécution du modèle : géographique ou national.

  • Les modèles au niveau géographique sont définis par défaut sur knots = n_times : ils comportent plusieurs observations (une par zone géographique) pour chaque période. La définition de knots = n_times est donc mathématiquement identifiable. Cela offre au modèle une flexibilité maximale pour s'adapter aux facteurs de confusion temporels, ce qui minimise le biais dans les estimations causales. Si vous constatez une variance dépassant le niveau acceptable, vous pouvez réduire manuellement le nombre de nœuds ou utiliser AKS.
  • Les modèles au niveau national sont définis par défaut sur knots = 1 : ils ne comportent qu'une seule observation par période. Un modèle avec knots = n_times serait complètement saturé et non identifiable. Si vous définissez knots = 1, les effets temporels sont limités à un seul intercept constant, ce qui sert de référence claire et à faible variance. Vous pouvez augmenter progressivement le nombre de nœuds pour capturer la saisonnalité en fonction des degrés de liberté.

Sélection automatique des nœuds (AKS)

Le choix des nœuds peut être difficile, car il nécessite d'équilibrer le compromis entre biais et variance pour une inférence causale fiable, d'intégrer le contexte métier pour représenter précisément l'influence du temps sur les médias et les KPI, et d'accepter les essais et les erreurs dans le processus itératif d'ajustement du modèle.

Pour relever ces défis, Meridian propose une fonctionnalité de sélection automatique des nœuds (AKS, Automatic Knot Selection). Nous vous recommandons de commencer par AKS pour la plupart des cas d'utilisation, car cela évite toute approximation en automatisant le processus de sélection des nœuds.

Utiliser la sélection automatique des nœuds

Pour activer AKS dans votre modèle Meridian, définissez le paramètre enable_aks sur True dans ModelSpec.

from meridian.model import model
from meridian.model import spec

# `data` is an `InputData` object
model_spec = spec.ModelSpec(enable_aks=True)
mmm = model.Meridian(input_data=data, model_spec=model_spec)

Une fois AKS activé dans ModelSpec, vous pouvez récupérer la liste des nœuds sélectionnés par Meridian.

knot_info = mmm.knot_info
selected_knots = knot_info.knot_locations

Après avoir activé AKS dans ModelSpec, il est toujours judicieux d'examiner les nœuds sélectionnés pour vous assurer qu'ils sont cohérents par rapport à vos données.

Fonctionnement d'AKS

Cette fonctionnalité s'inspire de la méthodologie décrite dans Spline Regression with Automatic Knot Selection, mais elle comporte plusieurs améliorations spécifiques à Meridian. En substance, l'algorithme utilise la base de spline linéaire pour modéliser la relation entre le temps (nœuds) et la variable de résultat mise à l'échelle. Il utilise une approche d'élimination progressive, en commençant par un ensemble complet de nœuds potentiels et en supprimant séquentiellement ceux qui n'améliorent pas l'ajustement du modèle. Cet ajustement est évalué à l'aide d'une méthode de régularisation, qui pénalise le modèle en cas de complexité inutile (nombre de nœuds). L'introduction d'une pénalité basée sur les zones géographiques constitue une modification clé de la version de Meridian. Elle favorise l'augmentation du nombre de nœuds à mesure que le nombre de zones géographiques augmente dans les données. En effet, plus il y a de zones géographiques, plus il y a de données disponibles pour chaque période. L'ensemble optimal final de nœuds est déterminé à l'aide du critère d'information d'Akaike (AIC, Akaike Information Criterion) pour s'assurer que le modèle capture précisément les tendances et les schémas de saisonnalité.

Avancé : ajuster le paramètre de pénalité AKS

L'algorithme AKS peut parfois sélectionner un nombre élevé de nœuds. Cela peut poser problème pour les modèles nationaux ou ceux avec un petit nombre de zones géographiques, où les données disponibles pour chaque période sont limitées. Si vous constatez un nombre de nœuds anormalement élevé dans de tels cas, vous pouvez appeler la fonction automatic_knot_selection() pour ajuster l'algorithme et favoriser une diminution du nombre de nœuds.

Vous pouvez modifier l'argument base_penalty dans automatic_knot_selection pour définir la plage de recherche de la pénalité de régularisation. Par défaut, il est défini sur np.geomspace(0.1, 100, 100), ce qui signifie que la plage de recherche de base par défaut pour la pénalité est comprise entre 0.1 et 100. Vous pouvez fournir votre propre liste de paramètres de pénalité. L'augmentation du paramètre de pénalité applique une régularisation plus forte, ce qui réduit le nombre de nœuds sélectionnés. Par exemple, vous pouvez définir la plage de recherche de 10 à 200 à l'aide de np.geomspace(10, 200, 100).

Vous pouvez également définir la proportion de nœuds considérés à l'aide des arguments min_internal_knots et max_internal_knots.

import numpy as np
from meridian.model import knots
from meridian.model import model
from meridian.model import spec

# `data` is an `InputData` object; same as what will be passed to
# `model.Meridian`
aks = knots.AKS(data)
# Modify `base_penalty`, `min_internal_knots`, `max_internal_knots`
# arguments to encourage fewer knots
base_penalty = np.geomspace(10, 200, 100)
knot_locations = aks.automatic_knot_selection(base_penalty=base_penalty,
                                              min_internal_knots=2,
                                              max_internal_knots=10).knots

# You must use the 'knots' argument and NOT set 'enable_aks=True'.
model_spec = spec.ModelSpec(knots=knot_locations)
# `input_data` argument is the same `data` passed to `knots.AKS(data)`
mmm = model.Meridian(input_data=data, model_spec=model_spec)

Avancé : sélection hybride des nœuds

Vous pouvez combiner AKS avec vos propres connaissances du domaine pour utiliser une approche hybride. Cela vous permet d'appliquer une logique métier connue (comme les périodes de fêtes ou les mises à jour de modèles) tout en laissant l'algorithme AKS identifier les nœuds requis restants.

Il existe deux méthodes principales pour implémenter une approche hybride :

  1. Ajuster manuellement les nœuds sélectionnés : exécutez AKS, inspectez les nœuds sélectionnés, puis ajoutez ou supprimez manuellement des nœuds avant d'exécuter le modèle final.
  2. Spécifiez les nœuds requis : transmettez une liste de nœuds obligatoires à l'algorithme AKS, qui lui permet de sélectionner automatiquement les nœuds supplémentaires nécessaires.

Ajuster manuellement les nœuds sélectionnés

Vous pouvez ajouter ou supprimer manuellement des nœuds pour les adapter à votre contexte métier. Par exemple, vous pouvez ajouter des nœuds pendant les fêtes de fin d'année pour réduire le biais dans vos estimations, ou en supprimer certains pendant une période creuse pour diminuer la variance. Pour en savoir plus sur les ajustements manuels des nœuds, consultez Compromis entre biais et variance.

Consultez l'extrait de code ci-dessous pour découvrir comment récupérer les nœuds sélectionnés, ajouter un nœud au point temporel 52 et l'utiliser pour définir un nouveau ModelSpec.

import numpy as np
from meridian.model import model
from meridian.model import spec

# `data` is an `InputData` object
model_spec_with_aks = spec.ModelSpec(enable_aks=True)
mmm_with_aks = model.Meridian(input_data=data, model_spec=model_spec_with_aks)

# Retrieve selected knots from a model run with enable_aks=True
selected_knots = mmm_with_aks.knot_info.knot_locations

# Add a knot at time point 52
modified_knots = np.append(selected_knots, 52)
model_spec = spec.ModelSpec(knots=modified_knots)
mmm = model.Meridian(input_data=data, model_spec=model_spec)

Spécifier les nœuds requis pour AKS

Vous pouvez combiner AKS avec vos propres connaissances du domaine en spécifiant les emplacements de nœuds requis directement dans l'algorithme. Pour ce faire, appelez la méthode automatic_knot_selection() et fournissez un itérable de required_knots. L'algorithme les inclut et sélectionne automatiquement les nœuds supplémentaires nécessaires pour expliquer au mieux les effets temporels, tout en équilibrant l'ajustement et la complexité du modèle.

Cette approche est utile lorsque vous souhaitez imposer le placement de nœuds à des points temporels spécifiques et connus tout en vous appuyant sur AKS pour le reste. Exemple :

  • "Je sais que le mois de juillet est une période unique pour mon entreprise. Je souhaite donc des nœuds pour chaque semaine de juillet, chaque année. Laissons AKS s'occuper du reste."
  • "Je sais que la première semaine de chaque mois est une période unique pour mon entreprise. Je souhaite donc des nœuds pour chaque première semaine du mois. Laissons AKS déterminer si j'ai besoin de plus de nœuds chaque mois."
import numpy as np
from meridian.model import knots
from meridian.model import model
from meridian.model import spec

# `data` is an `InputData` object; same as what will be passed to
# `model.Meridian`
aks = knots.AKS(data)
# Require knots at specific time periods and automatically select the rest
required_knots = np.array([10, 20, 30])
knot_locations = aks.automatic_knot_selection(
    required_knots=required_knots
).knots

# You must use the 'knots' argument and NOT set 'enable_aks=True'.
model_spec = spec.ModelSpec(knots=knot_locations)
# `input_data` argument is the same `data` passed to `knots.AKS(data)`
mmm = model.Meridian(input_data=data, model_spec=model_spec)

Actualisation du modèle avec la sélection hybride des nœuds

Lorsque vous mettez à jour un modèle existant avec de nouvelles données de série temporelle (par exemple, en ajoutant les données du dernier trimestre à un ensemble de données pluriannuel), vous pouvez souhaiter conserver les emplacements des nœuds utilisés dans le modèle d'origine afin de préserver la cohérence de la tendance de référence pour cette période initiale. Vous pouvez toujours demander à AKS de sélectionner de nouveaux nœuds pour les données ajoutées.

Pour ce faire, transmettez les emplacements des nœuds du modèle d'origine en tant que required_knots et définissez restrict_to_right_of_required_knots=True lorsque vous appelez automatic_knot_selection(). Cela permet de s'assurer qu'AKS n'ajoutera de nœuds qu'aux périodes suivant les données d'origine.

import numpy as np
from meridian.model import knots
from meridian.model import model
from meridian.model import spec

# `data` is an `InputData` object; same as what will be passed to
# `model.Meridian`
aks = knots.AKS(data)
# Use knots selected from a previous model run as required knots and
# automatically select knots located after the last knot
previous_knots = np.array([10, 30, 50, 70, 90])
knot_locations = aks.automatic_knot_selection(
    required_knots=previous_knots,
    restrict_to_right_of_required_knots=True
).knots

# You must use the 'knots' argument and NOT set 'enable_aks=True'.
model_spec = spec.ModelSpec(knots=knot_locations)
# `input_data` argument is the same `data` passed to `knots.AKS(data)`
mmm = model.Meridian(input_data=data, model_spec=model_spec)

Choisir manuellement les nœuds

Dans certains cas, les utilisateurs peuvent préférer définir manuellement les nœuds pour leur MMM. Cette section fournit quelques conseils de base sur la façon de choisir manuellement les positions des nœuds.

Lorsque vous réfléchissez à la façon de définir manuellement les knots de ModelSpec, nous vous recommandons de penser aux deux extrêmes : les nœuds peuvent être n'importe où entre 1 et le nombre de périodes (n_times). Lorsque knots = n_times, il n'y a pas de réduction de la dimensionnalité et chaque période obtient son propre paramètre. Dans un modèle au niveau géographique, il est possible d'avoir autant de nœuds que de périodes, car vous disposez de plusieurs zones géographiques (et donc de plusieurs observations) par période. Lorsque knots = 1, toutes les périodes sont mesurées avec un seul paramètre, ce qui revient à dire que le temps n'a aucun effet. Cette absence d'effet devient un intercept commun à toutes les périodes.

Lorsque 1 < knots < n_times, vous êtes au milieu de ces deux extrêmes. Vous pouvez essayer une plage de valeurs couvrant l'espace des valeurs éligibles. Pour en savoir plus sur la façon de considérer le milieu de ces deux extrêmes, consultez Compromis entre variance et biais.

Nous vous recommandons d'essayer les solutions suivantes :

  • Les modèles au niveau géographique doivent commencer par la valeur par défaut (knots = n_times). Si vous constatez que le surapprentissage est extrême ou que les estimations de l'effet média sont irréalistes, envisagez de réduire le nombre de nœuds. La nécessité de réduire le nombre de nœuds est plus susceptible de s'appliquer à mesure que le nombre de zones géographiques par point temporel diminue.

  • Les modèles au niveau national doivent commencer par le nœud 1 par défaut et augmenter le nombre de nœuds à partir de là. Continuez à augmenter la valeur jusqu'à ce que le surapprentissage devienne extrême ou que les estimations de l'effet média deviennent irréalistes.

  • Un nombre de nœuds similaire peut renvoyer des résultats similaires, tels que knots = 10 et knots = 11. Il peut donc être utile de répartir les valeurs que vous souhaitez essayer.

Par exemple, pour définir manuellement 10 nœuds uniformément espacés :

from meridian.model import model
from meridian.model import spec

model_spec = spec.ModelSpec(knots=10)
mmm = model.Meridian(input_data=data, model_spec=model_spec)

Vous pouvez également spécifier manuellement les emplacements exacts des nœuds :

from meridian.model import model
from meridian.model import spec

model_spec = spec.ModelSpec(knots=[7, 14, 30, 37, 44, 60, 67, 74, 90])
mmm = model.Meridian(input_data=data, model_spec=model_spec)

Compromis entre biais et variance

Il peut être utile de considérer le paramètre du nombre de nœuds comme un compromis entre biais et variance. Lorsque knots = n_times, chaque période obtient son propre paramètre. L'effet d'une période donnée est alors estimé en utilisant uniquement les données de cette période. Cependant, la variance de knots = n_times est élevée, car moins de points de données sont disponibles à un moment donné.

Lorsque knots < n_times, chaque nœud est estimé à l'aide des données des périodes proches, les périodes plus proches ayant une pondération plus élevée. Étant donné que les deux nœuds les plus proches déterminent l'inférence d'une période donnée, l'effet d'une période donnée est estimé selon les données de cette période et celles des périodes proches. À mesure que le nombre de nœuds diminue, les points temporels proches ont de plus en plus d'influence sur l'inférence pour un point temporel donné, les points temporels les plus proches ayant une pondération plus élevée. Cela réduit la variance, car de plus en plus de points temporels sont utilisés pour estimer l'effet d'une période donnée. Toutefois, les données ne proviennent pas de la période donnée, ce qui augmente le biais.

En résumé, plus il y a de nœuds, moins les estimations de l'effet temporel sont biaisées, et moins il y a de nœuds, moins les estimations de l'effet temporel présentent une variance. En tant qu'analyste, vous pouvez ajuster le compromis entre biais et variance. Si le temps est un facteur de confusion important entre le média et le KPI, le compromis entre biais et variance dans l'estimation des effets temporels se traduit par un compromis entre biais et variance dans l'estimation des effets de causalité du média.

Vous pouvez également choisir d'avoir différents compromis entre biais et variance pour différentes périodes. Pour ce faire, définissez knots sur une liste qui spécifie les emplacements des nœuds. Les emplacements des nœuds peuvent être denses lors des périodes où vous préférez un biais faible dans les estimations (par exemple, pendant la période des fêtes) et rares lors des périodes où l'analyste préfère une variance faible dans l'estimation (par exemple, en dehors de la période des fêtes).

Quand envisager d'utiliser moins de nœuds ?

Lorsque vous définissez le nombre de nœuds, il peut également être utile de réfléchir à l'impact de la période sur l'exécution média. Les variables de contrôle doivent être des variables de confusion qui ont une incidence sur l'exécution média et sur le KPI. Pour en savoir plus sur les variables de contrôle, consultez Sélectionner des variables de contrôle.

La même logique s'applique au temps. Si la période n'est pas un facteur pour l'exécution média, le temps ne constitue pas une réelle variable de confusion. Vous pouvez ainsi éviter de donner trop de marge de manœuvre à la modélisation du temps avec de nombreux nœuds. Les annonceurs doivent déterminer si la période joue un rôle dans la planification de l'exécution média. Par exemple, la planification média d'une marque de voyages dépend probablement de la période. Une marque de chips peut avoir une planification média plus cohérente au cours des périodes. Demandez-vous également si le temps constitue vraiment une variable de confusion importante ou s'il s'agit d'un substitut pour une autre variable qui peut être directement modélisée, probablement avec moins de marge de manœuvre. Par exemple, le temps était-il vraiment la variable de confusion qui a généré l'exécution média ? Ou s'agissait-il du nombre de cas de COVID-19 au niveau national ? Les annonceurs connaissent leur propre stratégie de planification média et ont une bonne connaissance de ces thèmes.

Quand utiliser knots < n_times ?

Vous devez définir knots < n_times dans certaines situations, par exemple dans un modèle national où vous ne disposez pas de plusieurs observations par période et où il n'y a pas assez de marge de manœuvre pour que chaque période dispose de son propre paramètre. Notez qu'un certain niveau de réduction de la dimensionnalité est nécessaire.

Autre exemple : lorsque vous devez inclure un média ou une variable de contrôle au niveau national. Par définition, les variables au niveau national changent au fil du temps, mais pas selon les zones géographiques. Ce type de variable est parfaitement colinéaire avec le temps et est donc redondant avec un modèle qui comporte un paramètre pour chaque période. Si vous définissez knots sur une valeur proche de n_times, vous pouvez techniquement avoir un modèle identifiable. Toutefois, il peut toujours être faiblement identifiable et entraîner des problèmes. Compte tenu des préoccupations liées à l'estimation des effets temporels dans un modèle national, il est encore plus important de disposer de contrôles de haute qualité dans un modèle national que dans un modèle géographique. Pour en savoir plus sur les contrôles de haute qualité, consultez Sélectionner des variables de contrôle.

Autres approches pour modéliser les effets temporels : indicateurs binaires et fonctions périodiques

Vous pouvez créer et fournir des indicateurs binaires ou des fonctions périodiques en tant que variables de contrôle pour modéliser les effets temporels dans Meridian. Les deux présentent des avantages dans certains cas.

Meridian recommande d'inclure des variables de contrôle qui sont des variables de confusion, c'est-à-dire qu'elles ont un effet causal sur l'exécution média et le KPI. Les variables de contrôle liées aux effets temporels ne font pas exception. (Pour en savoir plus, consultez Variables de contrôle.)

Indicateurs binaires

Un indicateur binaire prend la valeur 1 lorsqu'une condition est remplie et 0 lorsqu'elle ne l'est pas. Par exemple, la valeur 1 peut indiquer toutes les périodes en décembre et la valeur 0 celles qui ne sont pas en décembre. Dans Meridian, les indicateurs binaires peuvent être utilisés comme variables de contrôle pour modéliser les effets temporels qui sont cohérents sur un ensemble de périodes et qui peuvent varier selon la zone géographique. Les nœuds et les indicateurs binaires peuvent être utilisés ensemble, mais faites attention au nombre total de paramètres utilisés pour modéliser les effets temporels.

Effets cohérents

Un indicateur binaire peut couvrir plusieurs périodes, ce qui suppose que l'effet du KPI (par personne dans un modèle géographique) soit cohérent sur toutes les périodes. Un indicateur binaire utilise plusieurs périodes pour estimer un effet cohérent. Cela permet d'améliorer les estimations et d'utiliser efficacement les marges de manœuvre, à condition que l'hypothèse d'un effet cohérent soit approximativement correcte.

L'indicateur n'a aucun effet sur les périodes en dehors de celles indiquées, tandis que positionner un nœud sur une période spécifique affectera les périodes voisines jusqu'au nœud adjacent suivant.

Il peut être intéressant de modéliser les effets temporels de manière cohérente sur un ensemble de périodes pour un modèle national, où imposer une structure peut aider à stabiliser les estimations. Pour un modèle géographique, il est souvent préférable d'avoir la possibilité d'utiliser de nombreux nœuds.

Variation géographique

Lorsqu'un indicateur binaire est utilisé comme variable de contrôle dans un modèle au niveau géographique, les estimations montrent que son effet dépend de la zone géographique. C'est idéal pour les événements dont l'impact est censé varier selon la région (comme le Super Bowl, qui a un impact plus important dans la ville hôte). En revanche, les nœuds estiment les effets temporels qui ne dépendent pas d'une zone géographique. Les nœuds créent une fonction spline flexible pour capturer les schémas temporels partagés par toutes les zones géographiques. Ils sont donc plus efficaces en termes de paramètres si vous ne vous attendez pas à des effets temporels qui dépendent d'une zone géographique.

Désactiver la variation géographique pour un indicateur binaire

Vous pouvez utiliser un indicateur binaire sans effets temporels dépendant d'une zone géographique. Pour ce faire, vous pouvez définir l'a priori de sa variance hiérarchique (xi_c) sur une masse ponctuelle à zéro. Dans ce cas, chaque coefficient géographique spécifique sera identique pour l'indicateur binaire. Afin de désactiver les effets géographiques pour toutes les variables de contrôle, définissez leur a priori de variance sur une valeur déterministe de zéro :

xi_c = tfp.distributions.Deterministic(0)

Afin de désactiver l'effet géographique pour une seule variable de contrôle spécifique, vous pouvez définir le scale de son a priori sur zéro. Par exemple, si vous avez quatre variables de contrôle et que vous souhaitez désactiver les effets dépendant de la zone géographique pour la première :

xi_c = tfp.distributions.HalfNormal(scale=[0, 5, 5, 5])

Risque de multicolinéarité

Les indicateurs binaires peuvent présenter un risque de multicolinéarité élevée avec les variables d'exécution média. Il est donc important de tenir compte de la multicolinéarité et de n'inclure que les indicateurs binaires qui sont effectivement des facteurs de confusion.

Fonctions périodiques

Vous pouvez également ajouter une fonction périodique, comme une série de Fourier, en tant que variable de contrôle. Les fonctions périodiques peuvent constituer une alternative intéressante aux nœuds, en particulier dans les modèles nationaux.

Les fonctions périodiques modélisent les effets temporels comme ayant un modèle fluide et cyclique sur le KPI (KPI par personne dans le cas d'un modèle géographique). Les fonctions périodiques constituent une hypothèse paramétrique forte sur la façon dont le temps affecte le KPI. Elles peuvent être appropriées pour un modèle national, où imposer une structure peut aider à obtenir une estimation stable de la saisonnalité. Pour un modèle géographique, il est souvent préférable d'avoir la possibilité d'utiliser de nombreux nœuds, car cela n'impose pas de modèle fluide et cyclique sur le KPI.

Recommandations pratiques

Les recommandations dépendent du type de modèle (géographique ou national).

Modèles géographiques

Les indicateurs binaires peuvent être utilisés dans les modèles géographiques pour modéliser les effets temporels dépendant d'une zone géographique. Les nœuds et les indicateurs binaires peuvent être utilisés ensemble, mais faites attention au nombre total de paramètres utilisés pour modéliser les effets temporels. Les indicateurs binaires avec des nœuds complets ne sont pas recommandés.

  • Pour les effets temporels qui ne dépendent pas d'une zone géographique, utilisez des nœuds : si vous souhaitez modéliser un schéma temporel cohérent dans toutes les zones géographiques, les nœuds offrent de la flexibilité sans risque de surparamétrisation.
  • Pour les effets temporels qui dépendent d'une zone géographique, utilisez un indicateur binaire : s'il est fort probable que l'impact d'un événement varie selon la zone géographique, un indicateur binaire en tant que variable de contrôle est l'outil approprié.

Modèles nationaux

Les modèles nationaux bénéficient particulièrement de la parcimonie, qui peut être obtenue avec des indicateurs binaires, des fonctions périodiques ou quelques nœuds bien positionnés. Ces éléments peuvent être utilisés ensemble, mais soyez particulièrement attentif au nombre total de paramètres, étant donné l'importance de la parcimonie dans un modèle national. Chacune de ces options améliore les estimations et utilise efficacement les marges de manœuvre, à condition que l'hypothèse soit approximativement correcte. Vous trouverez ci-dessous un récapitulatif des hypothèses pour chacune d'elles :

  • Les fonctions périodiques modélisent les effets temporels comme ayant un modèle fluide et cyclique sur le KPI.
  • Les indicateurs binaires modélisent les effets temporels comme étant cohérents sur les périodes concernées.
  • Les nœuds modélisent les effets temporels sous forme de tendance linéaire par morceaux sur la durée.