我如何确定什么样的分布代表了 ping 响应时间的数据?

机器算法验证 分布 样本量 样本 正态假设 分布识别
2022-01-27 21:26:12

我采样了一个真实世界的进程,网络 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

奖金阅读

4个回答

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”使用了另一种参数化(即它是根据精算科学中更常见的“逆威布尔”参数化的) .

让我问一个更基本的问题:你想用这些分布信息做什么?

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

但是,如果有一个固定的最小时间,并且你必须有某种紧凑的参数化分布来配合它,那么只要目测它,我就会减去最小值并拟合一个伽马,就像其他人建议的那样。

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

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

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

一种常见的方法是对所有值取对数。

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