Quelle petite quantité faut-il ajouter à x pour éviter de prendre le log de zéro?

57

J'ai analysé mes données telles quelles. Maintenant, je veux regarder mes analyses après avoir pris le journal de toutes les variables. Beaucoup de variables contiennent beaucoup de zéros. J'ajoute donc une petite quantité pour éviter de prendre le log de zéro.

Jusqu'ici, j'ai ajouté 10 ^ -10, sans aucune justification, juste parce que j'avais envie d'ajouter une très petite quantité serait souhaitable afin de minimiser l'effet de la quantité que j'ai choisie arbitrairement. Mais certaines variables contiennent principalement des zéros, et donc, lorsqu'elles sont consignées pour la plupart, -23.02. La plage des plages de mes variables est comprise entre 1,33 et 8819,21, et la fréquence des zéros varie également considérablement. Par conséquent, mon choix personnel de "petite quantité" affecte les variables très différemment. Il est clair maintenant que 10 ^ -10 est un choix totalement inacceptable, car la majeure partie de la variance de toutes les variables provient alors de cette "petite quantité" arbitraire.

Je me demande quelle serait une façon plus correcte de faire cela.

Peut-être est-il préférable de déduire la quantité de chaque distribution individuelle de variables? Existe-t-il des directives sur la taille de cette "petite quantité"?

Mes analyses sont pour la plupart simples modèles Cox avec chaque variable et âge / sexe comme IV. Les variables sont les concentrations de divers lipides sanguins, avec des coefficients de variation souvent considérables.

Éditer : L'ajout de la plus petite valeur non nulle de la variable semble pratique pour mes données. Mais peut-être existe-t-il une solution générale?

Edit 2 : Les zéros indiquant simplement des concentrations inférieures à la limite de détection, leur attribuer la valeur (limite de détection) / 2 conviendrait peut-être?

miura
la source
4
Pourquoi prenez-vous des observations / variables? log
2
Si vous ajoutez à vos variables, les variables qui étaient des zéros sur l'échelle d'origine seront des zéros sur l'échelle du journal. 1
MånsT
5
Avez-vous ce problème avec la variable de réponse ou juste les variables explicatives? S'il ne s'agit que de ce dernier critère, il peut être envisagé d'ajouter, en fonction de la taille de l'échantillon, des variables nominales supplémentaires indiquant que la concentration d'un analyte donné était inférieure au seuil de détection. Cela absorbe des degrés de liberté, mais présente l’avantage de ne pas imposer un choix arbitraire ad hoc aux données. Cela peut également permettre de découvrir des non-linéarités ou des discontinuités proches du seuil de détection qui pourraient sinon être prises en compte.
cardinal
2
@Procrastinator L'échelle logarithmique est naturelle pour les concentrations en raison de la relation exponentielle entre la constante d'équilibre et l'énergie de Gibbs; En fait, dans la chimie "continue", la concentration est quelque peu irréelle.
2
Une autre solution consisterait à prendre, par exemple, la racine cubique des données. Elle ne vous mènera pas jusqu'au journal, mais conservera les zéros sans redimensionnement.
jbowman

Réponses:

26

Comme les zéros indiquent simplement des concentrations inférieures à la limite de détection, il serait peut-être approprié de les définir sur (limite de détection) / 2.

Je viens de taper que la chose qui me vient à l’esprit, où se logue (logiquement) a du sens et où 0 peut se produire, ce sont des concentrations lorsque vous avez effectué la 2e édition. Comme vous le dites, pour les concentrations mesurées, le 0 signifie simplement "je ne pouvais pas mesurer ces faibles concentrations".

Note latérale: voulez-vous dire LOQ au lieu de LOD?

