如何确定ping响应时间上该数据代表哪种分布?


22

我已经采样了一个真实的过程,即网络ping时间。“往返时间”以毫秒为单位。结果绘制在直方图中:

替代文字

Ping时间具有最小值,但尾巴较长。

我想知道这是什么统计分布,以及如何估算其参数。

即使该分布不是正态分布,我仍然可以显示我要实现的目标。

正态分布使用以下功能:

替代文字

有两个参数

  • μ(平均值)
  • σ 2 (方差)

参数估计

估算两个参数的公式为:

替代文字

将这些公式应用于Excel中的数据,我得到:

  • μ= 10.9558(平均值)
  • σ 2  = 67.4578(方差)

使用这些参数,我可以在采样数据上方绘制“ 正态 ”分布:

替代文字

显然,这不是正态分布。正态分布具有无限的顶部和底部尾部,并且是对称的。这种分布是不对称的。


  • 我将采用什么原则?我将采用哪种流程图来确定这是哪种分布?
  • 假设分布没有负尾巴,而有长正尾巴:什么分布与之匹配?
  • 是否有与您所观察到的分布相匹配的参考?

紧追其后,此分布的公式是什么,以及估算其参数的公式是什么?


我想要获得分布,以便获得“平均”值以及“价差”: 替代文字

我实际上是在软件中绘制直方图,我想覆盖理论分布:

替代文字

注意:math.stackexchange.com交叉发布


更新:160,000个样本

在此处输入图片说明

一个月又一个月,以及不计其数的抽样会议,都给出了相同的分布。有必须是一个数学表达式。


哈维建议将数据放在对数刻度上。这是对数刻度上的概率密度:

在此处输入图片说明

标签:抽样,统计,参数估计,正态分布


这不是答案,而是问题的附录。这是分配桶。我认为,喜欢冒险的人可能希望将其粘贴到Excel(或您知道的任何程序)中,并可以发现其分布。

值已标准化

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
单看它,它看起来像是偏态的正态分布。您确定离群值是进行分析所必需的吗?
布兰登·贝特尔森

1
我的分析将只包括在条形图上方绘制一个漂亮的图:)但是,假装没有顶尾将是一种欺骗...
Ian Boyd 2010年

对于不同的发行版,您会获得许多有用的想法。要回答你的问题:“我想知道这是什么统计分布”,通常的方法是QQ的情节,容易在R.产生
麦克Dunlavey

1
当然,如果您想要的只是一条平滑曲线,请获取所有数据,对其进行排序以生成经验CDF,对其进行平滑,然后对一阶导数进行数值计算。那是你的曲线。
Mike Dunlavey

Answers:


12

Weibull有时用于建模ping时间。尝试进行威布尔分布。要使一个适合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

如果您想知道愚蠢的名字(即$ scale以获取形状的倒数),那是因为“ survreg”使用了另一个参数化(即根据“反韦伯”进行了参数化,这在精算科学中更为常见) 。


10

让我问一个更基本的问题:您想使用此分发信息什么?

我问的原因是因为用某种内核密度估计器近似地估计分布可能更有意义,而不是坚持认为它适合于(可能是移位的)指数族分布之一。您几乎可以回答标准发行版可以回答的几乎所有相同类型的问题,而不必担心(选择太多)是否选择了正确的模型。

但是,如果有一个固定的最短时间,并且您必须具有某种紧凑的参数化分布,那么只要盯着它看,我就会减去最短时间并拟合伽玛,就像其他人建议的那样。


我想在其上绘制理论分布曲线,求出均值中位数标准差。通常,我想要中位数,但实际上我想绘制理论曲线。
伊恩·博伊德

1
我认为Rich的意思是:“您要回答哪种问题?” 是的,确定数据的分布是一个问题,但是,当然,一旦知道分布,您肯定还会希望回答其他问题。它是什么?
马特·帕克

@MattParker我想知道什么是“高峰”时间。
伊恩·博伊德

2
@IanBoyd我认为您真的不需要知道理论分布就可以了-中位数会起作用吗?对于相邻的“标准偏差”中的阴影,您可以使用分位数。如果您的目标是传达大多数ping操作需要多长时间,则报告25%和75%的位数的中位数不会有任何问题。或者,如果要模拟在正态分布均值的1 SD范围内的68%,则分别为16%和84%。
马特·帕克

8

