Ping 응답 시간에 대해이 데이터를 나타내는 분포 유형을 어떻게 알 수 있습니까?


22

네트워크 핑 시간과 같은 실제 프로세스를 샘플링했습니다. "왕복 시간"은 밀리 초 단위로 측정됩니다. 결과는 히스토그램으로 표시됩니다.

대체 텍스트

핑 시간은 최소값이지만 긴 꼬리는 길다.

통계 분포가 무엇인지, 매개 변수를 추정하는 방법을 알고 싶습니다.

분포가 정규 분포가 아니지만 달성하려는 것을 여전히 보여줄 수 있습니다.

정규 분포는 다음 기능을 사용합니다.

대체 텍스트

두 매개 변수로

  • μ (평균)
  • σ 2  (분산)

모수 추정

두 모수를 추정하기위한 공식은 다음과 같습니다.

대체 텍스트

Excel에있는 데이터에 대해이 수식을 적용하면 다음과 같은 결과가 나타납니다.

  • μ = 10.9558 (평균)
  • σ 2  = 67.4578 (분산)

이 매개 변수를 사용하면 샘플링 된 데이터 위에 " 정상 "분포를 그릴 수 있습니다 .

대체 텍스트

분명히 그것은 정규 분포가 아닙니다. 정규 분포는 무한한 상단 및 하단 꼬리를 가지며 대칭입니다. 이 분포는 대칭이 아닙니다.


  • 어떤 원칙을 적용 하시겠습니까? 이것이 어떤 종류의 분포인지 결정하기 위해 어떤 흐름도를 적용 할 것인가?
  • 분포에 음수 꼬리가없고 긴 양수 꼬리가 있다고 가정하면 어떤 분포가 일치합니까?
  • 분포와 일치하는 관측치와 일치하는 참조가 있습니까?

그리고 추적으로 자르고,이 분포에 대한 공식은 무엇이며, 모수를 추정하는 공식은 무엇입니까?


"평균"값과 "확산"값을 얻을 수 있도록 분포를 구하고 싶습니다. 대체 텍스트

실제로 소프트웨어에서 히스토그램을 플로팅하고 이론적 분포를 오버레이하고 싶습니다.

대체 텍스트

참고 : math.stackexchange.com 에서 교차 게시


업데이트 : 160,000 샘플 :

여기에 이미지 설명을 입력하십시오

몇 달, 몇 달 및 수많은 샘플링 세션이 모두 같은 분포를 제공합니다. 수학적 표현 이 있어야합니다 .


Harvey는 데이터를 로그 스케일에 배치 할 것을 제안했습니다. 로그 스케일의 확률 밀도는 다음과 같습니다.

여기에 이미지 설명을 입력하십시오

태그 : 샘플링, 통계, 모수 추정, 정규 분포


답이 아니라 질문에 대한 부록입니다. 배포 버킷은 다음과 같습니다. 더 모험을 좋아하는 사람은 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
그것을 보면, 그것은 비대칭 정규 분포처럼 보입니다. 특이 치가 분석에 필요합니까?
Brandon Bertelsen

1
내 분석은 전적으로 이상 - 상단 바 꽤 그래프 그리기 구성됩니다 :)하지만 더 상위 꼬리 ... 없었다 척 속이는 것
이안 보이드

다양한 배포판에 대한 유용한 아이디어가 많이 있습니다. 귀하의 질문에 답하기 위해 "이것이 어떤 통계적 분포인지 알고 싶습니다", 일반적인 방법은 QQ 플롯으로 R에서 쉽게 생성 할 수 있습니다.
Mike Dunlavey

1
물론, 원하는 것이 부드러운 곡선이라면 모든 데이터를 가져 와서 경험적인 CDF를 만들기 위해 정렬하고 매끄럽게 한 다음 숫자의 첫 번째 미분을 취하십시오. 그것이 당신의 곡선입니다.
Mike Dunlavey

답변:


12

Weibull은 때때로 핑 시간 모델링에 사용됩니다. weibull 분포를 시도하십시오. 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"는 다른 매개 변수화를 사용하기 때문입니다 (즉, 계리 과학에서 더 많이 사용되는 "inverse weibull"의 관점에서 매개 변수화 됨). .


