Comment savoir quel type de distribution représente ces données sur les temps de réponse ping?


22

J'ai échantillonné un processus du monde réel, les temps de ping du réseau. Le "temps d'aller-retour" est mesuré en millisecondes. Les résultats sont tracés sur un histogramme:

texte alternatif

Les temps de ping ont une valeur minimale, mais une longue queue supérieure.

Je veux savoir de quelle distribution statistique il s'agit et comment estimer ses paramètres.

Même si la distribution n'est pas une distribution normale, je peux toujours montrer ce que j'essaie de réaliser.

La distribution normale utilise la fonction:

texte alternatif

avec les deux paramètres

  • μ (moyenne)
  • σ 2  (variance)

Estimation des paramètres

Les formules d'estimation des deux paramètres sont les suivantes:

texte alternatif

En appliquant ces formules aux données que j'ai dans Excel, j'obtiens:

  • μ = 10,9558 (moyenne)
  • σ 2  = 67,4578 (variance)

Avec ces paramètres, je peux tracer la distribution " normale " sur mes données échantillonnées:

texte alternatif

Évidemment, ce n'est pas une distribution normale. Une distribution normale a une queue infinie en haut et en bas et est symétrique. Cette distribution n'est pas symétrique.


  • Quels principes appliquerais-je? quel organigramme dois-je appliquer pour déterminer de quel type de distribution il s'agit?
  • Étant donné que la distribution n'a pas de queue négative et longue queue positive: quelles distributions correspondent à cela?
  • Y a-t-il une référence qui fait correspondre les distributions aux observations que vous prenez?

Et pour aller droit au but, quelle est la formule de cette distribution, et quelles sont les formules pour estimer ses paramètres?


Je veux obtenir la distribution afin de pouvoir obtenir la valeur "moyenne", ainsi que la "propagation": texte alternatif

Je trace actuellement l'histogramme dans le logiciel et je veux superposer la distribution théorique:

texte alternatif

Remarque: publication croisée de math.stackexchange.com


Mise à jour : 160 000 échantillons:

entrez la description de l'image ici

Des mois et des mois, et d'innombrables séances d'échantillonnage, tous donnent la même distribution. Il doit y avoir une représentation mathématique.


Harvey a suggéré de mettre les données sur une échelle logarithmique. Voici la densité de probabilité sur une échelle logarithmique:

entrez la description de l'image ici

Tags : échantillonnage, statistiques, estimation des paramètres, distribution normale


Ce n'est pas une réponse, mais un addendum à la question. Voici les compartiments de distribution. Je pense que la personne la plus aventureuse pourrait aimer les coller dans Excel (ou tout autre programme que vous connaissez) et découvrir la distribution.

Les valeurs sont normalisées

