Identification des valeurs aberrantes pour la régression non linéaire

11

Je fais des recherches sur le domaine de la réponse fonctionnelle des acariens. Je voudrais faire une régression pour estimer les paramètres (taux d'attaque et temps de manipulation) de la fonction Rogers type II. J'ai un ensemble de données de mesures. Comment puis-je déterminer au mieux les valeurs aberrantes?

Pour ma régression, j'utilise le script suivant dans R (une régression non linéaire): (l'ensemble de dates est un simple fichier texte à 2 colonnes appelé data.txtfichier avec des N0valeurs (nombre de proies initiales) et des FRvaleurs (nombre de proies mangées pendant 24 heures):

library("nlstools")
dat <- read.delim("C:/data.txt")    
#Rogers type II model
a <- c(0,50)
b <- c(0,40)
plot(FR~N0,main="Rogers II normaal",xlim=a,ylim=b,xlab="N0",ylab="FR")
rogers.predII <- function(N0,a,h,T) {N0 - lambertW(a*h*N0*exp(-a*(T-h*N0)))/(a*h)}
params1 <- list(attackR3_N=0.04,Th3_N=1.46)
RogersII_N <-  nls(FR~rogers.predII(N0,attackR3_N,Th3_N,T=24),start=params1,data=dat,control=list(maxiter=    10000))
hatRIIN <- predict(RogersII_N)
lines(spline(N0,hatRIIN))
summary(RogersII_N)$parameters

Pour tracer les graphiques des résidus calssiques, j'utilise le script suivant:

res <- nlsResiduals (RogersII_N)
plot (res, type = 0)
hist (res$resi1,main="histogram residuals")
    qqnorm (res$resi1,main="QQ residuals")
hist (res$resi2,main="histogram normalised residuals")
    qqnorm (res$resi2,main="QQ normalised residuals")
par(mfrow=c(1,1))
boxplot (res$resi1,main="boxplot residuals")
    boxplot (res$resi2,main="boxplot normalised residuals")

Des questions

  • Comment puis-je déterminer au mieux les points de données qui sont aberrants?
  • Y a-t-il des tests que je peux utiliser dans R qui sont objectifs et me montrent quels points de données sont aberrants?
Joachim
la source

Réponses:

9

Plusieurs tests pour les valeurs aberrantes, y compris Dixon et Grubb, sont disponibles dans le outlierspackage en R. Pour une liste des tests, consultez la documentation du package. Les références décrivant les tests sont données dans les pages d'aide des fonctions correspondantes.

Dans le cas où vous envisagez de supprimer les valeurs aberrantes de vos données, gardez à l'esprit que ce n'est pas toujours conseillé. Voir par exemple cette question pour une discussion à ce sujet (ainsi que d'autres suggestions sur la façon de détecter les valeurs aberrantes).

MånsT
la source
8

Je ne suis pas non plus statisticien. Par conséquent, j'utilise mes connaissances spécialisées sur les données pour trouver des valeurs aberrantes. C'est-à-dire que je recherche des raisons physiques / biologiques / quelles que soient les raisons qui ont rendu certaines mesures différentes des autres.

Dans mon cas, c'est par exemple

  • les rayons cosmiques gâchent une partie du signal mesuré
  • quelqu'un entrant dans le laboratoire, allumant la lumière
  • juste tout le spectre semble différent
  • la première série de mesures a été prise pendant les heures normales de travail et est un ordre de grandeur plus bruyant que la série de 22 heures

Vous pourriez sûrement nous dire des effets similaires.

Notez que mon 3ème point est différent des autres: je ne sais pas ce qui s'est passé. C'est peut-être le genre de valeur aberrante dont vous parlez. Cependant, sans savoir ce qui l'a causé (et que cette cause invalide le point de données), il est difficile de dire qu'il ne devrait pas apparaître dans l'ensemble de données. Aussi: votre valeur aberrante peut être mon échantillon le plus intéressant ...

Par conséquent, je ne parle souvent pas de valeurs aberrantes, mais de points de données suspects. Cela rappelle à chacun qu'ils doivent être revérifiés pour leur signification.

Qu'il soit bon ou non d'exclure des données (qui veut trouver des valeurs aberrantes juste pour les avoir?) Dépend beaucoup de la tâche à accomplir et des "conditions aux limites" de cette tâche. Quelques exemples:

  • vous venez de découvrir la nouvelle sous-espèce de outlierensis Joachimii ;-) aucune raison de les exclure. Exclure tous les autres.

  • vous voulez prédire les temps de proie des acariens. S'il est acceptable de limiter la prédiction à certaines conditions, vous pouvez formuler celles-ci et exclure tous les autres échantillons et dire que votre modèle prédictif traite de telle ou telle situation, bien que vous sachiez déjà que d'autres situations (décrivez les valeurs aberrantes ici) se produisent.

  • Gardez à l'esprit que l'exclusion de données à l'aide de diagnostics de modèle peut créer une sorte de prophétie auto-réalisatrice ou un biais trop optimiste (c'est-à-dire si vous prétendez que votre méthode est généralement applicable): plus vous excluez d'échantillons parce qu'ils ne correspondent pas à votre meilleures sont les hypothèses rencontrées par les échantillons restants. Mais c'est uniquement à cause de l'exclusion.

  • J'ai actuellement une tâche à accomplir où j'ai un tas de mauvaises mesures (je connais la raison physique pour laquelle je considère que la mesure est mauvaise), et quelques autres qui "semblent bizarres". Ce que je fais, c'est que j'exclus ces échantillons de la formation d'un modèle (prédictif), mais teste séparément le modèle avec ceux-ci afin que je puisse dire quelque chose sur la robustesse de mon modèle contre les valeurs aberrantes de ces types qui, je le sais, se produiront de temps en temps dans un tout . Ainsi, l'application doit d'une manière ou d'une autre traiter ces valeurs aberrantes.

  • Une autre façon de voir les valeurs aberrantes consiste à demander: "Dans quelle mesure influencent-elles mon modèle?" (Influence). De ce point de vue, vous pouvez mesurer la robustesse ou la stabilité par rapport à des échantillons d'entraînement étranges.

  • Quelle que soit la procédure statistique que vous utilisez, elle n'identifiera aucune valeur aberrante ou comportera également des faux positifs. Vous pouvez caractériser une procédure de test aberrant comme les autres tests de diagnostic: elle a une sensibilité et une spécificité et - plus important pour vous - elles correspondent (via la proportion aberrante dans vos données) à une valeur prédictive positive et négative. En d'autres termes, en particulier si vos données contiennent très peu de valeurs aberrantes, la probabilité qu'un cas identifié par le test de valeurs aberrantes soit vraiment une valeur aberrante (c'est-à-dire qu'il ne devrait pas figurer dans les données) peut être très faible.
    Je crois que la connaissance experte des données disponibles est généralement bien meilleure pour détecter les valeurs aberrantes que les tests statistiques: le test est tout aussi bon que les hypothèses sous-jacentes. Et une solution unique n'est souvent pas vraiment bonne pour l'analyse des données. Au moins, j'ai souvent affaire à une sorte de valeurs aberrantes, où les experts (sur ce type de mesure) n'ont aucun problème à identifier la partie exacte du signal qui est compromise alors que les procédures automatisées échouent souvent (il est facile de les faire détecter qu'il y a un problème, mais il est très difficile de leur faire trouver où le problème commence et où il se termine).

cbeleites mécontents de SX
la source
Il y a beaucoup de bonnes informations ici. J'aime particulièrement les puces # 4 & 5.
gung - Réinstalle Monica
4

Pour les valeurs aberrantes univariées, il y a le test de rapport de Dixon et le test de Grubbs en supposant la normalité. Pour tester une valeur aberrante, vous devez supposer une distribution de la population parce que vous essayez de montrer que la valeur observée est extrême ou inhabituelle pour provenir de la distribution supposée. J'ai un article dans l'American Statistician en 1982 que j'ai peut-être référencé ici avant, qui montre que le test de ratio de Dixon peut être utilisé dans de petits échantillons, même pour certaines distributions non normales. Chernick, MR (1982) "A Note on the Robustness of Dixon's Ratio in Small Samples" American Statistician p 140. Pour les valeurs aberrantes multivariées et les valeurs aberrantes dans les séries chronologiques, les fonctions d'influence pour les estimations de paramètres sont des mesures utiles pour détecter les valeurs aberrantes de manière informelle (je ne sais pas de tests formels construits pour eux bien que de tels tests soient possibles)."Valeurs aberrantes dans les données statistiques" pour un traitement détaillé des méthodes de détection des valeurs aberrantes.

Michael R. Chernick
la source
3

Voir http://www.waset.org/journals/waset/v36/v36-45.pdf , "On the outlier Detection in Nonlinear Regression" [ sic ].

Abstrait

La détection des valeurs aberrantes est très essentielle en raison de leur responsabilité de produire un énorme problème d'interprétation dans l'analyse de régression linéaire et non linéaire. Beaucoup de travail a été accompli sur l'identification des valeurs aberrantes dans la régression linéaire, mais pas dans la régression non linéaire. Dans cet article, nous proposons plusieurs techniques de détection des valeurs aberrantes pour la régression non linéaire. L'idée principale est d'utiliser l'approximation linéaire d'un modèle non linéaire et de considérer le gradient comme la matrice de conception. Par la suite, les techniques de détection sont formulées. Six mesures de détection sont développées, combinées à trois techniques d'estimation telles que les estimateurs des moindres carrés, M et MM. L'étude montre que parmi les six mesures, seuls le résidu studentisé et la distance de cuisson qui, combinés à l'estimateur MM,

hosein
la source
+1 Malgré les problèmes évidents de l'anglais (et de la composition mathématique), cet article semble être une contribution utile à la question.
whuber
2

Une valeur aberrante est un point qui est «trop loin» de «une base de référence». L'astuce consiste à définir ces deux phrases! Avec la régression non linéaire, on ne peut pas simplement utiliser des méthodes univariées pour voir si une valeur aberrante est "trop ​​loin" de la courbe la mieux ajustée, car la valeur aberrante peut avoir une énorme influence sur la courbe elle-même.

Ron Brown et moi avons développé une méthode unique (que nous appelons ROUT - Régression robuste et suppression des valeurs aberrantes) pour détecter les valeurs aberrantes avec une régression non linéaire, sans laisser les valeurs aberrantes affecter trop la courbe. Ajuster d'abord les données avec une méthode de régression robuste où les valeurs aberrantes ont peu d'influence. Cela forme la ligne de base. Utilisez ensuite les idées du False Discovery Rate (FDR) pour définir quand un point est «trop éloigné» de cette ligne de base, et il en va de même pour une valeur aberrante. Enfin, il supprime les valeurs aberrantes identifiées et ajuste les points restants de manière conventionnelle.

La méthode est publiée dans une revue en libre accès: Motulsky HJ et Brown RE, Detecting outliers when fiting data with nonlinear regression - a new method based on robust nonlinear regression and the false discovery rate , BMC Bioinformatics 2006, 7: 123. Voici le résumé:

Contexte. La régression non linéaire, comme la régression linéaire, suppose que la dispersion des données autour de la courbe idéale suit une distribution gaussienne ou normale. Cette hypothèse conduit à l'objectif familier de la régression: minimiser la somme des carrés des distances verticales ou Y entre les points et la courbe. Les valeurs aberrantes peuvent dominer le calcul de la somme des carrés et conduire à des résultats trompeurs. Cependant, nous ne connaissons aucune méthode pratique pour identifier systématiquement les valeurs aberrantes lors de l'ajustement des courbes avec une régression non linéaire.

Résultats. Nous décrivons une nouvelle méthode pour identifier les valeurs aberrantes lors de l'ajustement des données avec une régression non linéaire. Nous ajustons d'abord les données en utilisant une forme robuste de régression non linéaire, basée sur l'hypothèse que la diffusion suit une distribution lorentzienne. Nous avons conçu une nouvelle méthode adaptative qui devient progressivement plus robuste à mesure que la méthode progresse. Pour définir les valeurs aberrantes, nous avons adapté l'approche du taux de fausses découvertes à la gestion de comparaisons multiples. Nous supprimons ensuite les valeurs aberrantes et analysons les données en utilisant la régression des moindres carrés ordinaires. Parce que la méthode combine une régression robuste et une suppression des valeurs aberrantes, nous l'appelons la méthode ROUT.

Lors de l'analyse de données simulées, où toute la diffusion est gaussienne, notre méthode détecte (faussement) une ou plusieurs valeurs aberrantes dans seulement 1 à 3% des expériences. Lors de l'analyse de données contaminées par une ou plusieurs valeurs aberrantes, la méthode ROUT fonctionne bien lors de l'identification des valeurs aberrantes, avec un taux moyen de fausses découvertes inférieur à 1%.

Conclusion. Notre méthode, qui combine une nouvelle méthode de régression non linéaire robuste avec une nouvelle méthode d'identification des valeurs aberrantes, identifie les valeurs aberrantes des ajustements de courbe non linéaire avec une puissance raisonnable et peu de faux positifs.

Il n'a pas (pour autant que je sache) été implémenté dans R. Mais nous l'avons implémenté dans GraphPad Prism. et fournissez une explication simple dans l' aide de Prism .

Harvey Motulsky
la source
0

Votre question est trop générale. Il n'y a pas de meilleure méthode pour exclure les "valeurs aberrantes".

Il fallait connaître quelques propriétés sur les "valeurs aberrantes". ou vous ne savez pas quelle méthode est la meilleure. Après avoir décidé quelle méthode vous souhaitez utiliser, vous devez calibrer soigneusement les paramètres de la méthode.

ZYD
la source