Identificazione di valori anomali per regressione non lineare


11

Sto facendo ricerche sul campo della risposta funzionale degli acari. Vorrei fare una regressione per stimare i parametri (velocità di attacco e tempo di gestione) della funzione di tipo II di Rogers. Ho un set di dati di misurazioni. Come posso determinare meglio i valori anomali?

Per la mia regressione uso il seguente script in R (una regressione non lineare): (il set di date è un semplice file di testo a 2 colonne chiamato data.txtfile con N0valori (numero di prede iniziali) e FRvalori (numero di prede mangiate durante 24 ore):

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

Per tracciare i grafici dei residui di calssic uso il seguente script:

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")

Domande

  • Come posso determinare meglio quali punti dati sono anomali?
  • Ci sono test che posso usare in R che sono obiettivi e mi mostrano quali punti dati sono anomali?

Risposte:


9

Numerosi test per gli outlier, inclusi Dixon e Grubb, sono disponibili nel outlierspacchetto in R. Per un elenco dei test, consultare la documentazione del pacchetto. I riferimenti che descrivono i test sono riportati nelle pagine della guida per le funzioni corrispondenti.

Nel caso in cui avessi intenzione di rimuovere i valori anomali dai tuoi dati, tieni presente che questo non è sempre consigliabile. Vedi ad esempio questa domanda per una discussione al riguardo (oltre ad alcuni altri suggerimenti su come rilevare i valori anomali).


8

Né sono uno statistico. Pertanto utilizzo le mie conoscenze specialistiche sui dati per trovare valori anomali. Cioè cerco ragioni fisiche / biologiche / qualunque siano le ragioni che hanno reso alcune misurazioni diverse dalle altre.

Nel mio caso questo è ad es

  • i raggi cosmici incasinano parte del segnale misurato
  • qualcuno entra nel laboratorio, accende la luce
  • solo l'intero spettro sembra in qualche modo diverso
  • la prima serie di misurazioni è stata presa durante il normale orario di lavoro ed è un ordine di ingrandimento più rumoroso della serie delle 10 di sera

Sicuramente potresti dirci effetti simili.

Nota che il mio terzo punto è diverso dagli altri: non so cosa sia successo. Questo potrebbe essere il tipo di anomalia di cui ti stai chiedendo. Tuttavia, senza sapere cosa lo ha causato (e che questa causa invalida il punto dati) è difficile dire che non dovrebbe apparire nel set di dati. Inoltre: il tuo outlier potrebbe essere il mio campione più interessante ...

Pertanto, spesso non parlo di valori anomali, ma di punti di dati sospetti. Questo ricorda a tutti che devono essere ricontrollati per il loro significato.

Se sia utile o meno escludere i dati (chi vuole trovare valori anomali solo per il gusto di averli?) Dipende molto da ciò che l'attività è a portata di mano e quali sono le "condizioni al contorno" per tale attività. Qualche esempio:

  • hai appena scoperto la nuova sottospecie di Joachimii outlierensis ;-) nessun motivo per escluderli. Escludere tutti gli altri.

  • vuoi prevedere i tempi di preda degli acari. Se è accettabile limitare la previsione a determinate condizioni, è possibile formularle ed escludere tutti gli altri campioni e affermare che il proprio modello predittivo si occupa di questa o quella situazione, anche se si conoscono già altre situazioni (descrivere qui di seguito).

  • Tieni presente che l'esclusione dei dati con l'aiuto della diagnostica dei modelli può creare una sorta di profezia che si autoavvera o un pregiudizio eccessivamente ottimistico (cioè se affermi che il tuo metodo è generalmente applicabile): più campioni escludi perché non si adattano al tuo ipotesi, migliori sono le ipotesi soddisfatte dai campioni rimanenti. Ma questo è solo a causa dell'esclusione.

  • Attualmente ho un compito a portata di mano in cui ho un sacco di misurazioni errate (conosco il motivo fisico per cui ritengo la misurazione errata) e alcune altre che in qualche modo "sembrano strane". Quello che faccio è che escludo questi campioni dalla formazione di un modello (predittivo), ma testando separatamente il modello con questi in modo da poter dire qualcosa sulla solidità del mio modello contro i valori anomali di quei tipi che so si verificheranno una volta ogni volta in un mentre . Pertanto, l'applicazione in qualche modo deve gestire questi valori anomali.

  • Ancora un altro modo di guardare ai valori anomali è chiedere: "Quanto influenzano il mio modello?" (Leva). Da questo punto di vista è possibile misurare la robustezza o la stabilità rispetto a strani campioni di allenamento.

  • Qualunque sia la procedura statistica che usi, non identificherà alcun valore anomalo o avrà anche falsi positivi. Puoi caratterizzare una procedura di test anomala come altri test diagnostici: ha una sensibilità e una specificità e, cosa più importante per te, corrispondono (tramite la proporzione anomala nei dati) a un valore predittivo positivo e negativo. In altre parole, in particolare se i tuoi dati hanno pochissimi valori anomali, la probabilità che un caso identificato dal test anomalo sia davvero un valore anomalo (cioè non dovrebbe essere nei dati) può essere molto bassa.
    Credo che le conoscenze degli esperti sui dati a portata di mano siano generalmente molto migliori nel rilevare valori anomali rispetto ai test statistici: il test è buono quanto le ipotesi alla base. E una taglia unica non è spesso molto utile per l'analisi dei dati. Almeno mi occupo spesso di una sorta di valori anomali, in cui gli esperti (su quel tipo di misurazione) non hanno problemi a identificare la parte esatta del segnale che è compromessa mentre le procedure automatizzate spesso falliscono (è facile far loro rilevare che esiste un problema, ma molto difficile farli trovare dove inizia e dove finisce il problema).


