Wie finde ich heraus, welche Art von Verteilung diese Daten zu Ping-Antwortzeiten darstellt?


22

Ich habe einen realen Prozess abgetastet, Netzwerk-Ping-Zeiten. Die "Umlaufzeit" wird in Millisekunden gemessen. Die Ergebnisse werden in einem Histogramm aufgezeichnet:

Alt-Text

Ping-Zeiten haben einen Mindestwert, aber einen langen oberen Schwanz.

Ich möchte wissen, um welche statistische Verteilung es sich handelt und wie man die Parameter abschätzt.

Auch wenn es sich bei der Verteilung nicht um eine Normalverteilung handelt, kann ich dennoch zeigen, was ich erreichen möchte.

Die Normalverteilung verwendet die Funktion:

Alt-Text

mit den beiden Parametern

  • μ (Mittelwert)
  • σ 2  (Varianz)

Parameter Schätzung

Die Formeln zur Schätzung der beiden Parameter lauten:

Alt-Text

Wenn ich diese Formeln auf die Daten in Excel beziehe, erhalte ich:

  • μ = 10,9558 (Mittelwert)
  • σ 2  = 67,4578 (Varianz)

Mit diesen Parametern kann ich die " normale " Verteilung über meine abgetasteten Daten zeichnen :

Alt-Text

Offensichtlich handelt es sich nicht um eine Normalverteilung. Eine Normalverteilung hat einen unendlichen oberen und unteren Schwanz und ist symmetrisch. Diese Verteilung ist nicht symmetrisch.


  • Welche Grundsätze würde ich anwenden? Welches Flussdiagramm würde ich anwenden, um zu bestimmen, um welche Art von Verteilung es sich handelt?
  • Angesichts dessen, dass die Distribution keinen negativen und langen positiven Tail hat: Welche Distributionen passen dazu?
  • Gibt es einen Verweis, der Verteilungen mit den Beobachtungen vergleicht, die Sie machen?

Und auf den Punkt gebracht: Wie lautet die Formel für diese Verteilung, und wie lauten die Formeln zur Schätzung ihrer Parameter?


Ich möchte die Verteilung erhalten, damit ich den "Durchschnitts" -Wert sowie den "Spread" erhalten kann: Alt-Text

Ich zeichne das Histogramm tatsächlich in Software und möchte die theoretische Verteilung überlagern:

Alt-Text

Hinweis: Cross-posted von math.stackexchange.com


Update : 160.000 Beispiele:

Bildbeschreibung hier eingeben

Monate und Monate und unzählige Stichprobenerhebungen ergeben die gleiche Verteilung. Es muss eine mathematische Darstellung geben.


Harvey schlug vor, die Daten auf eine Protokollskala zu setzen. Hier ist die Wahrscheinlichkeitsdichte auf einer logarithmischen Skala:

Bildbeschreibung hier eingeben

Tags : Stichprobe, Statistik, Parameterschätzung, Normalverteilung


Es ist keine Antwort, sondern ein Nachtrag zur Frage. Hier sind die Verteilungseimer. Ich denke, die abenteuerlustigere Person könnte sie gerne in Excel (oder ein anderes bekanntes Programm) einfügen und die Distribution entdecken.

Die Werte werden normalisiert

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
Betrachtet man es nur, sieht es aus wie eine verzerrte Normalverteilung. Sind Sie sicher, dass die Ausreißer für Ihre Analyse erforderlich sind?
Brandon Bertelsen

1
Meine Analyse wird nur darin bestehen, ein hübsches Diagramm über den Balken zu zeichnen :) Aber es wäre ein Betrug, so zu tun, als gäbe es keinen oberen Schwanz ...
Ian Boyd

Sie erhalten viele nützliche Ideen für verschiedene Distributionen. Zur Beantwortung Ihrer Frage "Ich möchte wissen, um welche statistische Verteilung es sich handelt" ist die übliche Methode ein QQ-Plot, der in R.
Mike Dunlavey

1
Wenn Sie nur eine glatte Kurve wünschen, nehmen Sie natürlich alle Ihre Daten, sortieren Sie sie, um eine empirische CDF zu erstellen, glätten Sie sie und nehmen Sie die erste Ableitung numerisch. Das ist deine Kurve.
Mike Dunlavey

Antworten:


12

Weibull wird manchmal zur Modellierung der Ping-Zeit verwendet. versuchen Sie es mit einer Weibull-Verteilung. So passen Sie einen in 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

Wenn Sie sich nach den verrückten Namen fragen (dh $ scale, um die Inverse der Form zu erhalten), dann deshalb, weil "survreg" eine andere Parametrisierung verwendet (dh sie wird in Bezug auf das "inverse weibull" parametrisiert, was in den versicherungsmathematischen Wissenschaften häufiger vorkommt). .