Que définir la valeur 0 sur LOQ soit une bonne idée ou non dépend:12

  • du point de vue que est votre "conjecture" exprimant que c est compris entre 0 et LOQ, cela a du sens. Mais considérons la fonction d’étalonnage correspondante: à gauche, la fonction d’étalonnage donne c = 0 en dessous de la LOQ. Sur la droite, est utilisé à la place de 0.12LOQ1

    entrez la description de l'image icientrez la description de l'image ici
    12LOQ

  • Cependant, si la valeur mesurée d'origine est disponible, cela peut fournir une meilleure estimation. Après tout, LOQ signifie généralement que l'erreur relative est de 10%. En dessous, la mesure contient toujours des informations, mais l'erreur relative devient énorme.
    entrez la description de l'image ici
    (bleu: LOD, rouge: LOQ)

  • Une alternative serait d'exclure ces mesures. Cela peut aussi être raisonnable,
    par exemple, imaginez une courbe d’étalonnage. En pratique, vous observez souvent une forme sigmoïde: pour les valeurs de c faibles, signal ≈ constant, comportement linéaire intermédiaire, puis saturation du détecteur. entrez la description de l'image ici
    Dans ce cas, vous voudrez peut-être vous limiter aux déclarations sur les concentrations qui se situent clairement dans la plage linéaire, car les processus en dessous et au-dessus des autres processus influencent considérablement le résultat.
    Assurez-vous d’expliquer que les données ont été sélectionnées de cette manière et pourquoi.


edit: Ce qui est sensible ou acceptable, dépend bien sûr du problème. Espérons que nous parlons ici d'une petite partie des données qui n'influencent pas l'analyse.

Une vérification rapide et fictive est peut-être: lancez votre analyse de données avec et sans exclure les données (ou le traitement que vous proposez) et voyez si quelque chose change de manière substantielle.

Si vous voyez des changements, alors bien sûr que vous avez des problèmes. Cependant, du point de vue de la chimie analytique, je dirais que votre problème ne réside pas principalement dans la méthode que vous utilisez pour traiter les données, mais le problème sous-jacent est que la méthode analytique (ou sa plage de travail) n'était pas appropriée pour: le problème à portée de main. Il existe bien sûr une zone dans laquelle la meilleure approche statistique peut vous faire gagner du temps, mais à la fin l'approximation "garbage in, garbage out" est également valable pour les méthodes les plus sophistiquées.

Citations pour le sujet:

  • Un statisticien m'a dit un jour:

    Le problème avec vous (chimistes / spectroscopistes), c’est que vos problèmes sont si difficiles à résoudre qu’ils ne peuvent pas être résolus, ou si faciles qu’il n’est pas amusant de les résoudre.

  • Fisher sur le post-mortem statistique des expériences

cbeleites soutient Monica
la source
1
J'aime la citation en bas (+1).
Réintégrer Monica le
32

Les données de concentration en produits chimiques ont souvent des zéros, mais elles ne représentent pas des valeurs nulles : ce sont des codes qui représentent de manière différente (et source de confusion) les non- détecteurs (la mesure indiquée, avec un degré de probabilité élevé, que l'analyte n'était pas présent) et "non quantifiée". valeurs (la mesure a détecté l’analyte mais n’a pas pu produire de valeur numérique fiable). Appelons simplement vaguement ces "ND" ici.

En règle générale, une limite est associée à un ND, également appelé "limite de détection", "limite de quantification" ou (beaucoup plus honnêtement) "limite de notification", car le laboratoire choisit de ne pas fournir de valeur numérique (souvent pour des raisons juridiques). les raisons). Tout ce que nous savons vraiment sur un ND, c’est que la valeur réelle est probablement inférieure à la limite associée: c’est presque (mais pas tout à fait) une forme de censure à gauche.. (Et bien, ce n’est pas vraiment vrai non plus: c’est une fiction commode. Ces limites sont déterminées par des calibrations qui, dans la plupart des cas, ont des propriétés statistiques médiocres à terribles. Elles peuvent être grossièrement surestimées ou sous-estimées. vous regardez un ensemble de données de concentration qui semblent avoir une extrémité droite lognormale qui est coupée (par exemple) à , plus un "pic" à représentant tous les ND. Cela suggérerait fortement que la limite de déclaration est juste un un peu moins de , mais les données de laboratoire peuvent essayer de vous dire que c’est ou ou quelque chose comme ça.)1.3301.330.50.1