Ci sono molte buone informazioni qui. Mi piacciono in particolare i punti elenco # 4 e 5.
gung - Ripristina Monica

4

Per gli outlier univariati c'è il test del rapporto di Dixon e il test di Grubbs che assume la normalità. Per verificare un valore anomalo devi assumere una distribuzione della popolazione perché stai cercando di dimostrare che il valore osservato è estremo o insolito derivante dalla distribuzione presunta. Ho un articolo nello Statistician americano del 1982 a cui potrei fare riferimento qui prima che dimostra che il test del rapporto di Dixon può essere usato in piccoli campioni anche per alcune distribuzioni non normali. Chernick, MR (1982) "Una nota sulla robustezza del rapporto di Dixon in piccoli campioni" Statistico americano p 140. Per gli outlier multivariati e gli outlier nelle serie temporali, le funzioni di influenza per le stime dei parametri sono misure utili per rilevare informalmente gli outlier (non lo so di test formali costruiti per loro sebbene tali test siano possibili)."Valori anomali nei dati statistici" per il trattamento dettagliato dei metodi di rilevazione dei valori anomali.


3

Vedi http://www.waset.org/journals/waset/v36/v36-45.pdf , "Sul rilevamento anomalo nella regressione non lineare" [ sic ].

Astratto

Il rilevamento di valori anomali è molto essenziale a causa della loro responsabilità di produrre enormi problemi interpretativi nell'analisi della regressione lineare e non lineare. Molto lavoro è stato compiuto sull'identificazione di valori anomali nella regressione lineare, ma non nella regressione non lineare. In questo articolo proponiamo diverse tecniche di rilevazione anomale per la regressione non lineare. L'idea principale è utilizzare l'approssimazione lineare di un modello non lineare e considerare il gradiente come matrice di progettazione. Successivamente, vengono formulate le tecniche di rilevazione. Sono state sviluppate sei misure di rilevamento combinate con tre tecniche di stima come gli stimatori dei minimi quadrati, M e MM. Lo studio mostra che tra le sei misure, solo il residuo studentizzato e la distanza di cottura combinati con lo stimatore MM,


