Jak dowiedzieć się, jaki rodzaj dystrybucji reprezentuje te dane w czasach odpowiedzi ping?

22

Próbowałem procesu z rzeczywistego świata, czasy pingów w sieci. „Czas podróży w obie strony” jest mierzony w milisekundach. Wyniki wykreślono na histogramie:

alternatywny tekst

Czasy pingowania mają minimalną wartość, ale długi górny ogon.

Chcę wiedzieć, co to jest rozkład statystyczny i jak oszacować jego parametry.

Mimo że rozkład nie jest rozkładem normalnym, wciąż mogę pokazać, co próbuję osiągnąć.

Rozkład normalny wykorzystuje funkcję:

alternatywny tekst

z dwoma parametrami

  • μ (średnia)
  • σ 2  (wariancja)

Oszacowanie parametrów

Wzory do oszacowania dwóch parametrów to:

alternatywny tekst

Stosując te formuły w stosunku do danych, które mam w Excelu, otrzymuję:

  • μ = 10,9558 (średnia)
  • σ 2  = 67,4578 (wariancja)

Za pomocą tych parametrów mogę wykreślić rozkład „ normalny ” na górze moich próbek danych:

alternatywny tekst

Oczywiście nie jest to normalny rozkład. Rozkład normalny ma nieskończony górny i dolny ogon i jest symetryczny. Ten rozkład nie jest symetryczny.


  • Jakie zasady chciałbym zastosować; jaki schemat blokowy zastosowałbym, aby ustalić, jaki to jest rozkład?
  • Biorąc pod uwagę, że rozkład nie ma ogona ujemnego i długi ogon dodatni: jakie rozkłady pasują do tego?
  • Czy istnieje odniesienie, które dopasowuje rozkłady do twoich obserwacji?

I przechodząc do sedna, jaka jest formuła tego rozkładu i jakie są wzory na oszacowanie jego parametrów?


Chcę uzyskać rozkład, aby uzyskać wartość „średnią”, a także „spread”: alternatywny tekst

Właściwie planuję histogram w oprogramowaniu i chcę nałożyć teoretyczny rozkład:

alternatywny tekst

Uwaga: Wysłano z math.stackexchange.com


Aktualizacja : 160 000 próbek:

wprowadź opis zdjęcia tutaj

Miesiące i miesiące oraz niezliczone sesje próbkowania dają ten sam rozkład. Tam musi być reprezentacją matematyczną.


Harvey zasugerował umieszczenie danych w skali dziennika. Oto gęstość prawdopodobieństwa w skali logarytmicznej:

wprowadź opis zdjęcia tutaj

Tagi : próbkowanie, statystyki, szacowanie parametrów, rozkład normalny


To nie jest odpowiedź, ale dodatek do pytania. Oto segmenty dystrybucji. Myślę, że bardziej ryzykowna osoba może wkleić je do Excela (lub dowolnego innego programu, który znasz) i może odkryć dystrybucję.

Wartości są znormalizowane

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
Ian Boyd
źródło
1
Patrząc na to, wygląda jak wypaczony rozkład normalny. Czy na pewno wartości odstające są niezbędne do analizy?
Brandon Bertelsen,
1
Moja analiza będzie polegać wyłącznie na narysowaniu ładnego wykresu nad pasami :) Ale oszustwem byłoby udawanie, że nie było żadnego górnego ogona ...
Ian Boyd
Dostajesz wiele przydatnych pomysłów na różne dystrybucje. Aby odpowiedzieć na pytanie „Chcę wiedzieć, co to jest rozkład statystyczny”, zwykłą metodą jest wykres QQ, łatwy do wygenerowania w R.
Mike Dunlavey
1
Oczywiście, jeśli wszystko, czego chcesz, to gładka krzywa, weź wszystkie dane, posortuj je, aby utworzyć empiryczny CDF, wygładź go i weź pierwszą pochodną numerycznie. To twoja krzywa.
Mike Dunlavey

Odpowiedzi:

12

Weibull jest czasem używany do modelowania czasu pingowania. wypróbuj rozkład Weibulla. Aby dopasować jeden w 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

Jeśli zastanawiasz się nad głupimi nazwami (np. $ Skala, aby uzyskać odwrotność kształtu), to dlatego, że „survreg” używa innej parametryzacji (tzn. Jest parametryzowany w kategoriach „odwrotnego weibulla”, który jest bardziej powszechny w naukach aktuarialnych) .

użytkownik603
źródło
10

Pozwól, że zadam bardziej podstawowe pytanie: co chcesz zrobić z tymi informacjami o dystrybucji?