Des recherches approfondies ont été menées au cours des 30 dernières années environ sur la meilleure façon de résumer et d’évaluer de tels ensembles de données. Dennis Helsel a publié un livre sur ce sujet, Nondetects and Data Analysis (Wiley, 2005), enseigne un cours et a publié un Rpackage basé sur certaines des techniques qu’il privilégie. Son site web est complet.

Ce champ est semé d’erreurs et d’idées fausses. Helsel est franc à ce sujet: sur la première page du chapitre 1 de son livre, il écrit:

... la méthode la plus couramment utilisée dans les études environnementales de nos jours, le remplacement de la moitié de la limite de détection, n'est PAS une méthode raisonnable pour interpréter les données censurées.

Alors que faire? Les options incluent ignorer ce bon conseil, appliquer certaines des méthodes décrites dans le livre de Helsel et utiliser certaines méthodes alternatives. C'est vrai, le livre n'est pas complet et des alternatives valables existent. L'ajout d'une constante à toutes les valeurs de l'ensemble de données ("leur départ") en est une. Mais considérons:

  • L'ajout de n'est pas un bon point de départ car cette recette dépend des unités de mesure. Ajouter microgramme par décilitre n'aura pas le même résultat que d'ajouter millimole par litre.111

  • Après avoir démarré toutes les valeurs, vous aurez toujours un pic à la plus petite valeur, représentant cette collection de ND. Vous espérez que ce pic correspond aux données quantifiées, en ce sens que sa masse totale est approximativement égale à la masse d’une distribution log-normale comprise entre et la valeur de départ.0

    Un excellent outil pour déterminer la valeur de départ est un diagramme de probabilité lognormal: à part les ND, les données doivent être approximativement linéaires.

  • La collection de ND peut également être décrite avec une distribution dite "logta normale delta". C'est un mélange d'une masse ponctuelle et d'une lognormale.

Comme le montrent les histogrammes suivants de valeurs simulées, les distributions censurée et delta ne sont pas les mêmes. L'approche delta est plus utile pour les variables explicatives dans la régression: vous pouvez créer une variable "factice" pour indiquer les ND, prendre en logarithme des valeurs détectées (ou les transformer au besoin), sans vous soucier des valeurs de remplacement des ND. .

Les histogrammes

Dans ces histogrammes, environ 20% des valeurs les plus basses ont été remplacées par des zéros. Pour la comparabilité, elles sont toutes basées sur les mêmes 1 000 valeurs log-normales sous-jacentes simulées (en haut à gauche). La distribution delta a été créée en remplaçant 200 des valeurs par des zéros au hasard . La distribution censurée a été créée en remplaçant les 200 plus petites valeurs par des zéros. La distribution "réaliste" est conforme à mon expérience, à savoir que les limites de déclaration varient en pratique (même lorsque cela n’est pas indiqué par le laboratoire!): Je les ai fait varier de manière aléatoire (par un peu, rarement plus de 30 dans les deux sens) et a remplacé toutes les valeurs simulées inférieures aux limites de déclaration par des zéros.

Pour montrer l'utilité du graphe de probabilité et expliquer son interprétation , la figure suivante présente des graphe de probabilité normaux liés aux logarithmes des données précédentes.

Parcelles de probabilité

La partie supérieure gauche montre toutes les données (avant toute censure ou tout remplacement). C'est un bon ajustement à la ligne diagonale idéale (nous attendons des déviations dans les queues extrêmes). C’est ce que nous visons d’obtenir dans tous les graphes suivants (mais, en raison des ND, nous n'atteindrons inévitablement pas cet idéal.) La partie supérieure droite est un graphique de probabilité pour le jeu de données censuré, utilisant une valeur de départ de 1. C'est un ajustement terrible, car tous les ND (tracé à 0, carlog(1+0)=0) sont tracés beaucoup trop bas. La partie inférieure gauche est un graphique de probabilité pour le jeu de données censuré avec une valeur de début de 120, proche de la limite de rapport typique. L’ajustement en bas à gauche est maintenant correct - nous espérons seulement que toutes ces valeurs s’approchent quelque part, mais à droite de la ligne ajustée - mais la courbure dans la partie supérieure de la queue montre que l’ajout de 120 commence à modifier le forme de la distribution. La partie inférieure droite montre ce qui se passe avec les données delta-log normales: il y a un bon ajustement à la queue supérieure, mais une courbure prononcée près de la limite de rapport (au milieu de la parcelle).