Time    Value
53.5    1.86885613545469E-5
54.5    0.00396197500716395
55.5    0.0299702228922418
56.5    0.0506460012708222
57.5    0.0625879919763777
58.5    0.069683415770654
59.5    0.0729476844872482
60.5    0.0508017392821101
61.5    0.032667605247748
62.5    0.025080049337802
63.5    0.0224138145845533
64.5    0.019703973188144
65.5    0.0183895443728742
66.5    0.0172059354870862
67.5    0.0162839664602619
68.5    0.0151688822994406
69.5    0.0142780608748739
70.5    0.0136924859524314
71.5    0.0132751080821798
72.5    0.0121849420031646
73.5    0.0119419907055555
74.5    0.0117114984488494
75.5    0.0105528076448675
76.5    0.0104219877153857
77.5    0.00964952717939773
78.5    0.00879608287754009
79.5    0.00836624596638551
80.5    0.00813575370967943
81.5    0.00760001495084908
82.5    0.00766853967581576
83.5    0.00722624372375815
84.5    0.00692099722163388
85.5    0.00679017729215205
86.5    0.00672788208763689
87.5    0.00667804592402477
88.5    0.00670919352628235
89.5    0.00683378393531266
90.5    0.00612361860383988
91.5    0.00630427469693383
92.5    0.00621706141061261
93.5    0.00596788059255199
94.5    0.00573115881539439
95.5    0.0052950923837883
96.5    0.00490886211579433
97.5    0.00505214108617919
98.5    0.0045413204091549
99.5    0.00467214033863673
100.5   0.00439181191831853
101.5   0.00439804143877004
102.5   0.00432951671380337
103.5   0.00419869678432154
104.5   0.00410525397754881
105.5   0.00440427095922156
106.5   0.00439804143877004
107.5   0.00408656541619426
108.5   0.0040616473343882
109.5   0.00389345028219728
110.5   0.00392459788445485
111.5   0.0038249255572306
112.5   0.00405541781393668
113.5   0.00393705692535789
114.5   0.00391213884355182
115.5   0.00401804069122759
116.5   0.0039432864458094
117.5   0.00365672850503968
118.5   0.00381869603677909
119.5   0.00365672850503968
120.5   0.00340131816652754
121.5   0.00328918679840026
122.5   0.00317082590982146
123.5   0.00344492480968815
124.5   0.00315213734846692
125.5   0.00324558015523965
126.5   0.00277213660092446
127.5   0.00298394029627599
128.5   0.00315213734846692
129.5   0.0030649240621457
130.5   0.00299639933717902
131.5   0.00308984214395176
132.5   0.00300885837808206
133.5   0.00301508789853357
134.5   0.00287803844860023
135.5   0.00277836612137598
136.5   0.00287803844860023
137.5   0.00265377571234566
138.5   0.00267246427370021
139.5   0.0027472185191184
140.5   0.0029465631735669
141.5   0.00247311961925171
142.5   0.00259148050783051
143.5   0.00258525098737899
144.5   0.00259148050783051
145.5   0.0023485292102214
146.5   0.00253541482376687
147.5   0.00226131592390018
148.5   0.00239213585338201
149.5   0.00250426722150929
150.5   0.0026288576305396
151.5   0.00248557866015474
152.5   0.00267869379415173
153.5   0.00247311961925171
154.5   0.00232984064886685
155.5   0.00243574249654262
156.5   0.00242328345563958
157.5   0.00231738160796382
158.5   0.00256656242602444
159.5   0.00221770928073957
160.5   0.00241705393518807
161.5   0.00228000448525473
162.5   0.00236098825112443
163.5   0.00216787311712744
164.5   0.00197475798313046
165.5   0.00203705318764562
166.5   0.00209311887170926
167.5   0.00193115133996985
168.5   0.00177541332868196
169.5   0.00165705244010316
170.5   0.00160098675603952
171.5   0.00154492107197588
172.5   0.0011150841608213
173.5   0.00115869080398191
174.5   0.00107770703811221
175.5   0.000946887108630378
176.5   0.000853444301857643
177.5   0.000822296699600065
178.5   0.00072885389282733
179.5   0.000753771974633393
180.5   0.000766231015536424
181.5   0.000566886361087923

1
En le regardant, cela ressemble à une distribution normale asymétrique. Êtes-vous sûr que les valeurs aberrantes sont nécessaires pour votre analyse?
Brandon Bertelsen

1
Mon analyse consistera uniquement à dessiner un joli graphique au-dessus des barres :) Mais ce serait tricher de prétendre qu'il n'y avait pas de queue haut ...
Ian Boyd

Vous obtenez beaucoup d'idées utiles pour différentes distributions. Pour répondre à votre question "Je veux savoir de quelle distribution statistique il s'agit", la méthode habituelle est un tracé QQ, facile à générer dans R.
Mike Dunlavey

1
Bien sûr, si tout ce que vous voulez est une courbe lisse, prenez toutes vos données, triez-les pour faire un CDF empirique, lissez-le et prenez la première dérivée numériquement. Voilà votre courbe.
Mike Dunlavey

Réponses:


12

Weibull est parfois utilisé pour modéliser le temps de ping. essayez une distribution weibull. Pour en installer un dans R:

x<-rweibull(n=1000,shape=2,scale=100)
#generate a weibull (this should be your data).
hist(x)
#this is an histogram of your data.
library(survival)
a1<-survreg(Surv(x,rep(1,1000))~1,dist='weibull')
exp(a1$coef) #this is the ML estimate of the scale parameter
1/a1$scale     #this is the ML estimate of the shape parameter

Si vous vous demandez les noms loufoques (c.-à-d. L'échelle $ pour obtenir l'inverse de la forme), c'est parce que "survreg" utilise une autre paramétrisation (c.-à-d. Qu'il est paramétré en termes de "weibull inverse" qui est plus commun en sciences actuarielles) .