+1 Nonostante gli ovvi problemi con l'inglese (e nella composizione matematica), questo documento sembra essere un utile contributo alla domanda.
whuber

2

Un valore anomalo è un punto "troppo lontano" da "una linea di base". Il trucco è definire entrambe quelle frasi! Con la regressione non lineare, non si può semplicemente usare metodi univariati per vedere se un outlier è "troppo lontano" dalla curva più adatta, perché il outlier può avere un'enorme influenza sulla curva stessa.

Ron Brown ed io abbiamo sviluppato un metodo unico (che chiamiamo ROUT - regressione robusta e rimozione dei valori anomali) per il rilevamento di valori anomali con regressione non lineare, senza lasciare che il valore anomalo influisca troppo sulla curva. Innanzitutto adatta i dati con un solido metodo di regressione in cui i valori anomali hanno poca influenza. Questo costituisce la linea di base. Quindi usa le idee del False Discovery Rate (FDR) per definire quando un punto è "troppo lontano" da quella linea di base, e quindi è un valore anomalo. Infine, rimuove i valori anomali identificati e si adatta convenzionalmente ai punti rimanenti.

Il metodo è pubblicato in un giornale ad accesso aperto: Motulsky HJ e Brown RE, Rilevamento di valori anomali quando si adattano i dati con regressione non lineare - un nuovo metodo basato su una regressione non lineare robusta e il tasso di falsa scoperta , BMC Bioinformatics 2006, 7: 123. Ecco l'abstract:

Sfondo. La regressione non lineare, come la regressione lineare, presuppone che la diffusione di dati attorno alla curva ideale segua una distribuzione gaussiana o normale. Questo presupposto porta al familiare obiettivo della regressione: minimizzare la somma dei quadrati delle distanze verticali o del valore Y tra i punti e la curva. I valori anomali possono dominare il calcolo della somma dei quadrati e portare a risultati fuorvianti. Tuttavia, non conosciamo alcun metodo pratico per identificare sistematicamente i valori anomali quando si adattano le curve con regressione non lineare.

Risultati. Descriviamo un nuovo metodo per identificare i valori anomali quando si adattano i dati con regressione non lineare. Innanzitutto adattiamo i dati utilizzando una forma robusta di regressione non lineare, basata sul presupposto che la dispersione segue una distribuzione lorentziana. Abbiamo ideato un nuovo metodo adattivo che diventa gradualmente più robusto man mano che il metodo procede. Per definire i valori anomali, abbiamo adattato l'approccio del tasso di rilevamento falso alla gestione di confronti multipli. Quindi rimuoviamo gli outlier e analizziamo i dati usando la normale regressione dei minimi quadrati. Poiché il metodo combina una regressione affidabile e una rimozione anomala, lo chiamiamo metodo ROUT.

Quando si analizzano i dati simulati, dove tutta la dispersione è gaussiana, il nostro metodo rileva (falsamente) uno o più valori anomali solo nell'1–3% circa degli esperimenti. Quando si analizzano i dati contaminati con uno o più valori anomali, il metodo ROUT si comporta bene all'identificazione dei valori anomali, con un tasso di rilevamento falso medio inferiore all'1%.

Conclusione. Il nostro metodo, che combina un nuovo metodo di robusta regressione non lineare con un nuovo metodo di identificazione anomala, identifica valori anomali da adattamenti di curve non lineari con potenza ragionevole e pochi falsi positivi.

Non è stato (per quanto ne so) implementato in R. Ma l'abbiamo implementato in GraphPad Prism. e fornire una semplice spiegazione nella guida di Prism .


0

La tua domanda è troppo generica. Non esiste un metodo migliore per escludere i "valori anomali".

Dovevi conoscere alcune proprietà degli "outlier". o non sai quale sia il metodo migliore. Dopo aver deciso quale metodo si desidera utilizzare, è necessario calibrare attentamente i parametri del metodo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.