Besoin d'aide pour identifier une distribution par son histogramme

13

J'ai la population d'échantillon des maxima d'amplitude enregistrés d'un certain signal. La population est d'environ 15 millions d'échantillons. J'ai produit un histogramme de la population, mais je ne peux pas deviner la distribution avec un tel histogramme.

EDIT1: le fichier contenant les valeurs brutes des échantillons est ici: données brutes

Quelqu'un peut-il aider à estimer la distribution avec l'histogramme suivant: entrez la description de l'image ici

mbaitoff
la source
1
ce n'est pas important, mais lorsque vous utilisez des histogrammes, il est généralement utile d'avoir la fréquence relative au lieu de la fréquence absolue sur l'axe des y.
posdef
c'est-à-dire, pour fournir 120000/15000000 = 0,008 au lieu de 120000 sur l'axe vertical?
mbaitoff
@mbaitoff: Vos commentaires à la réponse de schenectady indiquent que vous êtes moins intéressé à obtenir le nom de la distribution mais à découvrir POURQUOI les valeurs sont distribuées de cette façon. Est-ce correct ?
steffen
1
@mbaitoff, je ne suis pas sûr que cela conviendrait parfaitement à votre application, mais dans les domaines d'application connexes, les amplitudes des ondes qui subissent (de nombreuses) réflexions aléatoires entre la source et le récepteur sont modélisées par une distribution de Rayleigh ou l'une de ses généralisations, par exemple, Rice ou Nakagami- distributions. m
Cardinal
2
L'intérêt réel de ces données réside dans la douzaine de pointes ou plus: la quantité de données est suffisamment importante pour qu'elles soient réelles , en ce sens qu'elles témoignent de modes locaux réels. Il semble y avoir un riche ensemble de données ici avec une multitude d'informations qui seraient ignorées si une simple formule paramétrique était utilisée pour résumer leur distribution.
whuber

Réponses:

23

Utilisez fitdistrplus:

Voici le lien CRAN vers fitdistrplus.

Voici l' ancien lien de vignette pour fitdistrplus.

Si le lien de la vignette ne fonctionne pas, effectuez une recherche sur «Utilisation de la bibliothèque fitdistrplus pour spécifier une distribution à partir des données».

La vignette explique bien comment utiliser le package. Vous pouvez voir comment les différentes distributions s’adaptent en peu de temps. Il produit également un diagramme de 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)      

entrez la description de l'image ici

entrez la description de l'image ici

bill_080
la source
(+1): Je ne connaissais pas ce package auparavant.
steffen
1
(+1 (ne savait pas que cela s'appelait un diagramme de Cullen / Frey. J'ai dû le trouver moi-même à un moment donné.
Glen_b -Reinstate Monica
la deuxième image est avec plotdistcomamnd? Comment puis-je obtenir le diagramme de Cullen / Frey?
juanpablo
1
@juanpablo - Essayez descdist(). J'ai mis à jour le message ci-dessus pour inclure du code et un lien vers l'ancienne vignette. Je n'ai pas pu faire fonctionner le lien de vignette ci-dessus. Donc, Google ce qui suit: "Utilisation de la bibliothèque fitdistrplus pour spécifier une distribution à partir des données". Il s'agit d'un fichier .pdf.
bill_080
3
@juanpablo - L'instruction f1g <- fitdist(x1, "gamma")adapte une distribution gamma aux données d'origine x1et la stocke f1g. Le graphique supérieur gauche plot(f1g)montre un histogramme pour les données originales x1sous forme de barres et le tracé de densité gamma ajusté à partir f1gde la ligne continue. Le tracé de densité (ligne continue) est tracé sur l'histogramme pour indiquer dans quelle mesure le "fit" représente les données.
bill_080
6

La population est d'environ 15 millions d'échantillons.

Vous pourrez alors très probablement rejeter toute distribution particulière d'un formulaire simple et fermé.

Même cette petite bosse à gauche du graphique suffira probablement à nous faire dire «clairement pas tel ou tel».

D'un autre côté, il est probablement assez bien approximé par un certain nombre de distributions communes; les candidats évidents sont des choses comme lognormal et gamma, mais il y en a une foule d'autres. Si vous regardez le journal de la variable x, vous pouvez probablement décider si le lognormal est correct à vue (après avoir pris les journaux, l'histogramme doit être symétrique).

Si le journal est asymétrique à gauche, demandez-vous si le gamma est correct, s'il est asymétrique à droite, demandez-vous si le gamma inverse ou (encore plus asymétrique) le gaussien inverse est correct. Mais cet exercice consiste plus à trouver une distribution suffisamment proche pour vivre avec; aucune de ces suggestions n'a réellement toutes les fonctionnalités qui semblent y être présentes.

Si vous avez une théorie pour appuyer un choix, jetez toute cette discussion et utilisez-la.

Glen_b -Reinstate Monica
la source
Wow, quel genre d'intuition que sur la question; agréable! :)
onurcanbektas
1

Je ne sais pas pourquoi vous voudriez classer un échantillon dans une distribution spécifique avec une taille d'échantillon aussi grande; parcimonie, le comparer à un autre échantillon, à la recherche d'une interprétation physique des paramètres?

La plupart des progiciels statistiques (R, SAS, Minitab) permettent de tracer des données sur un graphique qui produit une ligne droite si les données proviennent d'une distribution particulière. J'ai vu des graphiques qui donnent une ligne droite si les données sont normales (log normal-après une transformation logarithmique), Weibull et chi-carré viennent au mien immédiatement. Cette technique vous permettra de voir les valeurs aberrantes et vous donnera la possibilité d'attribuer des raisons pour lesquelles les points de données sont des valeurs aberrantes. Dans R, le tracé de probabilité normal est appelé qqnorm.

schenectady
la source
Bonne idée suggérant le qqplot. Cependant, je pense que votre explication de la technique est un peu vague / difficile à comprendre. Pouvez-vous fournir un code R exemplaire? Cela augmenterait considérablement la valeur de la réponse.
steffen
Je pense que quelqu'un a rencontré l'image comme la mienne et a étudié la distribution sous-jacente, car les valeurs ont une base physique.
mbaitoff
J'étudie le contexte physique de la distribution de l'échantillon - comment il est distribué et pourquoi.
mbaitoff