Imputation par estimation#
Exécution: banff.estimator()
Type de fonction VSD: Traitement
Statuts d’entrée: FTI (requis), FTE (optionnel), I–(optionnel)
Statuts de sortie: I– (le code exact dépend de l’algorithme spécifié)
Description#
Effectue l’imputation en utilisant des fonctions d’estimation et/ou des estimateurs par régression linéaire.
La procédure estimator permet l’imputation selon plusieurs méthodes comme la moyenne, le ratio ou la régression en utilisant les données courantes (indata
) et/ou historiques (indata_hist
) de la variable à imputer et éventuellement des variables auxiliaires. L’utilisateur peut choisir parmi les vingt (20) algorithmes d’imputation par estimation prédéfinis dans la procédure, ou définir ses propres algorithmes personnalisés.
L’imputation est seulement effectuée sur les champs marqués par un statut FTI (champs à imputer) dans les données des statuts d’entrée. Les champs ayant un statut FTE (champs à exclure) ou I– (champs imputés) peuvent être exclus du modèle d’imputation. (Noter que ceci n’inclut pas le statut IDE associé à l’imputation déterministe).
Les paramètres d’estimation ou de régression linéaire (comme les moyennes ou les coefficients de régression) peuvent être calculés en utilisant tous les enregistrements ou seulement un sous-ensemble particulier des enregistrements acceptables. La restriction des enregistrements acceptables peuvent être appliquée à l’aide d’un paramètre d’exclusion ou en imputant par groupes de partition by.
Pour une description mathématique complète des méthodes de la procédure accompagnée d’exemples, se référer à la description des fonctions.
Données d’entrée et de sortie#
La description des données d’entrée et de sortie est donnée ci-dessous. Banff supporte plusieurs formats pour les données qu’elles soient d’entrée ou de sortie; se référer au guide d’utilisateur pour plus d’information.
Données d’entrée |
Description |
---|---|
indata |
Données d’entrée. Obligatoire. |
instatus |
Données des statuts d’entrée qui contient les statuts FTI, FTE et I–. Obligatoire. |
inestimator |
Table de spécification des estimateurs. Obligatoire. |
inalgorithm |
Table des algorithmes spécifiés par l’utilisateur. |
indata_hist |
Données historiques d’entrée. |
instatus_hist |
Données des statuts historiques d’entrée qui contient les statuts FTI, FTE and I–. |
Données de sortie |
Description |
---|---|
outdata |
Données de sortie contenant les données imputées. |
outstatus |
Données des statuts de sortie identifiant les champs imputés avec un statut de la forme I– et contenant leurs valeurs après imputation. |
outacceptable |
Données de sortie contenant les observations acceptables retenues pour calculer les paramètres de chaque estimateur. |
outest_ef |
Données de sortie contenant les moyennes des fonctions d’estimation. |
outest_lr |
Données de sortie contenant les coefficients « beta » des estimateurs par régression linéaire. |
outest_parm |
Données de sortie contenant les statistiques d’imputation par estimateur. |
outrand_err |
Données de sortie contenant l’information sur les erreurs aléatoires ajoutées aux valeurs imputées. |
Pour plus d’information sur le contenu des données de sortie, se référer au document des données de sortie.
Paramètres#
Paramètre |
Type en Python |
Description |
---|---|---|
unit_id |
chaîne de caractères |
Identifier la variable clé (identifiant de l’unité) dans indata. Obligatoire. |
data_excl_var |
chaîne de caractères |
Identifie la variable dans indata permettant l’exclusion de certains observations de l’ensemble des observations acceptables. |
data_excl_var |
chaîne de caractères |
Identifie la variable dans indata permettant l’exclusion de certains observations historiques de l’ensemble des observations acceptables. |
exclude_where_indata |
chaîne de caractères |
Expression dans le langage SQL permettant l’exclusion de certains observations de l’ensemble des observations acceptables. |
exclude_where_indata_hist |
chaîne de caractères |
Expression dans le langage SQL permettant l’exclusion de certains observations historiques de l’ensemble des observations acceptables. |
seed |
flottant |
Spécifie la racine du générateur des nombres aléatoires. |
verify_specs |
booléen |
Permet de vérifier les spécifications de la procédure sans rouler l’imputation. |
accept_negative |
booléen |
Traite les valeurs négatives comme des valeurs valides. Par défaut: False. |
by |
chaîne de caractères |
Variable(s) utilisée(s) pour partitionner indata en des groupes by pour un traitement indépendant. |
prefill_by_vars |
booléen |
Ajouter une ou plusieurs variables de partition aux données des statuts d’entrée pour améliorer la performance. Par défaut: True. |
presort |
booléen |
Trier les données d’entrée avant le traitement, et ce selon les exigences de la procédure. Par défaut: True. |
no_by_stats |
booléen |
Réduire le journal de sortie en supprimant les messages spécifiques aux groupes de partition by. Par défaut: False. |
Notes#
Les données de spécification inalgorithm
et inestimator
sont employées pour définir les modèles (imputation par la moyenne, par régression linéaire, etc.) utilisés dans l’imputation et pour spécifier certains paramètres et options. Les données inestimator
sont obligatoires, alors que celles associées à inlagorithm
sont uniquement requises lorsque l’on a recourt à un algorithme personnalisé, et non au 20 algorithmes prédéfinis dans la procédure.
Inestimator#
Les données de spécification inestimator
doivent être préparées avant de rouler la procédure. Elles sont employées pour indiquer l’algorithme (c’est-à-dire le modèle) à utiliser dans l’imputation, les variables à imputer, ainsi que d’autres paramètres. L’algorithme utilisé peut être prédéfini dans la procédure ou personnalisé et défini dans inalgorithm. Plusieurs algorithmes peuvent être spécifiés et seront traités dans selon leur ordre d’apparition. Noter que la même variable à imputer peut être spécifiée pour plusieurs algorithmes; dans pareil cas, le premier algorithme lui sera appliqué, mais s’il échoue à imputer une valeur, l’algorithme suivant lui sera appliqué, et ainsi de suite.
Le tableau suivant montre les variables qui doivent apparaître dans inestimator. Toutes les colonnes sont obligatoires.
Colonne |
Description |
---|---|
fieldid |
Nom de la variable à imputer. |
algorithmname |
Nom de l’algorithme à utiliser pour imputer la variable. |
auxvariables |
Liste des noms des variables auxiliaires (séparés par virgule) dans indata ou indata_hist. |
weightvariable |
Nom de la variable de pondération. |
countcriteria |
Nombre entier positif indiquant le nombre minimal d’observations acceptables nécessaires dans le groupe de partition by pour le calcul des paramètres l’estimateur. |
percentcriteria |
Nombre réel (entre 0 et 100) indiquant le pourcentage minimal d’observations acceptables nécessaires dans le groupe de partition by pour le calcul des paramètres de l’estimateur. |
variancevariable |
Nom de la variable de variance. |
varianceperiod |
Période de la variance (‘C’ pour courante ou ‘H’ pour historique). |
varianceexponent |
Nombre servant d’exposant à la variance. |
excludeimputed |
‘Y’ (oui) ou ‘N’ (non) pour indiquer si les observations ayant une variable déjà imputée seront exclues ou non du groupe d’observations acceptables pour le calcul de paramètres. |
excludeoutliers |
‘Y’ (oui) ou ‘N’ (non) pour indiquer si les observations ayant un statut FTE seront exclues ou non du groupe d’observations acceptables pour le calcul de paramètres. |
randomerror |
‘Y’ (oui) ou ‘N’ (non) pour indiquer si une erreur aléatoire est ajoutée à la valeur imputée. |
Inalgorithm#
En plus des 20 algorithmes prédéfinis dans la procédure, des algorithmes personnalisés peuvent être définis par l’utilisateur dans inalgorithm. Ces algorithmes personnalisés peuvent être de deux types:
Fonctions d’estimation (EF): Expression mathématique avec des constantes, des valeurs courantes et/ou historiques de certaines variables de l’enregistrement, et des moyennes courantes et historiques de certaines variables, ces moyennes étant calculées à partir des enregistrements acceptables. Les expressions mathématiques peuvent inclure des parenthèses et les opérations arithmétiques de l’addition (+), la soustraction (-), la multiplication (*), la division (/) et l’exponentiation.
Régression linéaire (LR): Imputation par régression qui consiste à imputer une variable $y$$i$ par l’estimation par régression linéaire de la forme
$$
\hat{y_i} = \hat{\beta_0} + \hat{\beta_1} x_{i_1 T_1}^{p_1} + \hat{\beta_2} x_{i_2 T_2}^{p_2} + … + \hat{\beta_m} x_{i_m T_m}^{p_m} + \hat{\epsilon_i}
$$
où : $T$$j$ correspond aux périodes courante ou historique et $p$$j$ sont les exposants. La variable $y$$j$ à imputer est la variable dépendante du modèle, et les variables auxiliaires $x$$ij$ sont les variables indépendantes ou les régresseurs. $\hat\beta$$j$ sont les coefficients de régression, obtenues comme solution de la méthode des moindres carrés. $\hat\epsilon$$i$ est un terme d’erreur aléatoire, qui peut être ajouté au modèle pour introduire une certaine variabilité dans les valeurs estimées de $y$$i$. Noter que $\beta$$0$, qui est l’ordonnée à l’origine de la droite de régression, peut être omise du modèle.
Le tableau suivant présente les variables qui doivent apparaître dans inalgorithm. Toutes les colonnes sont obligatoires sauf la colonne description
.
Colonne |
Description |
---|---|
algorithmname |
Nom de l’algorithme. |
type |
Type de l’algorithme: ‘EF’ pour fonction d’estimation et ‘LR’ pour régression linéaire. |
status |
Chaîne de 1 à 3 caractère qui sera inscrite comme statut (après lui avoir ajouté le préfixe “I”) dans outstatus lorsqu’un champ est imputé à l’aide de cet algorithme. |
formula |
Formule de l’algorithme. |
description |
Texte pour décrire l’algorithme. |