Enfin, explorons certains des scénarios les plus réalistes:

Parcelles de probabilité 2

La partie supérieure gauche montre le jeu de données censuré avec les zéros définis à la moitié de la limite de rapports. C'est un très bon ajustement. En haut à droite se trouve l'ensemble de données plus réaliste (avec des limites de rapport variables de manière aléatoire). Une valeur de départ de 1 n'aide pas, mais - en bas à gauche - pour une valeur de départ de 120 (près de la limite supérieure des limites de rapport), l'ajustement est assez bon. Fait intéressant, la courbure vers le milieu lorsque les points montent des valeurs ND aux valeurs quantifiées rappelle la distribution log-normale delta (même si ces données ne sont pas générées à partir d'un tel mélange). En bas à droite se trouve la courbe de probabilité que vous obtenez lorsque les données réalistes voient leur ND remplacé par la moitié de la limite de déclaration (typique). C'est le meilleur ajustement, même s’il présente un comportement de type delta-lognormal au milieu.

Vous devez donc utiliser des diagrammes de probabilité pour explorer les distributions au fur et à mesure que différentes constantes sont utilisées à la place des ND. Commencez la recherche avec la moitié de la limite de rapport nominale, moyenne, puis faites-la varier de haut en bas. Choisissez un graphique qui ressemble au coin inférieur droit: à peu près une ligne droite diagonale pour les valeurs quantifiées, une chute rapide vers un plateau bas et un plateau de valeurs qui (à peine) respecte l'extension de la diagonale. Cependant, suivant les conseils de Helsel (qui est fortement soutenu dans la littérature), évitez toute méthode qui remplace les statistiques de résolution par une constante , même dans les résumés statistiques . Pour la régression, pensez à ajouter une variable muette pour indiquer les ND. Pour certains affichages graphiques, le remplacement constant de ND par la valeur trouvée avec l'exercice de tracé de probabilité fonctionnera bien. Pour les autres affichages graphiques, il peut être important de décrire les limites de déclaration réelles. Par conséquent, remplacez les ND par leurs limites de déclaration. Vous devez être flexible!

whuber
la source
1
Très belle réponse! Je suis complètement d'accord. Et je connais bien le sentiment quand on regarde les données et que l'on réalise qu'avant d'avoir été transformées "comme d'habitude", il existait un ensemble de données parfaitement utile ...
cbeleites soutient Monica
1
limites variables : il existe plusieurs approches différentes pour calculer à la fois la LOD (limite de détection -> pour les réponses qualitatives) et la LOQ (limite de quantification, utilisée pour les mesures quantitatives). J'imagine qu'un laboratoire ne changera généralement pas la méthode de calcul de ces calculs (pour la même méthode analytique). Cependant, ces valeurs sont recalculées chaque fois que le calcul est effectué. Si la méthode nécessite un étalonnage chaque jour ouvrable, chaque jour vous aurez une limite (légèrement) différente.
cbeleites soutient Monica le
1
Limites et raisons légales pour ne pas fournir de petits nombres: les raisons légales n'empêcheraient pas de donner (en plus) des informations plus verbeuses comme un signal brut, la concentration correspondante et un intervalle de confiance / jugement de la mesure (par exemple "en dessous de la limite de quantification"). Vous pouvez également demander au laboratoire d’analyse la courbe d’étalonnage. Je m'attendrais à ce que vous ayez à payer pour cela car c'est du travail supplémentaire, mais je m'attendrais à ce que cela soit possible. Le compromis le moins cher est peut-être de vous fournir toutes les données brutes et de vous laisser l’analyse des données. Cela peut aider s'ils savent que vous êtes statisticien / chimiomètre / chimiste analytique / ...
cbeleites soutient Monica
1
Dans mon travail, nous rencontrons souvent des zéros parce que les données sont arrondies. Dans ce cas, il s’agit de données groupées, voir stats.stackexchange.com/questions/26950/…
Stéphane Laurent le
2
Il existe tout un domaine, la «chimiométrie», consacré à ce sujet et à des sujets connexes, et des livres entiers ont été écrits (et continuent à être écrits), traitant uniquement de ce qu'est une «limite de détection». J'ai rencontré plus de 20 définitions distinctes! La question de la ré-expression d'une variable (telle que son logarithme) est également essentielle pour l'analyse et l'exploration de données. de nombreux ouvrages (en particulier des ouvrages sur l'analyse exploratoire de données) traitent principalement de cette question.
whuber
5