10

Permettez-moi de poser une question plus fondamentale: que voulez-vous faire avec ces informations de distribution?

La raison pour laquelle je pose la question est qu'il peut être plus logique d'approximer la distribution avec une sorte d'estimateur de densité de noyau, plutôt que d'insister pour qu'elle s'intègre dans l'une des distributions de familles exponentielles (éventuellement décalées). Vous pouvez répondre à presque toutes les mêmes sortes de questions auxquelles une distribution standard vous permettra de répondre, et vous n'avez pas à vous soucier (autant) de savoir si vous avez sélectionné le bon modèle.

Mais s'il y a un temps minimum fixe, et que vous devez avoir une sorte de distribution paramétrée de manière compacte pour l'accompagner, alors juste en le regardant, je soustrais le minimum et j'adapte un gamma, comme d'autres l'ont suggéré.


je veux dessiner la courbe de distribution théorique dessus, trouver la moyenne , la médiane , l' écart-type . Surtout, je voudrais la médiane, mais vraiment je veux dessiner la courbe théorique.
Ian Boyd

1
Je pense que Rich voulait dire quelque chose comme "Quel genre de question essayez-vous de répondre?" Déterminer la distribution des données est une question, oui, mais il y a sûrement une autre question à laquelle vous vous attendez à pouvoir répondre une fois que vous connaissez la distribution. Qu'Est-ce que c'est?
Matt Parker

@MattParker, je veux savoir quelle est l'heure de "pointe".
Ian Boyd

2
@IanBoyd Je ne pense pas que vous ayez vraiment besoin de connaître la distribution théorique pour l'obtenir - la médiane fonctionnerait-elle? Et pour ombrer les «écarts-types» adjacents, vous pouvez simplement utiliser des quantiles. Si votre objectif est de communiquer combien de temps la plupart des pings prennent, je ne vois rien de mal à rapporter la médiane avec les quantiles de 25% et 75%. Ou, si vous souhaitez émuler les 68% qui se situent à moins de 1 ET de la moyenne dans la distribution normale, les quantiles 16% et 84%.
Matt Parker

8

Il n'y a aucune raison de s'attendre à ce que tout ensemble de données du monde réel corresponde à une forme de distribution connue ... en particulier à partir d'une source de données aussi désordonnée connue.

Ce que vous voulez faire avec les réponses indiquera en grande partie une approche. Par exemple, si vous voulez savoir quand les temps de ping ont changé de manière significative, alors la tendance de la distribution empirique peut être un chemin à parcourir. Si vous souhaitez identifier les valeurs aberrantes, d'autres techniques peuvent être plus appropriées.


Je veux vraiment dessiner la courbe mathématique qui suit la distribution. Certes, il ne s'agit peut-être pas d'une distribution connue; mais je ne peux pas imaginer que cela n'a pas été étudié auparavant.
Ian Boyd

4
Recherchez «estimation de densité».
PeterR

6

Une approche plus simple pourrait être de transformer les données. Après transformation, il pourrait être proche de la gaussienne.

Une façon courante de le faire est de prendre le logarithme de toutes les valeurs.

Je suppose que dans ce cas, la distribution de l'inverse des temps d'aller-retour sera plus symétrique et peut-être proche de la gaussienne. En prenant la réciproque, vous tabulez essentiellement les vitesses plutôt que les temps, il est donc toujours facile d'interpréter les résultats (contrairement aux logarithmes ou à de nombreuses transformations).


4

xGamma(k,θ)

Mise à jour - Processus d'estimation

θ^k^k^


en fait, j'allais faire des efforts pour éviter de mentionner la distribution Gamma. je l'ai vu sur Wikipédia, je ne peux pas vraiment trouver la formule pour la distribution, ou les formules pour estimer les paramètres de cette formule. Et puis je suis devenu vraiment nerveux quand j'ai vu "Il n'y a pas de solution de forme fermée pour k." Et je l'ai quand même essayé avec quelques formules - mais quand vous obtenez un paquet qui revient en 0 ms, le ln (0) explose.
Ian Boyd