10

Lassen Sie mich eine grundlegendere Frage stellen: Was möchten Sie mit diesen Verteilungsinformationen tun ?

Der Grund, den ich frage, ist, dass es möglicherweise sinnvoller ist, die Verteilung mit einer Art Kernel-Dichteschätzer zu approximieren, als darauf zu bestehen, dass sie in eine der (möglicherweise verschobenen) exponentiellen Familienverteilungen passt. Sie können fast alle Fragen beantworten, die Sie mit einer Standarddistribution beantworten können, und Sie müssen sich nicht (so sehr) darum kümmern, ob Sie das richtige Modell ausgewählt haben.

Aber wenn es eine festgelegte Mindestzeit gibt und Sie eine Art kompakt parametrisierte Verteilung benötigen, würde ich das Minimum abziehen und ein Gamma anpassen, wie andere vorgeschlagen haben.


Ich möchte die theoretische Verteilungskurve darüber zeichnen, den Mittelwert , den Median und die Standardabweichung ermitteln . Am liebsten hätte ich den Median, aber eigentlich möchte ich die theoretische Kurve zeichnen.
Ian Boyd

1
Ich denke, Rich meinte so etwas wie "Was für eine Frage versuchst du zu beantworten?" Das Bestimmen der Verteilung der Daten ist eine Frage, ja, aber es gibt sicherlich eine andere Frage, die Sie beantworten können, sobald Sie die Verteilung kennen. Was ist es?
Matt Parker

@ MattParker Ich möchte wissen, was die "Peak" Zeit ist.
Ian Boyd

2
@IanBoyd Ich glaube, Sie müssen die theoretische Verteilung nicht wirklich kennen, um dies zu erreichen - würde der Median funktionieren? Und für die Schattierung in den angrenzenden 'Standardabweichungen' könnten Sie einfach Quantile verwenden. Wenn Sie mitteilen möchten, wie lange die meisten Pings dauern, kann ich den Median mit den 25% - und 75% -Quantilen nicht falsch angeben. Oder, wenn Sie die 68% emulieren möchten, die innerhalb von 1 SD des Mittelwerts in der Normalverteilung liegen, die 16% - und 84% -Quantile.
Matt Parker

8

Es gibt keinen Grund zu der Annahme, dass ein Datensatz der realen Welt zu einer bekannten Verteilungsform passt, insbesondere zu einer solchen bekannten unordentlichen Datenquelle.

Was Sie mit den Antworten machen wollen, zeigt weitgehend eine Annäherung an. Wenn Sie beispielsweise wissen möchten, wann sich die Ping-Zeiten erheblich geändert haben, ist es möglicherweise ein guter Weg, die empirische Verteilung zu bestimmen. Wenn Sie Ausreißer identifizieren möchten, sind andere Techniken möglicherweise geeigneter.


Wirklich möchte ich die mathematische Kurve zeichnen, die der Verteilung folgt. Zugegeben, es handelt sich möglicherweise nicht um eine bekannte Distribution. aber ich kann mir nicht vorstellen, dass das noch nie untersucht wurde.
Ian Boyd

4
Suchen Sie nach "Dichteschätzung".
PeterR

6

Ein einfacherer Ansatz könnte darin bestehen, die Daten zu transformieren. Nach der Transformation könnte es nahe an Gauß liegen.

Eine gebräuchliche Methode besteht darin, den Logarithmus aller Werte zu verwenden.

Ich vermute, dass in diesem Fall die Verteilung des Kehrwerts der Umlaufzeiten symmetrischer und möglicherweise nahe an Gauß liegt. Wenn Sie den Kehrwert verwenden, werden die Geschwindigkeiten im Wesentlichen anstelle von Zeiten tabellarisch dargestellt, sodass die Interpretation der Ergebnisse (im Gegensatz zu Logarithmen oder vielen Transformationen) immer noch einfach ist.


4

xGamma(k,θ)

Update-Estimation-Prozess

θ^k^k^


Ich wollte eigentlich vermeiden , die Gamma-Verteilung zu erwähnen. Ich habe es auf Wikipedia gesehen. Ich kann die Formel für die Verteilung oder die Formeln zur Schätzung der Parameter in dieser Formel nicht finden. Und dann wurde ich richtig nervös, als ich sah, dass es für k keine geschlossene Lösung gibt. Und ich habe es trotzdem mit einigen Formeln versucht - aber wenn Sie ein Paket erhalten, das in 0 ms zurückkommt, explodiert die ln (0).
Ian Boyd

