¿Cómo puedo determinar qué tipo de distribución representa estos datos en los tiempos de respuesta de ping?


22

He probado un proceso del mundo real, tiempos de ping de red. El "tiempo de ida y vuelta" se mide en milisegundos. Los resultados se trazan en un histograma:

texto alternativo

Los tiempos de ping tienen un valor mínimo, pero una cola superior larga.

Quiero saber qué distribución estadística es esta y cómo estimar sus parámetros.

Aunque la distribución no es una distribución normal, aún puedo mostrar lo que estoy tratando de lograr.

La distribución normal usa la función:

texto alternativo

con los dos parámetros

  • μ (media)
  • σ 2  (varianza)

Estimación de parámetros

Las fórmulas para estimar los dos parámetros son:

texto alternativo

Aplicando estas fórmulas contra los datos que tengo en Excel, obtengo:

  • μ = 10.9558 (media)
  • σ 2  = 67.4578 (varianza)

Con estos parámetros puedo trazar la distribución " normal " sobre mis datos muestreados:

texto alternativo

Obviamente no es una distribución normal. Una distribución normal tiene una cola superior e inferior infinitas, y es simétrica. Esta distribución no es simétrica.


  • ¿Qué principios aplicaría? ¿Qué diagrama de flujo aplicaría para determinar qué tipo de distribución es esta?
  • Dado que la distribución no tiene cola negativa y larga cola positiva: ¿qué distribuciones coinciden con eso?
  • ¿Hay alguna referencia que haga coincidir las distribuciones con las observaciones que está tomando?

Y yendo al grano, ¿cuál es la fórmula para esta distribución y cuáles son las fórmulas para estimar sus parámetros?


Quiero obtener la distribución para poder obtener el valor "promedio", así como el "spread": texto alternativo

De hecho, estoy trazando el histograma en software y quiero superponer la distribución teórica:

texto alternativo

Nota: Publicación cruzada de math.stackexchange.com


Actualización : 160,000 muestras:

ingrese la descripción de la imagen aquí

Meses y meses, e innumerables sesiones de muestreo, todos dan la misma distribución. No debe ser una representación matemática.


Harvey sugirió poner los datos en una escala logarítmica. Aquí está la densidad de probabilidad en una escala logarítmica:

ingrese la descripción de la imagen aquí

Etiquetas : muestreo, estadística, estimación de parámetros, distribución normal


No es una respuesta, sino una adición a la pregunta. Aquí están los cubos de distribución. Creo que a la persona más aventurera le gustaría pegarlos en Excel (o cualquier programa que conozca) y pueda descubrir la distribución.

Los valores están normalizados.

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
Solo mirándolo, parece una distribución normal sesgada. ¿Está seguro de que los valores atípicos son necesarios para su análisis?
Brandon Bertelsen

1
Mi análisis consistirá únicamente en dibujar un gráfico bonito sobre las barras :) Pero sería una trampa fingir que no había cola superior ...
Ian Boyd

Estás obteniendo muchas ideas útiles para diferentes distribuciones. Para responder a su pregunta "Quiero saber qué distribución estadística es esta", el método habitual es un gráfico QQ, fácil de generar en R.
Mike Dunlavey,

1
Por supuesto, si todo lo que desea es una curva suave, tome todos sus datos, ordénelos para hacer un CDF empírico, suavícelo y tome la primera derivada numéricamente. Esa es tu curva.
Mike Dunlavey

Respuestas:


12

Weibull a veces se usa para modelar el tiempo de ping. pruebe una distribución weibull. Para caber uno en 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

Si se pregunta por los nombres tontos (es decir, $ scale para obtener el inverso de la forma) es porque "survreg" usa otra parametrización (es decir, está parametrizada en términos del "weibull inverso" que es más común en ciencias actuariales) .


10

Déjame hacerte una pregunta más básica: ¿qué quieres hacer con esta información de distribución?

La razón por la que pregunto es porque puede tener más sentido aproximar la distribución con algún tipo de estimador de densidad del núcleo, en lugar de insistir en que se ajuste a una de las distribuciones familiares exponenciales (posiblemente desplazadas). Puede responder a casi todos los mismos tipos de preguntas que una distribución estándar le permitirá responder, y no tiene que preocuparse (tanto) sobre si ha seleccionado el modelo correcto.

Pero si hay un tiempo mínimo fijo, y debe tener algún tipo de distribución parametrizada de forma compacta para acompañarlo, entonces solo mirando con atención restaría el mínimo y ajustaría un gamma, como han sugerido otros.


Quiero dibujar la curva de distribución teórica sobre ella, encontrar la media , la mediana , la desviación estándar . Principalmente me gustaría la mediana, pero realmente quiero dibujar la curva teórica.
Ian Boyd

1
Creo que Rich quiso decir algo como "¿Qué tipo de pregunta estás tratando de responder?" Determinar la distribución de los datos es una pregunta, sí, pero seguramente hay alguna otra pregunta que espera poder responder una vez que sepa la distribución. ¿Qué es?
Matt Parker

@ MattParker, quiero saber cuál es el tiempo "pico".
Ian Boyd el

2
@ IanBoyd No creo que realmente necesites saber la distribución teórica para obtener eso: ¿funcionaría la mediana? Y para sombrear en las 'desviaciones estándar' adyacentes, puede usar cuantiles. Si su objetivo es comunicar cuánto tardan la mayoría de los pings, no veo nada malo en informar la mediana con los cuantiles del 25% y 75%. O, si desea emular el 68% que cae dentro de 1 SD de la media en la distribución normal, los cuantiles del 16% y 84%.
Matt Parker

8