Parce que même si j'ai une bonne compréhension de la distribution normale, depuis mes jours à l'université, je suis au-dessus de ma tête quand on arrive à des choses comme "la divergence Kullback-Leibler" .
Ian Boyd

k

Oui, techniquement, cela devrait être appelé <1ms. Et ce tracé n'inclut pas zéro, car il passe par une liaison à latence plus élevée (modem). Mais je peux exécuter le programme aussi bien sur un lien plus rapide (c.-à-d. Cingler une autre machine sur le LAN), et obtenir régulièrement <1mset 1ms, avec beaucoup moins d'occurrences de 2ms. Malheureusement, Windows ne fournit que la résolution de 1ms. je pouvais le chronométrer manuellement à l'aide d'un compteur haute performance, obtenant µs; mais j'espérais toujours pouvoir les mettre dans des seaux (pour économiser de la mémoire). Je devrais peut-être ajouter 1 ms à tout ...1ms ==> (0..1]
Ian Boyd

adapter simplement les gammas avec R: docs.google.com/…
apeescape

4

Une autre approche, plus justifiée par des considérations de réseau, consiste à essayer d'adapter une somme d'exponentielles indépendantes avec différents paramètres. Une hypothèse raisonnable serait que chaque nœud sur le chemin du ping du retard serait une exponentielle indépendante, avec des paramètres différents. Une référence à la forme distributionnelle de la somme des exponentielles indépendantes avec des paramètres différents est http://www.math.bme.hu/~balazs/sumexp.pdf .

Vous devriez probablement aussi regarder les temps de ping par rapport au nombre de sauts.


3

En regardant cela, je dirais qu'une distribution asymétrique-normale ou peut-être une distribution binormale pourrait bien lui convenir.

Dans R, vous pouvez utiliser la snbibliothèque pour gérer une distribution et une utilisation asymétriques nlsou mlepour effectuer un ajustement non linéaire des moindres carrés ou un maximum d'extinction de vraisemblance de vos données.

===

EDIT: relisant votre question / commentaires j'ajouterais quelque chose de plus

Si ce qui vous intéresse, c'est de dessiner un joli graphique sur les barres, oubliez les distributions, peu importe si vous ne faites rien avec. Dessinez simplement une B-spline sur votre point de données et vous êtes bon.

De plus, avec cette approche, vous évitez d'avoir à implémenter un algorithme d'ajustement MLE (ou similaire), et vous êtes couvert dans le cas d'une distribution qui n'est pas asymétrique (ou tout ce que vous choisissez de dessiner)


+1, je pensais aussi au binôme lorsque j'ai vu l'histogramme pour la première fois. (Je ne sais pas pourquoi cela a été rejeté).
doug

Eh bien, ce ne sont pas seulement de jolies lignes. J'aimerais également pouvoir pointer vers le véritable «pic» de la courbe, ainsi que l'ombre dans une unité d'écart type de chaque côté.
Ian Boyd

@IanBoyd: Une spline B suffira pour ces choses, d'autant plus que l'histogramme est relativement basse résolution. Ensuite, cela dépend toujours de ce que vous entendez par «vrai» pic.
nico

2

Basé sur votre commentaire "Je veux vraiment dessiner la courbe mathématique qui suit la distribution. Certes, ce n'est peut-être pas une distribution connue; mais je ne peux pas imaginer que cela n'ait pas été étudié auparavant." Je propose une fonction qui correspond en quelque sorte.

Jetez un œil à ExtremeValueDistribution

J'ai ajouté une amplitude et fait les deux bêtas différents. Je pense que le centre de votre fonction est plus proche de 9,5 puis 10.

Nouvelle fonction: a E ^ (- E ^ (((- x + alpha) / b1)) + (-x + alpha) / b2) / ((b1 + b2) / 2)

{alpha-> 9,5, b2 -> 0,899093, a -> 5822,2, b1 -> 0,381825}

Wolfram alpha : tracé 11193.8 E ^ (- E ^ (1.66667 (10 - x)) + 1.66667 (10 - x)), x 0..16, y de 0 à 4500

Quelques points autour de 10 ms:
{{9, 390.254}, {10, 3979.59}, {11, 1680.73}, {12, 562.838}}

La queue ne rentre cependant pas parfaitement. La queue peut être mieux ajustée si b2 est plus bas et que le pic est choisi pour être plus proche de 9.


En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.