Ping yanıtı sürelerinde bu verileri nasıl bir dağılım gösterdiğini nasıl bulabilirim?


22

Ağ ping sürelerini gerçek bir dünya sürecinden örnekledim. "Gidiş-dönüş süresi" milisaniye cinsinden ölçülür. Sonuçlar bir histogramda çizilmiştir:

alt metin

Ping süreleri minimum bir değere sahiptir, ancak uzun bir üst kuyruk.

Bunun ne kadar istatistiksel dağılım olduğunu ve parametrelerinin nasıl tahmin edileceğini bilmek istiyorum.

Dağılım normal bir dağılım olmasa da, ne elde etmeye çalıştığımı hala gösterebilirim.

Normal dağılım işlevi kullanır:

alt metin

iki parametreli

  • mean (ortalama)
  • σ 2  (varyans)

Parametre tahmini

İki parametreyi tahmin etmek için kullanılan formüller şunlardır:

alt metin

Excel'de sahip olduğum verilere karşı bu formülleri uygulayarak alıyorum:

  • μ = 10.9558 (ortalama)
  • σ 2  = 67.4578 (varyans)

Bu parametrelerle, örneklenmiş verilerimin üzerine " normal " dağılımın üstünü çizebilirim:

alt metin

Açıkçası bu normal bir dağılım değil. Normal bir dağılım sonsuz üst ve alt kuyruğa sahiptir ve simetriktir. Bu dağılım simetrik değildir.


  • Hangi ilkeleri uygularım; Bunun nasıl bir dağılım olduğunu belirlemek için hangi akış şemasını uygularım?
  • Dağılımın negatif kuyruğu ve uzun pozitif kuyruğu olmadığı göz önüne alındığında: hangi dağılımlar buna uyuyor?
  • Aldığınız gözlemlerle dağılımlara uyan bir referans var mı?

Ve kovalamacayı kesmek, bu dağıtım için formül nedir ve parametrelerini tahmin etmek için kullanılan formül nedir?


Dağıtımı almak istiyorum, böylece "ortalama" değerini ve "yaymayı" elde edebilirim: alt metin

Aslında yazılımdaki histogramı çiziyorum ve teorik dağılımın üzerine binmek istiyorum:

alt metin

Not: math.stackexchange.com adresinden çapraz gönderildi


Güncelleme : 160.000 örnek:

görüntü tanımını buraya girin

Aylar, aylar ve sayısız örnekleme oturumu aynı dağılıma sahip. Orada gereken matematiksel bir şekilde temsil.


Harvey verileri bir log ölçeğine koymasını önerdi. İşte log ölçeğinde olasılık yoğunluğu:

görüntü tanımını buraya girin

Etiketler : örnekleme, istatistik, parametre tahmini, normal dağılım


Bu bir cevap değil, soruya bir zeyilname. İşte dağıtım kovaları. Daha maceracı bir insanın onları Excel'e yapıştırmaktan hoşlanabileceğini (veya bildiğiniz programlardan herhangi birini) ve dağılımını keşfedebileceğini düşünüyorum.

Değerler normalleştirildi

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
Sadece ona bakarken, çarpık bir normal dağılıma benziyor. Analiziniz için aykırı değerlerin gerekli olduğundan emin misiniz?
Brandon Bertelsen

1
Analizim sadece parmaklıklar üzerinde güzel bir grafik çizmekten oluşacak :) Ama üst kuyruğun olmadığını iddia etmek hile yapmak ...
Ian Boyd

Farklı dağıtımlar için birçok yararlı fikir edinirsiniz. "Ben bu istatistiksel neyi dağıtım bilmek istiyorum" sorunuza gelince, her zamanki yöntemi kolay R. içinde üretmek için, bir QQ komplodur
Mike Dunlavey

1
Elbette, istediğiniz tek şey düzgün bir eğri ise, tüm verilerinizi alın, ampirik bir CDF yapmak için sıralayın, düzeltin ve ilk türevi nümerik olarak alın. Bu sizin eğriniz.
Mike Dunlavey,

Yanıtlar:


12

Weibull, bazen ping zamanını modellemek için kullanılır. Weibull dağılımını deneyin. R'ye bir tane sığdırmak için:

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

Eğer goofy isimlerini merak ediyorsanız (yani, şeklin tersini elde etmek için $ skalası) bunun nedeni "survreg" 'in başka bir parametre kullanmasıdır (yani, aktüerya bilimlerinde daha çok kullanılan "ters weibull" açısından parametreleştirilmiştir) .


