Imputation massive#
Exécution: banff.massimp()
Type de fonction VSD: Revue, Sélection, Traitement
Statuts d’entrée: Néant
Statuts de sortie: IMAS
Description#
Effectue l’imputation par donneur pour un bloc de variables avec l’approche du plus proche voisin ou une sélection aléatoire.
La procédure massimp est destinée à l’usage lorsqu’un grand bloc de variables est manquant pour un ensemble de répondants. Ce cas de figure survient typiquement lorsque l’information détaillée est uniquement collectée pour un sous-ensemble (ou échantillon de seconde phase) des unités. Alors que la procédure donorimp utilise à la fois des champs d’appariement sélectionnés par le système et spécifiés par l’utilisateur, l’imputation massive considère uniquement les champs d’appariement spécifiés par l’utilisateur pour trouver un enregistrement valide (donneur) le plus similaire è celui nécessitant l’imputation (receveur).
L’imputation massive considère comme receveur tout enregistrement pour lequel toutes les variables à imputer (listées dans must_impute
) sont manquantes dans indata. Elle considère comme donneur tout enregistrement pour lequel aucune des variables listées n’est manquante. Si les champs d’appariement (must_match
) sont fournis par l’utilisateur, la procédure massimp les utilise pour trouver le donneur le plus proche en ayant recours à la même fonction de distance que donorimp. Si les champs d’appariement ne sont pas fournis, la sélection des donneurs se fait de manière aléatoire.
Contrairement à donorimp, la procédure massimp n’utilise pas les règles de vérification. Avant de rouler la procédure, l’utilisateur devrait s’assurer que le bassin des donneurs ne contient pas d’erreurs, incluant les valeurs aberrantes et les erreurs de cohérence.
L’utilisateur peut créer des groupes de partition by en spécifiant des variables dans le paramètre by
. Ces groupes by agissent comme des classes d’imputation. L’utilisation des paramètres min_donors
et percent_donors
permet de s’assurer qu’un nombre approprié ou ratio de receveurs et donneurs existe dans chaque classe d’imputation avant que l’imputation n’ait lieu.
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. |
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 le statut IMAS et contenant leurs valeurs après imputation. |
outdonormap |
Données de sortie contenant les paires receveur-donneur pour les enregistrements imputés avec succès. |
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. |
must_impute |
chaîne de caractères |
Variable(s) à imputer. Obligatoire. |
must_match |
chaîne de caractères |
Champ(s) d’appariement spécifié(s) par l’utilisateur. |
random |
booléen |
Sélection aléatoire des donneurs. |
min_donors |
entier |
Nombre minimal de donneurs requis dans un groupe de partition by pour que l’imputation ait lieu. Par défaut: 30 |
percent_donors |
flottant |
Pourcentage minimal de donneurs requis dans un groupe de partition by pour que l’imputation ait lieu. Par défaut: 30 |
n_limit |
entier |
Limite le nombre de fois qu’un donneur peut être utilisé. |
mrl |
flottant |
Multiplicateur de ratio limite permettant de limiter le nombre de fois qu’un donneur peut être utilisé. |
seed |
flottant |
Spécifie la racine du générateur des nombres aléatoires. |
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. |
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#
Plus proche voisin ou donneur aléatoire#
Les paramètres must_match
et random
détermine si l’algorithme du plus proche voisin ou la sélection aléatoire est utilisé dans la sélection de donneurs. Le tableau suivant montre comment la spécification de ces paramètres affecte l’imputation massive.
|
|
Syntaxe |
Imputation |
---|---|---|---|
Non |
Non |
Incorrecte |
Produit une erreur, aucune imputation n’est effectuée. |
Non |
Oui |
Correcte |
Sélection aléatoire de donneurs. |
Oui |
Non |
Correcte |
Sélection par plus proche voisin en utilisant les variables de |
Oui |
Oui |
Correcte |
Sélection par plus proche voisin en utilisant les variables de |
Lorsqu’un receveur a des valeurs manquantes pour une partie (et non toutes) des variables must_match
, la distance au donneur le plus proche sera calculée en se basant uniquement sur les valeurs valides. Si le receveur a des valeurs manquantes pour les variables must_match
, alors on lui sélectionnera un donneur de manière aléatoire si le paramètre random
est spécifié, et on ne lui sélectionnera aucun si le paramètre random
n’est pas utilisé.
Solutions multiples équivalentes#
Dans certains cas, et pour un receveur donné, il peut y avoir plusieurs plusieurs donneurs équidistants (i.e. éloignés de la même distance du receveur) dont les valeurs permettent au receveur de satisfaire les règles de vérification. Dans ce cas de figure, la procédure choisit une solution de manière aléatoire.
Lors du développement ou des tests, l’utilisateur pourrait désirer de produire des résultats cohérents entre plusieurs exécutions de la procédure, ce qui peut être obtenu grâce au paramètre seed
. Il permet de s’assurer d’avoir les mêmes solutions choisies d’une exécution à une autre, toutes données d’entrée égales par ailleurs. Noter que si seed
n’est pas spécifié, le système générera une valeur de racine par défaut.
Ce paramètre peut également être utilisé pour répliquer les résultats lorsqu’une sélection aléatoire de donneurs est effectuée.
Limiter l’utilisation répétée de donneurs#
L’utilisateur peut limiter l’utilisation répétée de donneurs grâce aux paramètres interreliés n_limit
et mrl
. Dépendamment de la manière dont ces paramètres sont spécifiés, la limite d’utilisation de donneurs est comme suit:
|
|
Limite d’utilisation de donneurs |
---|---|---|
No |
No |
Le nombre de fois qu’un donneur peut être utilisé est illimité. |
No |
Yes |
arrondie $(mrl*(receveurs/donneurs))$. |
Yes |
No |
|
Yes |
Yes |
arrondie $(max(n$ _ $limit,mrl*(receveurs/donneurs)))$. |
Lorsque l’utilisation répétée de donneurs est limitée par le paramètre n_limit
, le nombre de donneurs restants peut se retrouver plus petit que min_donors
. Dans pareil cas, massimp continuera en ignorant min_donors
qui a été vérifié au début. Ceci s’applique également pour percent_donors
.