@miura

Je suis tombé sur cet article de Bill Gould sur le blog de Stata (je pense qu’il a en fait fondé Stata) qui, à mon avis, pourrait vous aider dans votre analyse. Vers la fin de l'article, il met en garde contre l'utilisation de nombres arbitraires proches de zéro, tels que 0,01, 0,0001, 0,0000001 et 0, dans la mesure où ils sont -4,61, -9,21, -16,12 et . Dans cette situation, ils ne sont pas du tout arbitraires. Il recommande l'utilisation d'une régression de Poisson car elle reconnaît que les nombres ci-dessus sont réellement proches les uns des autres.

EconStats
la source
3

Vous pouvez définir les zéros de la variable où est suffisamment grand pour distinguer ces cas du reste (par exemple, 6 ou 10).ithmean(xi)n×stddev(xi)n

Notez qu'une telle configuration artificielle affectera vos analyses. Vous devez donc être prudent avec votre interprétation et, dans certains cas, écarter ces cas pour éviter les artefacts.

L'utilisation de la limite de détection est également une idée raisonnable.

Itamar
la source
3

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

Premièrement, nous pensons que l’on devrait se demander pourquoi utiliser une transformation de journal. Dans les modèles de régression, une relation log-log permet d'identifier une élasticité. En effet, si , alors correspond à l’élasticité de à . Le journal peut également linéariser un modèle théorique. Il peut également être utilisé pour réduire l'hétéroscédasticité. Cependant, dans la pratique, il arrive souvent que la variable enregistrée dans le journal contienne des valeurs non positives.log(y)=βlog(x)+εβyx

Une solution souvent proposée consiste à ajouter une constante positive c à toutes les observations pour que . Cependant, contrairement aux régressions linéaires, les régressions log-linéaires ne sont pas robustes à la transformation linéaire de la variable dépendante. Cela est dû à la nature non linéaire de la fonction de journalisation. La transformation de journal étend les valeurs basses et réduit les valeurs hautes. Par conséquent, l'ajout d'une constante faussera la relation (linéaire) entre les zéros et d'autres observations dans les données. L'ampleur du biais généré par la constante dépend en réalité de l'étendue des observations dans les données. Pour cette raison, l'ajout de la plus petite constante possible n'est pas nécessairement la meilleure des pires solutions.YY+c>0

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:

yi=aiexp(α+xiβ) avecE(ai|xi)=1

Ce processus est motivé par plusieurs caractéristiques. Premièrement, il fournit la même interprétation à qu'un modèle semi-log. Deuxièmement, ce processus de génération de données fournit une rationalisation logique des valeurs nulles dans la variable dépendante. Cette situation peut survenir lorsque le terme d'erreur multiplicatif, , est égal à zéro. Troisièmement, l'estimation de ce modèle avec PPML ne rencontre pas la difficulté de calcul lorsque . En supposant que , nous avons . Nous voulons minimiser l'erreur quadratique de ce moment, conduisant aux conditions de premier ordre suivantes:βaiyi=0E(ai|xi)=1E(yiexp(α+xiβ)|xi)=0

i=1N(yiexp(α+xiβ))xi=0

Ces conditions sont définies même lorsque . Ces conditions de premier ordre sont numériquement équivalentes à celles d'un modèle de Poisson. Elles peuvent donc être estimées avec n'importe quel logiciel statistique standard.yi=0

Enfin, nous proposons une nouvelle solution facile à mettre en œuvre et fournissant un estimateur non biaisé de . Il suffit simplement d'estimer:β

log(yi+exp(α+xiβ))=xiβ+ηi

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

Christophe Bellégo
la source