Ich habe einen realen Prozess abgetastet, Netzwerk-Ping-Zeiten. Die "Umlaufzeit" wird in Millisekunden gemessen. Die Ergebnisse werden in einem Histogramm aufgezeichnet:
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:
mit den beiden Parametern
- μ (Mittelwert)
- σ 2 (Varianz)
Parameter Schätzung
Die Formeln zur Schätzung der beiden Parameter lauten:
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 :
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:
Ich zeichne das Histogramm tatsächlich in Software und möchte die theoretische Verteilung überlagern:
Hinweis: Cross-posted von math.stackexchange.com
Update : 160.000 Beispiele:
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:
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
Antworten:
Weibull wird manchmal zur Modellierung der Ping-Zeit verwendet. versuchen Sie es mit einer Weibull-Verteilung. So passen Sie einen in R:
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). .
quelle
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.
quelle
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.
quelle
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.
quelle
Update-Estimation-Prozess
quelle
<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<1ms
und1ms
mit viel weniger Vorkommen von2ms
. Leider bietet Windows nur eine Auflösung von1ms
. 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]
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.
quelle
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
sn
Bibliothek mit Skew-Normalverteilung und die Verwendung umgehennls
odermle
einen 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.
quelle
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.
quelle
Die Distribution sieht für mich log-normal aus .
Sie können Ihre Daten mithilfe von zwei Parametern anpassen: Maßstab und Position. Diese können auf die gleiche Weise wie eine Normalverteilung unter Verwendung der Erwartungsmaximierung angepasst werden.
http://en.wikipedia.org/wiki/Log-normal_distribution
quelle