10

나에게 기본적인 질문을 물어 보자 : 당신은 무엇을 원하는가 이 분배 정보를?

내가 묻는 이유는 (아마도 이동 된) 지수 패밀리 분포 중 하나에 적합하다고 주장하기보다는 일종의 커널 밀도 추정기로 분포를 근사화하는 것이 더 합리적 일 수 있기 때문입니다. 표준 분포로 답변 할 수있는 거의 모든 종류의 질문에 대답 할 수 있으며 올바른 모델을 선택했는지에 대해 걱정할 필요가 없습니다.

그러나 고정 된 최소 시간이 있고 그것에 대해 가하기 위해 일종의 콤팩트 한 매개 변수가있는 분포가 있어야한다면, 그것을 눈으로 볼 때 최소값을 빼고 감마에 맞습니다. 다른 사람들이 제안한 것처럼.


이론적 분포 곡선을 그려 평균 , 중간 , 표준 편차를 찾고 싶습니다 . 대부분 중앙값을 원하지만 실제로 이론적 인 곡선을 그리려고합니다.
Ian Boyd

1
리치가 "어떤 질문에 대답하려고합니까?" 데이터 분포를 결정하는 것은 하나의 문제입니다. 그러나 분포를 알고 나면 대답 할 수있는 다른 질문이있을 것입니다. 무엇입니까?
매트 파커

@ MatParker "피크"시간이 무엇인지 알고 싶습니다.
Ian Boyd

2
@IanBoyd 나는 그것을 얻기 위해 이론적 분포를 정말로 알아야한다고 생각하지 않습니다. 중간이 효과가 있습니까? 인접한 '표준 편차'에서 음영 처리를하려면 Quantile을 사용하면됩니다. 귀하의 목표가 대부분의 핑에 걸리는 시간을 알리는 것이라면 25 % 및 75 % 분위수로 중앙값을보고하는 데 아무런 문제가 없습니다. 또는 정규 분포에서 평균의 1 SD에 속하는 68 %를 에뮬레이션하려는 경우 16 % 및 84 % Quantile입니다.
매트 파커

8

실제 데이터 세트가 특히 알려진 지저분한 데이터 소스의 알려진 배포 형식에 적합 할 것으로 예상 할 이유가 없습니다.

답변으로하고 싶은 것은 대체로 접근 방식을 나타냅니다. 예를 들어, 핑 시간이 크게 변경된시기를 알고 싶다면 경험적 분포를 파악하는 것이 좋습니다. 특이 치를 식별하려면 다른 기술이 더 적합 할 수 있습니다.


실제로 분포를 따르는 수학적 곡선을 그리고 싶습니다. 알려진 배포판이 아닐 수도 있습니다. 그러나 나는 이것이 전에 조사되지 않았다고 상상할 수 없다.
Ian Boyd

4
'밀도 추정'을 찾으십시오.
PeterR

6

더 간단한 방법은 데이터를 변환하는 것입니다. 변환 후 가우시안에 가깝습니다.

그렇게하는 한 가지 일반적인 방법은 모든 값의 로그를 취하는 것입니다.

이 경우 왕복 시간의 역수 분포는 더 대칭적이고 가우시안에 가깝습니다. 역수를 취하면 시간 대신 속도를 본질적으로 표로 표시하므로 대수 또는 많은 변환과 달리 결과를 쉽게 해석 할 수 있습니다.


4

엑스에이에이(케이,θ)

업데이트 추정 프로세스

θ^케이^케이^


실제로 감마 분포를 언급 하지 않으려 고 노력했습니다 . 나는 Wikipedia에서 그것을 보았습니다. 실제로 분포 공식이나 해당 공식의 모수를 추정하는 공식을 찾을 수 없습니다. 그런 다음 "k에 대한 폐쇄 형 솔루션이 없습니다."를 보고 정말 긴장했습니다 . 그리고 어쨌든 몇 가지 수식으로 시도했지만 0ms로 돌아 오는 패킷을 받으면 ln (0)이 폭발합니다.
Ian Boyd