没有理由期望任何现实世界的数据集都适合已知的分布形式……尤其是来自这样一个已知的混乱数据源。

您想对答案做什么将在很大程度上表明一种方法。例如,如果您想知道ping时间何时发生了显着变化,则趋势化经验分布可能是一种方法。如果要识别异常值,则其他技术可能更合适。


我真的想绘制遵循分布的数学曲线。当然,它可能不是已知的发行版;但是我无法想象这之前没有被调查过。
伊恩·博伊德

4
查找“密度估计”。
PeterR

6

一种更简单的方法可能是转换数据。转换后,它可能接近高斯。

一种常用的方法是采用所有值的对数。

我的猜测是,在这种情况下,往返时间的倒数分布将更加对称,甚至接近高斯。通过取倒数,您实际上是在对速度而不是时间进行制表,因此仍然很容易解释结果(与对数或许多变换不同)。


4

xGamma(k,θ)从Wiki上 γ的,您会发现有些图看起来与您所拥有的相似。

更新估算过程

θ^k^k^


我实际上是在努力避免提及Gamma分布。我在Wikipedia上看到了它,但实际上找不到该分布的公式,也找不到该公式中用于估算参数的公式。然后,当我看到“ k没有封闭形式的解决方案”时,我感到非常紧张 我还是用一些公式尝试了它-但是当您收到一个以0ms返回的数据包时,ln(0)会爆炸。
伊恩·博伊德

因为虽然我对正态分布有很好的了解,但是从大学时代开始,当我遇到诸如“ Kullback-Leibler散度”之类的问题时,我感到非常头疼
伊恩·博伊德

k

是的,从技术上讲,它应称为<1ms。而且该图不包括零,因为它通过了更高延迟的链路(调制解调器)。但是我可以通过更快的链接(即ping局域网上的另一台机器)来运行程序,并且可以定期获取<1ms1ms,而出现的次数少得多2ms。不幸的是Windows仅提供的分辨率1ms。我可以使用高性能计数器对其进行手动计时,从而获得µs;但是我仍然希望能够将它们放入存储桶中(以节省内存)。也许我应该在所有内容上加上1毫秒...1ms ==> (0..1]
Ian Boyd

简单地装配伽玛与R:docs.google.com/...
apeescape

4

通过网络考虑更合理的另一种方法是尝试使具有不同参数的独立指数的总和拟合。合理的假设是ping路径中的每个节点的延迟将是具有不同参数的独立指数。关于具有不同参数的独立指数和的分布形式的参考是http://www.math.bme.hu/~balazs/sumexp.pdf

您可能还应该查看ping时间与跳数之间的关系。


3

看着它,我会说偏正态分布或双正态分布可能非常适合。

在R中,您可以使用该sn库处理偏态正态分布,并使用nlsmle对数据进行非线性最小二乘或最大似然估计拟合。

===

编辑:重新阅读您的问题/评论,我会添加更多

如果您感兴趣的只是在条形图上绘制漂亮的图形,请忽略分布,最后您会在乎什么,如果您不对其进行任何操作。只需在数据点上绘制B样条,就可以了。

同样,使用这种方法,您不必实施MLE拟合算法(或类似方法),并且在分布不偏态正态分布(或您选择绘制的任何东西)的情况下也能得到满足。


当我第一次看到直方图时,我也认为二项式。(不知道为什么这被否决了)。
doug 2010年

那么它不只是漂亮的线条。我还希望能够指向曲线中的真实“峰值”,以及两侧的一个标准偏差单位中的阴影。
伊恩·博伊德

@IanBoyd:B样条曲线足以满足这些要求,特别是因为直方图的分辨率较低。然后,它始终取决于“真实”峰值的含义。
nico

2

根据您的评论“真的,我想绘制遵循该分布的数学曲线。尽管它可能不是已知的分布;但是我无法想象以前没有对此进行过研究。” 我提供了一种合适的功能。

看看ExtremeValueDistribution

我增加了幅度并使两个beta不同。我认为您的函数中心接近9.5,然后是10。

新函数: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:图11193.8 E ^(-E ^(1.66667(10-x))+ 1.66667(10-x)),x 0..16,y从0到4500

10ms左右的一些点:
{{9,390.254},{10,3979.59},{11,1680.73},{12,562.838}}

尾巴并不完美。如果b2较低,并且将峰值选择为更接近9,则尾部可能更适合。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.