Si j'ai des données positives très asymétriques, je prends souvent des journaux. Mais que dois-je faire avec des données non négatives hautement asymétriques qui incluent des zéros? J'ai vu deux transformations utilisées:
- qui a la particularité que 0 mappe sur 0.
- où c est estimé ou défini comme une très petite valeur positive.
Existe-t-il d'autres approches? Existe-t-il de bonnes raisons de préférer une approche aux autres?
data-transformation
large-data
Rob Hyndman
la source
la source
Réponses:
Il me semble que le choix de transformation le plus approprié dépend du modèle et du contexte.
Le point "0" peut provenir de plusieurs raisons différentes, chacune pouvant être traitée différemment:
Je n'offre pas vraiment de réponse car je soupçonne qu'il n'y a pas de transformation «correcte» universelle lorsque vous avez des zéros.
la source
Personne n'a mentionné la transformation sinus hyperbolique inverse. Donc, pour être complet, je l’ajoute ici.
Ceci est une alternative aux transformations de Box-Cox et est défini par où . Pour toute valeur de , zéro correspond à zéro. Il existe également une version à deux paramètres permettant un décalage, tout comme avec la transformation BC à deux paramètres. Burbidge, Magee et Robb (1988) discutent de la transformation d'IHS, y compris l'estimation de .
La transformation IHS fonctionne avec des données définies sur la ligne réelle entière, y compris les valeurs négatives et les zéros. Pour les grandes valeurs de il se comporte comme une transformation de journal, quelle que soit la valeur de (sauf 0). Le cas limite donne .y θ θ→0 f(y,θ)→y
Il me semble que la transformation IHS devrait être beaucoup plus connue qu’elle ne l’est.
la source
Une approche utile lorsque la variable est utilisée comme facteur indépendant dans la régression consiste à la remplacer par deux variables: l’une est un indicateur binaire indiquant si elle est nulle et l’autre est la valeur de la variable d’origine ou une ré-expression de celle-ci, comme son logarithme. Cette technique est décrite dans le livre de Hosmer & Lemeshow sur la régression logistique (et ailleurs, j'en suis sûr). Les courbes de probabilité tronquées de la partie positive de la variable d'origine sont utiles pour identifier une nouvelle expression appropriée. (Voir l'analyse sur https://stats.stackexchange.com/a/30749/919 pour des exemples.)
Lorsque la variable est la variable dépendante dans un modèle linéaire, une régression censurée (comme Tobit ) peut être utile, évitant ainsi le besoin de produire un logarithme commencé. Cette technique est courante chez les économétriciens.
la source
Les transformations de journal avec décalages sont des cas particuliers des transformations Box-Cox :
Ce sont la forme étendue pour les valeurs négatives, mais également applicable aux données contenant des zéros. Box et Cox (1964) présentent un algorithme pour trouver les valeurs appropriées pour les utilisant le maximum de vraisemblance. Cela vous donne la transformation ultime.λ
Une des raisons de préférer les transformations Box-Cox est qu'elles ont été développées pour garantir les hypothèses du modèle linéaire. Certains travaux ont montré que même si vos données ne peuvent pas être transformées en normalité, les estimations de conduisent toujours à une distribution symétrique.λ
Je ne sais pas dans quelle mesure cela s’applique à vos données, car il se peut que soit que la transformation de journal que vous avez mentionnée, mais il peut être utile d’estimer le nombre requis de pour voir si une autre la transformation est appropriée.λλ=(0,1) λ
Dans R, la
boxcox.fit
fonction dans packagegeoR
calculera les paramètres pour vous.la source
lambda2=TRUE
dans les arguments deboxcox.fit
. (Mise à jour également de la réponse.)boxcoxfit
.Je suppose que zéro! = Données manquantes, car la question est tout à fait différente.
Quand on réfléchit à la façon de gérer les zéros dans une régression linéaire multiple, j'ai tendance à considérer combien de zéros avons-nous réellement?
Seulement quelques zéros
Si j'ai un seul zéro dans un ensemble de données assez volumineux, j'ai tendance à:
Vous pouvez rendre cette procédure un peu moins crue et utiliser la méthode boxcox avec les décalages décrits dans la réponse de ars.
Grand nombre de zéros
Si mon ensemble de données contient un grand nombre de zéros, cela suggère que la régression linéaire simple n'est pas le meilleur outil pour le travail. J'utiliserais plutôt quelque chose comme une modélisation de mélange (comme suggéré par Srikant et Robin).
la source
Si vous voulez quelque chose de rapide et sale, pourquoi ne pas utiliser la racine carrée?
la source
Je suppose que vous avez des données continues.
Si les données incluent des zéros, cela signifie que vous avez un pic sur zéro qui peut être dû à un aspect particulier de vos données. Il apparaît, par exemple, dans l’énergie éolienne, que le vent au-dessous de 2 m / s produit une puissance nulle (il s’appelle cut-in) et que le vent au-dessus de (environ 25 km / s) produit également une puissance nulle (pour des raisons de sécurité, il s’appelle coupé) . Bien que la distribution de l'énergie éolienne produite semble continue, il y a une pointe de zéro.
Ma solution: dans ce cas, je suggère de traiter les zéros séparément en utilisant un mélange du pic en zéro et du modèle que vous avez prévu d'utiliser pour la partie de la distribution qui est continue (avec Lebesgue).
la source
En comparant la réponse fournie par @RobHyndman à une transformation log-plus-one étendue aux valeurs négatives sous la forme:
la source
Puisque l'ajustement Box-Cox à deux paramètres a été proposé, voici quelques R pour ajuster les données d'entrée, exécuter une fonction arbitraire dessus (par exemple, prévision de série chronologique), puis renvoyer la sortie inversée:
la source
Supposons que Y représente la somme d'argent que chaque Américain dépense pour une nouvelle voiture au cours d'une année donnée (prix d'achat total). Y va piquer à 0; n'aura aucune valeur entre 0 et environ 12 000; et prendra d'autres valeurs principalement dans les années de l'adolescence, la vingtaine et la trentaine de milliers. Les prédicteurs seraient des substituts du niveau de besoin et / ou d'intérêt pour effectuer un tel achat. On peut difficilement dire que le besoin ou l’intérêt est nul pour les personnes qui n’effectuent aucun achat; sur ces échelles, les non-acheteurs seraient beaucoup plus proches des acheteurs que Y ou même le log de Y ne le suggère. Dans un cas très semblable à celui observé dans le secteur de la santé, j’ai trouvé que les prévisions les plus précises, à en juger par la validation croisée des ensembles de tests et d’entraînement, ont été obtenues par ordre croissant:
Certains vont reculer devant cette catégorisation d'une variable dépendante continue. Mais bien que cela sacrifie certaines informations, la catégorisation semble aider en restaurant un aspect sous-jacent important de la situation - encore une fois, le fait que les "zéros" sont beaucoup plus similaires aux autres que ce que Y aurait indiqué.
la source
La transformation de puissance Yeo-Johnson décrite ici présente d'excellentes propriétés conçues pour gérer les zéros et les négatifs tout en s'appuyant sur les points forts de la transformation de puissance Box Cox. C’est ce à quoi je vais généralement quand j’ai affaire à des zéros ou des données négatives.
Voici un résumé des transformations avec les avantages / inconvénients pour illustrer pourquoi Yeo-Johnson est préférable.
Bûche
Avantages: fait bien avec des données positives.
Inconvénients: Ne gère pas les zéros.
Log Plus 1
Avantages: l'offset plus 1 ajoute la possibilité de gérer les zéros en plus des données positives.
Inconvénients: échoue avec les données négatives
Racine carrée
Avantages: Utilise une transformation de puissance capable de gérer les zéros et les données positives.
Inconvénients: échoue avec les données négatives
Box Cox
Code R:
Avantages: Permet des transformations de puissance à l'échelle
Inconvénients: Souffre de problèmes de zéros et de négatifs (c.-à-d. Ne peut gérer que des données positives.
Yeo Johnson
Code R:
Avantages: Peut traiter des données positives, nulles et négatives.
Inconvénients: Aucun que je puisse penser. Les propriétés sont très similaires à Box-Cox mais peuvent gérer des données nulles et négatives.
la source
Pour clarifier la manière de traiter le log de zéro dans les modèles de régression, nous avons rédigé un document pédagogique expliquant la meilleure solution et les erreurs courantes commises par les utilisateurs. Nous avons également proposé une nouvelle solution pour résoudre ce problème.
Vous pouvez trouver le document en cliquant ici: https://ssrn.com/abstract=3444996
Dans notre article, nous fournissons en fait un exemple où ajouter de très petites constantes fournit le biais le plus élevé. Nous fournissons une expression du biais.
En fait, le pseudo-maximum de vraisemblance de Poisson (PPML) peut être considéré comme une bonne solution à ce problème. On doit considérer le processus suivant:
Nous montrons que cet estimateur est non biaisé et qu’il peut simplement être estimé avec GMM avec n’importe quel logiciel statistique standard. Par exemple, il peut être estimé en exécutant une seule ligne de code avec Stata.
Nous espérons que cet article pourra vous aider et nous serions ravis de recevoir vos commentaires.
Christophe Bellégo et Louis-Daniel Pape CREST - Ecole Polytechnique - ENSAE
la source