Denn während ich die Normalverteilung seit meiner Studienzeit gut verstehe, bin ich überfordert, wenn es um Dinge wie "Kullback-Leibler-Divergenz" geht .
Ian Boyd

k

Ja, technisch sollte es als bezeichnet werden <1ms. Und dieses Diagramm enthält keine Null, da es über eine Verbindung mit höherer Latenz (Modem) geht. Aber ich kann das Programm genauso gut über eine schnellere Verbindung ausführen (dh eine andere Maschine im LAN anpingen) und routinemäßig <1msund 1msmit viel weniger Vorkommen von 2ms. Leider bietet Windows nur eine Auflösung von 1ms. Ich könnte es manuell mit einem Hochleistungszähler messen und µs erhalten. aber ich hatte immer noch gehofft, sie in eimer stecken zu können (um speicher zu sparen). Vielleicht sollte ich 1ms zu allem hinzufügen ...1ms ==> (0..1]
Ian Boyd

einfach gammas mit r anpassen
apeescape

4

Ein weiterer Ansatz, der durch Netzwerküberlegungen gerechtfertigter ist, besteht darin, zu versuchen, eine Summe unabhängiger Exponentiale mit unterschiedlichen Parametern anzupassen. Eine vernünftige Annahme wäre, dass jeder Knoten im Pfad des Pings der Verzögerung ein unabhängiges Exponential mit unterschiedlichen Parametern wäre. Ein Verweis auf die Verteilungsform der Summe unabhängiger Exponentiale mit unterschiedlichen Parametern lautet http://www.math.bme.hu/~balazs/sumexp.pdf .

Sie sollten sich wahrscheinlich auch die Ping-Zeiten und die Anzahl der Hops ansehen.


3

Wenn ich es mir anschaue, würde ich sagen, dass eine schief-normale oder möglicherweise eine binormale Verteilung gut dazu passt.

In R könnten Sie die verwenden snBibliothek mit Skew-Normalverteilung und die Verwendung umgehen nlsoder mleeinen nichtlinearen kleinsten Quadrate oder ein Maximum - Likelihood - extimation Sitz Ihrer Daten zu tun.

===

BEARBEITEN: Lies deine Frage / Kommentare noch einmal Ich würde noch etwas hinzufügen

Wenn Sie daran interessiert sind, nur ein hübsches Diagramm über die Balken zu zeichnen, vergessen Sie die Verteilungen. Wen kümmert es am Ende, wenn Sie nichts damit anfangen. Zeichnen Sie einfach einen B-Spline über Ihren Datenpunkt und Sie sind gut.

Mit diesem Ansatz müssen Sie auch keinen MLE-Anpassungsalgorithmus (oder ähnliches) implementieren und sind im Fall einer Verteilung, die nicht schief normal ist (oder was auch immer Sie zeichnen möchten), abgesichert.


+1 dachte ich auch binomial, als ich das erste mal das histogramm sah. (Ich weiß nicht, warum dies abgelehnt wurde).
Doug

Nun, es sind nicht nur hübsche Linien. Ich möchte auch in der Lage sein, auf die wahre "Spitze" in der Kurve zu zeigen, sowie Schatten in einer Standardabweichungseinheit auf jeder Seite.
Ian Boyd

@ IanBoyd: Ein B-Spline wird für diese Dinge ausreichen, zumal das Histogramm relativ niedrig aufgelöst ist. Dann kommt es immer darauf an, was Sie mit "wahrer" Spitze meinen.
nico

2

Basierend auf Ihrem Kommentar "Wirklich, ich möchte die mathematische Kurve zeichnen, die der Verteilung folgt. Zugegeben, es ist möglicherweise keine bekannte Verteilung, aber ich kann mir nicht vorstellen, dass dies noch nicht untersucht wurde." Ich biete eine Funktion, die irgendwie passt.

Schauen Sie sich ExtremeValueDistribution an

Ich habe eine Amplitude hinzugefügt und die beiden Betas unterschiedlich gemacht. Ich nehme an, die Mitte Ihrer Funktion liegt näher bei 9,5 als bei 10.

Neue Funktion: 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 : Plot 11193,8 E ^ (- E ^ (1,66667 (10 - x)) + 1,66667 (10 - x)), x 0..16, y von 0 bis 4500

Einige Punkte um
10 ms : {{9, 390.254}, {10, 3979.59}, {11, 1680.73}, {12, 562.838}}

Schwanz passt aber nicht perfekt. Der Schwanz kann besser angepasst werden, wenn b2 niedriger ist und der Peak näher an 9 gewählt wird.


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.