10

Bana daha temel bir soru sorayım: sen ne istiyorsun yapmak dağılımıyla bilgilerle?

Sormamın nedeni, (muhtemelen değiştirilmiş) üssel aile dağılımlarından birine sığması konusunda ısrar etmek yerine, bir çeşit çekirdek yoğunluğu tahmincisi ile dağıtıma yaklaşmanın daha mantıklı olabileceğidir. Standart bir dağıtımın cevap vermenize izin vereceği aynı tür soruların neredeyse tümünü yanıtlayabilirsiniz ve doğru modeli seçip seçmeme konusunda endişelenmenize gerek yoktur.

Fakat eğer sabit bir asgari süre varsa ve bununla devam edebilmek için bir tür kompakt parametreleştirilmiş dağılımınız olmalıdır, o zaman sadece göz küresi alarak, diğerlerinin önerdiği gibi, minimumları çıkarırım ve bir gamaya uyardım.


Bunun üzerine teorik dağılım eğrisini çizmek, ortalamayı , ortalamayı , standart sapmayı bulmak istiyorum . Çoğunlukla medyanı isterdim, ama gerçekten teorik eğriyi çizmek istiyorum.
Ian Boyd,

1
Bence Rich, "Ne tür bir soruyu cevaplamaya çalışıyorsun?" Gibi bir anlam ifade ediyordu. Verilerin dağılımını belirlemek bir soru, evet, ancak kesinlikle dağılımı bildiğiniz zaman cevap vermeyi umduğunuz başka bir soru var. Bu ne?
Matt Parker

@MattParker "zirve" zamanının ne olduğunu bilmek istiyorum.
Ian Boyd,

2
@IanBoyd Bunu elde etmek için gerçekten teorik dağılımı bilmeniz gerektiğini düşünmüyorum - medyan çalışacak mıydı? Ve bitişik 'standart sapmalarda' gölgelendirme için, sadece miktarları kullanabilirsiniz. Hedefiniz çoğu ping'in ne kadar sürdüğünü bildirmekse, medyanı% 25 ve% 75 miktarlarında bildirirken yanlış bir şey görmüyorum. Veya, normal dağılımdaki ortalamanın 1 SD'sine giren% 68'i taklit etmek istiyorsanız,% 16 ve% 84'lük miktarlara ulaşır.
Matt Parker

8

Gerçek dünyadaki herhangi bir veri setinin, bilhassa bilinen dağınık bir veri kaynağından ... bilinen bir dağıtım şekline uymasını beklemenin bir nedeni yoktur.

Cevaplarla ne yapmak istediğinizi büyük ölçüde bir yaklaşıma işaret edecektir. Örneğin, ping zamanlarının ne zaman önemli ölçüde değiştiğini bilmek istiyorsanız, ampirik dağılımın eğilimi bir yol olabilir. Aykırı değerleri belirlemek istiyorsanız, diğer teknikler daha uygun olabilir.


Gerçekten dağılımı izleyen matematiksel eğriyi çizmek istiyorum. Verilen bir dağıtım olmayabilir; ama bunun daha önce araştırılmadığını düşünemiyorum.
Ian Boyd

4
'Yoğunluk tahmini' konusuna bakın.
PeterR

6

Verileri dönüştürmek daha basit bir yaklaşım olabilir. Dönüşümden sonra, Gaussian'a yakın olabilir.

Bunu yapmanın yaygın bir yolu, tüm değerlerin logaritmasını almaktır.

Benim tahminim, bu durumda gidiş-dönüş zamanlarının karşılıklı dağılımının daha simetrik ve belki de Gaussian'a yakın olacağıdır. Karşılıklı alarak, esasen zamanlar yerine hızları sıralarsınız, bu nedenle sonuçları yorumlamak kolaydır (logaritma veya birçok dönüşümden farklı olarak).


4

xGamma(k,θ)

Güncelleme - Tahmin Süreci

θ^k^k^


Gama dağılımından bahsetmekten kaçınmak için çaba harcayacaktım. Vikipedi'de gördüm, aslında dağıtım için formül bulamıyorum veya bu formüldeki parametreleri tahmin etmek için formüller bulamıyorum. Sonra "k için kapalı form çözümü yok" derken gerçekten gergindim . Ve yine de bazı formüllerle denedim - ama 0ms'de geri gelen bir paket aldığınızda, ln (0) patlar.
Ian Boyd