Powód, o który pytam, jest taki, że bardziej sensowne może być przybliżenie rozkładu za pomocą pewnego rodzaju estymatora gęstości jądra, zamiast nalegania, aby pasował on do jednej (ewentualnie przesuniętej) wykładniczej dystrybucji rodziny. Możesz odpowiedzieć na prawie wszystkie te same pytania, na które pozwoli Ci standardowa dystrybucja, i nie musisz się martwić (tyle) o to, czy wybrałeś właściwy model.

Ale jeśli jest ustalony minimalny czas i musisz mieć coś w rodzaju zwartej sparametryzowanej dystrybucji, aby z nim iść, to po prostu patrząc na niego odejdę od minimum i dopasuję gamma, jak sugerują inni.

Bogaty
źródło
chcę narysować na nim teoretyczną krzywą rozkładu, znaleźć średnią , medianę , odchylenie standardowe . Przeważnie chciałbym medianę, ale naprawdę chcę narysować krzywą teoretyczną.
Ian Boyd,
1
Myślę, że Rich miał na myśli coś takiego: „Na jakie pytanie próbujesz odpowiedzieć?” Określenie rozkładu danych jest pytaniem, tak, ale z pewnością jest jeszcze inne pytanie, na które można odpowiedzieć, gdy poznasz rozkład. Co to jest?
Matt Parker,
@MattParker Chcę wiedzieć, jaki jest czas „szczytowy”.
Ian Boyd,
2
@IanBoyd Nie sądzę, że tak naprawdę potrzebujesz znajomości rozkładu teoretycznego, aby to osiągnąć - czy mediana zadziałałaby? A do cieniowania sąsiednich „odchyleń standardowych” można po prostu użyć kwantyli. Jeśli Twoim celem jest poinformowanie, jak długo zajmuje większość pingów, nie widzę nic złego w raportowaniu mediany z kwantylami 25% i 75%. Lub, jeśli chcesz emulować 68%, które mieści się w granicach 1 SD średniej w rozkładzie normalnym, kwantyle 16% i 84%.
Matt Parker,
8

Nie ma powodu oczekiwać, że jakikolwiek zestaw danych z prawdziwego świata będzie pasował do znanej formy dystrybucyjnej ... szczególnie z tak znanego niechlujnego źródła danych.

To, co chcesz zrobić z odpowiedziami, w dużej mierze wskaże podejście. Na przykład, jeśli chcesz wiedzieć, kiedy czasy ping zmieniły się znacząco, dobrym pomysłem może być trendowanie rozkładu empirycznego. Jeśli chcesz zidentyfikować wartości odstające, bardziej odpowiednie mogą być inne techniki.

PeterR
źródło
Naprawdę chcę narysować krzywą matematyczną, która podąża za rozkładem. To prawda, że ​​może to nie być znany rozkład; ale nie mogę sobie wyobrazić, że nie zostało to wcześniej zbadane.
Ian Boyd,
4
Wyszukaj „oszacowanie gęstości”.
PeterR,
6

Prostszym podejściem może być transformacja danych. Po przekształceniu może być zbliżony do gaussowskiego.

Jednym z powszechnych sposobów jest logarytm wszystkich wartości.

Domyślam się, że w tym przypadku rozkład odwrotności czasów podróży w obie strony będzie bardziej symetryczny i być może zbliżony do Gaussa. Przyjmując odwrotność, zasadniczo mierzysz prędkości zamiast razy, więc nadal łatwo jest interpretować wyniki (w przeciwieństwie do logarytmów lub wielu transformacji).

Harvey Motulsky
źródło
4

xGamma(k,θ)

Aktualizacja - proces szacowania

θ^k^k^


