Hai bisogno di aiuto per identificare una distribuzione dal suo istogramma


13

Ho la popolazione campione dei massimi di ampiezza registrati di un certo segnale. La popolazione è di circa 15 milioni di campioni. Ho prodotto un istogramma della popolazione, ma non riesco a indovinare la distribuzione con un simile istogramma.

EDIT1: Il file con valori di esempio non elaborati è qui: dati non elaborati

Qualcuno può aiutare a stimare la distribuzione con il seguente istogramma: inserisci qui la descrizione dell'immagine


1
non che sia estremamente importante, ma quando si usano gli istogrammi di solito aiuta ad avere la frequenza relativa anziché la frequenza assoluta sull'asse y.
posdef

cioè fornire 120000/15000000 = 0,008 anziché 120000 sull'asse verticale?
mbaitoff,

@mbaitoff: i tuoi commenti alla risposta di schenectady indicano che sei meno interessato a ottenere il nome della distribuzione ma a scoprire PERCHÉ i valori sono distribuiti in questo modo. È corretto ?
Steffen,

1
m

2
Il vero interesse per questi dati risiede nella dozzina o più picchi: la quantità di dati è abbastanza grande da renderli reali , nel senso che sono prova delle effettive modalità locali. Sembra che ci sia un ricco set di dati qui con una ricchezza di informazioni che sarebbero trascurate se una semplice formula parametrica utilizzata per riassumere la loro distribuzione.
whuber

Risposte:


23

Usa fitdistrplus:

Ecco il link CRAN a fitdistrplus.

Ecco il vecchio link vignetta per fitdistrplus.

Se il collegamento alla vignetta non funziona, cerca "Uso della libreria fitdistrplus per specificare una distribuzione dai dati".

La vignetta fa un buon lavoro nel spiegare come usare il pacchetto. Puoi vedere come le varie distribuzioni si adattano in un breve periodo di tempo. Produce anche un diagramma Cullen / Frey.

#Example from the vignette
library(fitdistrplus)
x1 <- c(6.4, 13.3, 4.1, 1.3, 14.1, 10.6, 9.9, 9.6, 15.3, 22.1, 13.4, 13.2, 8.4, 6.3, 8.9, 5.2, 10.9, 14.4)
plotdist(x1)
descdist(x1)

f1g <- fitdist(x1, "gamma")
plot(f1g)
summary(f1g)      

inserisci qui la descrizione dell'immagine

inserisci qui la descrizione dell'immagine


(+1): non conoscevo quel pacchetto prima.
Steffen,

1
(+1 (non sapevo che si chiamasse diagramma di Cullen / Frey. A un certo punto
dovevo inventarmelo da

la seconda immagine è con plotdistcomamnd? Come posso ottenere il diagramma Cullen / Frey?
juanpablo,

1
@juanpablo - Prova descdist(). Ho aggiornato il post sopra per includere un po 'di codice e un link alla vecchia vignetta. Non riesco a far funzionare il link vignetta sopra. Quindi, Google quanto segue: "Utilizzo della libreria fitdistrplus per specificare una distribuzione dai dati". È un file .pdf.
bill_080,

3
@juanpablo - L'istruzione f1g <- fitdist(x1, "gamma")adatta una distribuzione gamma ai dati originali x1e li memorizza f1g. Il grafico in alto a sinistra plot(f1g)mostra un istogramma per i dati originali x1come barre e il grafico della densità gamma adattato da f1gcome linea continua. Il grafico della densità (linea continua) viene disegnato sopra l'istogramma come un'indicazione di quanto bene l'adattamento rappresenti i dati.
bill_080,

6

La popolazione è di circa 15 milioni di campioni.

Quindi molto probabilmente sarai in grado di rifiutare qualsiasi distribuzione particolare di un modulo semplice e chiuso.

Anche quel piccolo urto a sinistra del grafico sarà probabilmente sufficiente per farci dire "chiaramente non così e così".

D'altra parte, è probabilmente abbastanza ben approssimato da una serie di distribuzioni comuni; i candidati ovvi sono cose come lognormale e gamma, ma ce ne sono molti altri. Se guardi il registro della variabile x, puoi probabilmente decidere se il lognormale è a vista (dopo aver preso i registri, l'istogramma dovrebbe apparire simmetrico).

Se il registro è inclinato a sinistra, considera se Gamma è a posto, se è inclinato a destra, considera se il Gamma inverso o (anche più inclinato) gaussiano inverso va bene. Ma questo esercizio è più quello di trovare una distribuzione abbastanza vicina da convivere; nessuno di questi suggerimenti in realtà ha tutte le caratteristiche che sembrano essere presenti lì.

Se hai qualche teoria a supporto di una scelta, lancia tutta questa discussione e usala.


Wow, che tipo di intuito riguardo alla questione; simpatico! :)
onurcanbektas il

1

Non sono sicuro del motivo per cui vorresti classificare un campione in una distribuzione specifica con una dimensione del campione così grande; parsimonia, confrontandolo con un altro campione, cercando l'interpretazione fisica dei parametri?

La maggior parte dei pacchetti statistici (R, SAS, Minitab) consente di tracciare i dati su un grafico che produce una linea retta se i dati provengono da una particolare distribuzione. Ho visto grafici che producono una linea retta se i dati sono normali (log normale-dopo una trasformazione del log), Weibull e chi-quadrato vengono immediatamente al mio. Questa tecnica ti permetterà di vedere i valori anomali e ti darà la possibilità di assegnare ragioni per cui i punti dati sono valori anomali. In R, il normale diagramma di probabilità è chiamato qqnorm.


Buona idea suggerendo il qqplot. Tuttavia, penso che la tua spiegazione della tecnica sia un po 'vaga / difficile da capire. Potete fornire un codice R esemplare? Ciò aumenterebbe drasticamente il valore della risposta.
Steffen,

Mi aspetto che qualcuno abbia incontrato l'immagine come la mia e abbia studiato la distribuzione sottostante, perché i valori hanno basi fisiche.
mbaitoff,

Sto studiando il background fisico della distribuzione del campione: come viene distribuita e perché.
mbaitoff,
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.