No hay ninguna razón para esperar que cualquier conjunto de datos del mundo real se ajuste a una forma de distribución conocida ... especialmente de una fuente de datos desordenada tan conocida.

Lo que desea hacer con las respuestas indicará en gran medida un enfoque. Por ejemplo, si desea saber cuándo los tiempos de ping han cambiado significativamente, entonces la tendencia de la distribución empírica puede ser un camino a seguir. Si desea identificar valores atípicos, otras técnicas pueden ser más apropiadas.


Realmente quiero dibujar la curva matemática que sigue a la distribución. De acuerdo, podría no ser una distribución conocida; pero no puedo imaginar que esto no haya sido investigado antes.
Ian Boyd

44
Busque 'estimación de densidad'.
PeterR

6

Un enfoque más simple podría ser transformar los datos. Después de la transformación, podría estar cerca de Gauss.

Una forma común de hacerlo es tomar el logaritmo de todos los valores.

Supongo que en este caso la distribución del recíproco de los tiempos de ida y vuelta será más simétrica y tal vez cercana a la gaussiana. Al tomar el recíproco, esencialmente está tabulando velocidades en lugar de tiempos, por lo que aún es fácil interpretar los resultados (a diferencia de logaritmos o muchas transformaciones).


4

Xsolunametrometrouna(k,θ)

Actualización: proceso de estimación

θ^k^k^


En realidad estaba haciendo esfuerzos para evitar mencionar la distribución Gamma. Lo vi en Wikipedia, en realidad no puedo encontrar la fórmula para la distribución, o las fórmulas para estimar los parámetros en esa fórmula. Y luego me puse muy nervioso cuando vi "No hay una solución de forma cerrada para k". Y lo intenté de todos modos con algunas fórmulas, pero cuando obtienes un paquete que vuelve en 0 ms, el ln (0) explota.
Ian Boyd

Porque si bien tengo una buena comprensión de la distribución normal, desde mis días universitarios, estoy loco cuando llegamos a cosas como la "divergencia Kullback-Leibler" .
Ian Boyd

k

Sí, técnicamente debería ser referido como <1ms. Y este gráfico no incluye cero, porque va sobre un enlace de latencia más alto (módem). Pero puedo ejecutar el programa igual de bien a través de un enlace más rápido (es decir, hacer ping a otra máquina en la LAN), y obtener rutinariamente , <1msy 1mscon mucha menos frecuencia 2ms. Lamentablemente, Windows solo proporciona una resolución de 1ms. podría cronometrarlo manualmente usando un contador de alto rendimiento, obteniendo µs; pero todavía esperaba poder ponerlos en cubos (para ahorrar memoria). Quizás debería agregar 1ms a todo ...1ms ==> (0..1]
Ian Boyd

simplemente ajustando gammas con R: docs.google.com/…
apeescape

4

Otro enfoque, que está más justificado por consideraciones de red, es tratar de ajustar una suma de exponenciales independientes con diferentes parámetros. Una suposición razonable sería que cada nodo en la ruta del ping del retraso sería un exponencial independiente, con diferentes parámetros. Una referencia a la forma de distribución de la suma de exponenciales independientes con diferentes parámetros es http://www.math.bme.hu/~balazs/sumexp.pdf .

Probablemente también deberías mirar los tiempos de ping frente al número de saltos.


3

Mirándolo, diría que una distribución oblicua o posiblemente una distribución binormal puede encajar bien.

En R, podría usar la snbiblioteca para tratar la distribución normal asimétrica y usar nlso mlehacer un mínimo cuadrado no lineal o un ajuste de eximación de máxima probabilidad de sus datos.

===

EDITAR: releyendo su pregunta / comentarios, agregaría algo más

Si lo que le interesa es dibujar un bonito gráfico sobre las barras, olvídese de las distribuciones, a quién le importa al final si no está haciendo nada con él. Simplemente dibuje una B-spline sobre su punto de datos y estará bien.

Además, con este enfoque, evita tener que implementar un algoritmo de ajuste MLE (o similar), y está cubierto en el caso de una distribución que no sea asimétrica (o lo que elija dibujar)


También pensé en binomial cuando vi el histograma por primera vez. (No estoy seguro de por qué esto fue rechazado).
doug

Bueno, no son solo líneas bonitas. También me gustaría poder señalar el verdadero "pico" en la curva, así como sombrear en una unidad de desviación estándar a cada lado.
Ian Boyd

@IanBoyd: Una B-spline será suficiente para esas cosas, especialmente porque el histograma es relativamente de baja resolución. Entonces, siempre depende de lo que quiere decir con "verdadero" pico.
nico

2

Basado en su comentario "Realmente quiero dibujar la curva matemática que sigue a la distribución. De acuerdo, podría no ser una distribución conocida; pero no puedo imaginar que esto no haya sido investigado antes". Estoy proporcionando una función que encaja.

Echa un vistazo a ExtremeValueDistribution

Agregué una amplitud e hice las dos betas diferentes. Me imagino que el centro de su función está más cerca de 9.5 que de 10.

Nueva función: a E ^ (- E ^ (((- x + alpha) / b1)) + (-x + alpha) / b2) / ((b1 + b2) / 2)

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

Wolfram alpha : gráfico 11193.8 E ^ (- E ^ (1.66667 (10 - x)) + 1.66667 (10 - x)), x 0..16, y de 0 a 4500

Algunos puntos alrededor de 10 ms:
{{9, 390.254}, {10, 3979.59}, {11, 1680.73}, {12, 562.838}}

Sin embargo, la cola no encaja perfectamente. La cola se puede ajustar mejor si b2 es más bajo y se elige el pico para estar más cerca de 9.


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.