źródło
faktycznie starałem się nie wspominać o rozkładzie gamma. widziałem to na Wikipedii, nie mogę znaleźć wzoru na rozkład ani formuł do oszacowania parametrów w tym wzorze. I wtedy bardzo się zdenerwowałem, gdy zobaczyłem „Nie ma zamkniętego rozwiązania dla k”. I tak próbowałem mimo to z kilkoma formułami - ale kiedy otrzymasz pakiet, który wraca za 0 ms, ln (0) wysadza się w powietrze.
Ian Boyd,
Ponieważ chociaż dobrze rozumiem rozkład normalny, od czasów uniwersyteckich jestem nad głową, gdy dochodzimy do takich rzeczy, jak „rozbieżność Kullbacka – Leiblera” .
Ian Boyd,
Jeśli masz pakiet, który wraca za 0 ms, nie jest to „naprawdę” zero, prawda? Być może możesz ustawić go na małą wartość i w żadnym wypadku nie musisz się martwić o ln (0) jako parametrk
Tak, technicznie należy to nazwać <1ms. Ten wykres nie zawiera zera, ponieważ przechodzi przez łącze o większym opóźnieniu (modem). Ale mogę uruchomić program równie dobrze na szybszym łączu (tj. Pingować inną maszynę w sieci LAN) i rutynowo uzyskiwać <1msi 1msprzy znacznie mniejszej liczbie wystąpień2ms . Niestety system Windows zapewnia rozdzielczość tylko 1ms. Mógłbym ręcznie zmierzyć czas za pomocą wysokowydajnego licznika, otrzymując µs; ale wciąż miałem nadzieję, że uda mi się umieścić je w wiadrach (aby zaoszczędzić pamięć). Może powinienem dodać 1 ms do wszystkiego ...1ms ==> (0..1]
Ian Boyd
po prostu dopasowując gamma do R: docs.google.com/…
apeescape
4

Innym podejściem, bardziej uzasadnionym względami sieciowymi, jest próba dopasowania sumy niezależnych wykładniczych o różnych parametrach. Rozsądnym założeniem byłoby, że każdy węzeł na ścieżce ping opóźnienie byłoby niezależnym wykładniczym o różnych parametrach. Odniesienie do postaci dystrybucyjnej sumy niezależnych wykładniczych o różnych parametrach to http://www.math.bme.hu/~balazs/sumexp.pdf .

Prawdopodobnie powinieneś również spojrzeć na czasy pingów w porównaniu do liczby przeskoków.

PeterR
źródło
3

Patrząc na to powiedziałbym, że rozkład normalny lub rozkład dwumianowy może do niego dobrze pasować.

W R możesz użyć snbiblioteki, aby poradzić sobie z rozkładem i skośnym rozkładem normalnym oraz użyć nlslub mlewykonać nieliniowe dopasowanie danych o minimalnym kwadracie lub maksymalnym prawdopodobieństwie.

===

EDYCJA: ponownie czytając twoje pytanie / komentarze Dodałbym coś więcej

Jeśli interesuje Cię tylko rysowanie ładnego wykresu nad słupkami, zapomnij o rozkładach, kogo to obchodzi, jeśli nic z tym nie zrobisz. Wystarczy narysować B-splajn nad punktem danych i jesteś dobry.

Ponadto dzięki takiemu podejściu unikasz konieczności implementowania algorytmu dopasowania MLE (lub podobnego), a jesteś objęty rozkładem, który nie jest skośny-normalny (lub cokolwiek, co wybierzesz)

Nico
źródło
+1 myślałem również dwumianowy, kiedy po raz pierwszy zobaczyłem histogram. (Nie jestem pewien, dlaczego to zostało odrzucone).
doug
Cóż, to nie tylko ładne linie. Chciałbym również móc wskazać prawdziwy „szczyt” na krzywej, a także zacieniać w jednej standardowej jednostce odchylenia po obu stronach.
Ian Boyd,
@IanBoyd: B-splajn wystarczy dla tych rzeczy, zwłaszcza, że ​​histogram jest stosunkowo niskiej rozdzielczości. Zatem zawsze zależy od tego, co rozumiesz przez „prawdziwy” szczyt.
nico,
2

Na podstawie twojego komentarza: „Naprawdę chcę narysować krzywą matematyczną, która podąża za rozkładem. To prawda, że ​​może to nie być znany rozkład; ale nie mogę sobie wyobrazić, że nie zostało to wcześniej zbadane”. Zapewniam funkcję, która pasuje.

Spojrzeć na ExtremeValueDistribution

Dodałem amplitudę i uczyniłem dwie bety różne. Myślę, że centrum twojej funkcji jest bliżej 9,5 niż 10.

Nowa funkcja: a E ^ (- E ^ (((- x + alfa) / b1)) + (-x + alfa) / b2) / ((b1 + b2) / 2)

{alfa-> 9,5, b2 -> 0,899093, a -> 5822.2, b1 -> 0,381825}

Wolfram alfa : wykres 11193,8 E ^ (- E ^ (1,66667 (10 - x)) + 1,66667 (10 - x)), x 0..16, y od 0 do 4500

Niektóre punkty około 10ms:
{{9, 390.254}, {10, 3979.59}, {11, 1680.73}, {12, 562.838}}

Ogon jednak nie pasuje idealnie. Ogon może być lepiej dopasowany, jeśli b2 jest niższy, a pik jest wybrany bliżej 9.

Davorak
źródło