Çünkü normal dağılım hakkında iyi bir anlayışa sahipken, üniversite günlerimden itibaren "Kullback – Leibler ıraksama" gibi şeylere geldiğimde başımın üstünde .
Ian Boyd

k

Evet, teknik olarak adlandırılmalıdır <1ms. Ve bu arsa sıfır içermez, çünkü daha yüksek gecikmeli bir bağlantı üzerinden gider (modem). Ancak programı daha hızlı bir bağlantı üzerinden çalıştırabilirim (yani, LAN üzerindeki başka bir makineye ping), ve rutin olarak <1msve 1msdaha az tekrarlandığında 2ms. Ne yazık ki, Windows yalnızca çözünürlüğünü sağlar 1ms. µs alarak, yüksek performanslı bir sayaç kullanarak elle zamanlayabilirsiniz; ama hala onları kovalara koyabileceğimi umuyordum (hafızadan tasarruf etmek için). Belki de herşeye 1ms eklemeliyim ...1ms ==> (0..1]
Ian Boyd

basitçe R ile gamaları uydurma: docs.google.com/...
apeescape

4

Ağ düşünceleriyle daha doğrulanan bir başka yaklaşım, farklı parametrelerle bir miktar bağımsız üstele uymaya çalışmaktır. Makul bir varsayım, ping yolundaki her bir düğümün, gecikme süresinin farklı parametrelerle bağımsız bir üstel olacağı varsayımı olabilir. Farklı parametrelere sahip bağımsız üstellerin toplamının dağılım formuna yapılan atıf, http://www.math.bme.hu/~balazs/sumexp.pdf şeklindedir .

Muhtemelen ping sürelerine, atlama sayısına göre de bakmalısınız.


3

Şuna bakarsak, normal veya muhtemelen binormal bir dağılımın buna uygun olabileceğini söyleyebilirim.

R'de snkütüphaneyi, normal dağılma eğriliği ile başa çıkmak ve kullanmak nlsya da mleverilerinize doğrusal olmayan en küçük kareler veya maksimum olabilirlik ekleri yapmak için kullanabilirsiniz .

===

EDIT: sorunuzu / yorumlarınızı tekrar okudum Daha fazlasını ekleyeceğim

İlgilendiğiniz şey çubuklar üzerinde güzel bir grafik çiziyorsa, dağıtımları unutun, sonunda bir şey yapmazsanız kimin umrunda. Sadece veri noktanıza bir B-spline çizin, iyisinizdir.

Ayrıca, bu yaklaşımla bir MLE uyum algoritması (veya benzerini) uygulamaktan kaçınırsınız ve çarpık-normal olmayan bir dağıtım durumunda (veya ne seçerseniz) kullanın


+1, histogramı ilk gördüğümde de binom olduğunu düşündüm. (Bunun neden düşürüldüğünden emin değilim).
doug

Peki, sadece güzel çizgiler değil . ayrıca her iki taraftaki standart bir sapma ünitesindeki gölgenin yanı sıra eğrideki gerçek "zirveye" işaret edebilmek istiyorum.
Ian Boyd

@IanBoyd: Özellikle histogram göreceli olarak düşük olduğu için bir B-spline bu şeyler için yeterli olacaktır. O zaman, her zaman "gerçek" zirve ile ne demek istediğine bağlı.
nico,

2

Yorumunuza dayanarak "Gerçekten, dağıtımı izleyen matematiksel eğriyi çizmek istiyorum. Bilinen bir dağıtım olmayabilir, ancak bunun daha önce araştırılmadığını hayal edemiyorum." Bu tür uygun bir işlev sunuyorum.

ExtremeValueDistribution'e bir göz atın

Bir genlik ekledim ve iki betayı farklı yaptım. İşlevinizin merkezinin 9,5'e ve 10'a yakın olduğunu düşünüyorum.

Yeni işlev: bir E ^ (- E ^ ((((- x + alfa) / b1)) + (-x + alfa) / b2) / ((b1 + b2) / 2)

{alpha-> 9.5, b2 -> 0.899093, a -> 5822.2, b1 -> 0.381825}

Wolfram alpha : arsa 11193.8 E ^ (- E ^ (1.66667 (10 - x)) + 1.66667 (10 - x)), x 0..16, y 0 - 4500

10ms civarında bazı noktalar:
{{9, 390.254}, {10, 3979.59), {11, 1680.73), {12, 562.838)}

Kuyruk olsa mükemmel uymuyor. Eğer b2 düşükse ve tepe 9'a yakın olacak şekilde seçilirse kuyruk daha iyi sığabilir.


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.