대학 시절부터 정규 분포에 대해 잘 이해하고 있기 때문에 "Kullback – Leibler divergence" 와 같은 것들에 도달 할 때 나는 머리 위로 있습니다.
Ian Boyd

케이

예, 기술적으로는이라고합니다 <1ms. 이 플롯에는 대기 시간이 긴 링크 (모뎀)를 거치므로 0이 포함되지 않습니다. 그러나 더 빠른 링크 (예 : LAN의 다른 컴퓨터에 핑)를 통해 프로그램을 실행할 수 있으며 일상적으로 훨씬 적게 발생 <1ms하고 얻을 수 있습니다. 불행히도 Windows는의 해상도 만 제공합니다 . 고성능 카운터를 사용하여 수동으로 시간을 측정하여 µs를 얻을 수 있습니다. 그러나 나는 여전히 메모리를 절약하기 위해 버킷에 넣을 수 있기를 바랐습니다. 아마도 모든 것에 1ms를 추가해야 할 것입니다.1ms2ms1ms1ms ==> (0..1]
Ian Boyd

단순히 R로 감마 맞추기 : docs.google.com/…
apeescape

4

네트워크 고려 사항에 의해 더 정당화되는 또 다른 접근법은 다른 매개 변수를 가진 독립적 인 지수의 합계를 맞추는 것입니다. 핑 경로에있는 각 노드는 서로 다른 매개 변수를 가진 독립적 인 지수가된다는 합리적인 가정이 있습니다. 매개 변수가 다른 독립 지수 합계의 분포 형태에 대한 참조는 http://www.math.bme.hu/~balazs/sumexp.pdf 입니다.

또한 핑 횟수와 홉 수를 확인해야합니다.


3

그것을 보면 비대칭 또는 아마도 비정규 분포가 잘 맞을 것입니다.

R에서는 sn라이브러리를 사용하여 기울기 정규 분포를 처리하고 데이터의 비선형 최소 제곱 또는 최대 우도 추정을 수행 nls하거나 mle수행 할 수 있습니다.

===

편집 : 귀하의 질문 / 의견을 다시 읽으면 더 많은 것을 추가 할 것입니다

관심있는 것은 막대 위에 예쁜 그래프를 그리는 것입니다. 분포에 대해 잊어 버립니다. 배포자는 아무것도하지 않으면 결국 신경 쓰입니다. 데이터 포인트 위에 B 스플라인을 그리면 좋습니다.

또한이 방법을 사용하면 MLE 맞춤 알고리즘 (또는 이와 유사한)을 구현하지 않아도되며, 비정규 분포가 아닌 분포 (또는 사용자가 선택하는 모든 것)의 경우에 적용됩니다.


+1 히스토그램을 처음 보았을 때 이항도 생각했습니다. (이것이 왜 다운 투표되었는지 확실하지 않습니다).
더그

그럼이 아니 그냥 예쁜 라인. 또한 커브의 실제 "피크"를 가리키고 양쪽에 하나의 표준 편차 단위로 음영을 표시하고 싶습니다.
Ian Boyd

@IanBoyd : 특히 히스토그램의 해상도가 낮으므로 B- 스플라인으로 충분합니다. 그런 다음 항상 "진정한"피크의 의미에 따라 다릅니다.
nico

2

귀하의 의견을 바탕으로 "실제로 분포를 따르는 수학적 곡선을 그리려고합니다. 알려진 분포가 아닐 수도 있지만 이전에는 조사되지 않았다고 생각할 수 없습니다." 나는 일종의 맞춤 기능을 제공하고 있습니다.

ExtremeValueDistribution을 살펴 보십시오

진폭을 추가하고 두 베타 버전을 다르게 만들었습니다. 함수의 중심이 9.5에 10에 가깝다고 생각합니다.

새로운 기능 : E ^ (-E ^ (((-x + alpha) / b1)) + (-x + alpha) / b2) / ((b1 + b2) / 2)

{알파-> 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에서 0 ~ 4500

약 10ms 정도의 포인트 :
{{9, 390.254}, {10, 3979.59}, {11, 1680.73}, {12, 562.838}}

꼬리는 완벽하게 맞지 않습니다. b2가 낮고 피크가 9에 가까워지면 꼬리가 잘 맞습니다.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.