Как выяснить, какой тип распределения представляет эти данные о времени отклика ping?

22

Я пробовал реальный процесс, время пинга в сети. «Время прохождения туда-обратно» измеряется в миллисекундах. Результаты представлены на гистограмме:

альтернативный текст

Время пинга имеет минимальное значение, но длинный верхний хвост.

Я хочу знать, что это за статистическое распределение, и как оценить его параметры.

Несмотря на то, что дистрибутив не является нормальным, я все еще могу показать, чего я пытаюсь достичь.

Нормальное распределение использует функцию:

альтернативный текст

с двумя параметрами

  • μ (среднее)
  • σ 2  (дисперсия)

Оценка параметров

Формулы для оценки двух параметров:

альтернативный текст

Применяя эти формулы к данным, которые у меня есть в Excel, я получаю:

  • μ = 10,9558 (среднее)
  • σ 2  = 67,4578 (дисперсия)

С этими параметрами я могу построить « нормальное » распределение поверх моих выборочных данных:

альтернативный текст

Очевидно, что это не нормальное распределение. Нормальное распределение имеет бесконечный верхний и нижний хвосты и является симметричным. Это распределение не симметрично.


  • Какие принципы я бы применил; какую блок-схему я бы применил, чтобы определить, какой это тип распределения?
  • Учитывая, что у распределения нет отрицательного хвоста и длинного положительного хвоста: какие распределения соответствуют этому?
  • Есть ли ссылка, которая сопоставляет распределения с наблюдениями, которые вы принимаете?

И переходя к погоне, какова формула для этого распределения, и каковы формулы для оценки его параметров?


Я хочу получить распределение, чтобы я мог получить «среднее» значение, а также «спред»: альтернативный текст

Я на самом деле строю гистограмму в программном обеспечении и хочу наложить теоретическое распределение:

альтернативный текст

Примечание: кросс- пост от math.stackexchange.com


Обновление : 160000 образцов:

введите описание изображения здесь

Месяцы и месяцы, а также бесчисленные сеансы отбора проб дают одинаковое распределение. Там должно быть математическое представление.


Харви предложил поместить данные в логарифмическую шкалу. Вот плотность вероятности в логарифмическом масштабе:

введите описание изображения здесь

Теги : выборка, статистика, оценка параметров, нормальное распределение


Это не ответ, а дополнение к вопросу. Вот ведра распределения. Я думаю, что более предприимчивый человек, возможно, захочет вставить их в 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
Мой анализ будет состоять исключительно из рисования симпатичного графика поверх баров :) Но было бы обманом притворяться, что верхнего хвоста не было ...
Ян Бойд
Вы получаете много полезных идей для разных дистрибутивов. Чтобы ответить на ваш вопрос «Я хочу знать, что это за статистическое распределение», обычный метод - это график QQ, легко генерируемый в R.
Майк Данлавей,
1
Конечно, если вам нужна только плавная кривая, возьмите все свои данные, отсортируйте их, чтобы получить эмпирический CDF, сгладьте его и получите первую производную в числовом виде. Это твоя кривая.
Майк Данлавей

Ответы:

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, чтобы получить обратную форму), это потому, что «surreg» использует другую параметризацию (то есть она параметризована в терминах «обратного вейбулла», который более распространен в актуарных науках) ,

user603
источник
10

Позвольте мне задать более простой вопрос: что вы хотите сделать с этой информацией о распространении?

Причина, по которой я спрашиваю, состоит в том, что может иметь смысл аппроксимировать распределение с помощью некоторого оценщика плотности ядра, а не настаивать на том, чтобы оно вписывалось в одно из (возможно, сдвинутых) экспоненциальных семейств распределений. Вы можете ответить практически на все те же самые вопросы, на которые вам ответит стандартный дистрибутив, и вам не нужно беспокоиться (столько) о том, правильно ли вы выбрали модель.

Но если есть фиксированное минимальное время, и у вас должно быть какое-то компактно параметризованное распределение, то просто взглянув на него, я бы вычел минимум и подстроил гамму, как предлагали другие.

Богатый
источник
Я хочу нарисовать теоретическую кривую распределения по ней, найти среднее значение , медиану , стандартное отклонение . В основном я хотел бы получить медиану, но на самом деле я хочу нарисовать теоретическую кривую.
Ян Бойд
1
Я думаю, что Рич имел в виду что-то вроде: «На какой вопрос вы пытаетесь ответить?» Определение распределения данных - это вопрос, да, но, несомненно, есть еще один вопрос, на который вы сможете ответить, когда узнаете распределение. Что это такое?
Мэтт Паркер
@ MattParker Я хочу знать, что такое «пик» времени.
Ян Бойд
2
@IanBoyd Я не думаю, что вам действительно нужно знать теоретическое распределение, чтобы получить это - сработает ли медиана? А для затенения в соседних «стандартных отклонениях» вы можете просто использовать квантили. Если ваша цель - сообщить, сколько времени занимает большинство пингов, я не вижу ничего плохого в том, чтобы сообщать о медиане с квантилями 25% и 75%. Или, если вы хотите подражать 68%, которые находятся в пределах 1 SD от среднего значения в нормальном распределении, 16% и 84% квантили.
Мэтт Паркер
8

Нет оснований ожидать, что любой набор данных реального мира будет соответствовать известной форме распространения ... особенно из такого известного грязного источника данных.

То, что вы хотите сделать с ответами, будет в значительной степени указывать на подход. Например, если вы хотите знать, когда время пинга значительно изменилось, то можно выбрать трендовое эмпирическое распределение. Если вы хотите идентифицировать выбросы, другие методы могут быть более подходящими.

PeterR
источник
На самом деле я хочу нарисовать математическую кривую, которая следует за распределением. Конечно, это может быть не известный дистрибутив; но я не могу себе представить, что это не было расследовано ранее.
Ян Бойд
4
Посмотрите «оценка плотности».
PeterR
6

Более простой подход может заключаться в преобразовании данных. После преобразования он может быть близок к гауссовскому.

Один из распространенных способов сделать это - взять логарифм всех значений.

Я предполагаю, что в этом случае распределение обратного времени прохождения сигнала туда и обратно будет более симметричным и, возможно, близким к гауссовскому. Взяв обратную величину, вы, по сути, табулируете скорости, а не времена, поэтому результаты по-прежнему легко интерпретировать (в отличие от логарифмов или многих преобразований).

Харви Мотульский
источник
4

xGamma(k,θ)

Обновление - процесс оценки

θ^k^k^


источник
на самом деле я старался избежать упоминания о гамма-распределении. я видел это в Википедии, я не могу найти формулу для распределения или формулы для оценки параметров в этой формуле. А потом я очень нервничал, когда увидел «Для k нет решения в замкнутой форме». И я все равно попробовал с некоторыми формулами - но когда вы получаете пакет, который возвращается через 0 мс, ln (0) взрывается.
Ян Бойд
Потому что, хотя у меня есть хорошее понимание нормального распределения, с моих университетских дней я над головой, когда мы добираемся до таких вещей, как «дивергенция Кульбака-Лейблера» .
Ян Бойд
k
Да, технически это следует называть <1ms. И этот график не включает ноль, потому что он идет по каналу с более высокой задержкой (модем). Но я могу также запустить программу по более быстрому каналу (т. Е. Пропинговать другую машину в локальной сети), и регулярно получать <1msи 1msс гораздо меньшим количеством случаев 2ms. К сожалению, Windows предоставляет только разрешение 1ms. я мог бы вручную рассчитать время с помощью высокопроизводительного счетчика, получив мкс; но я все еще надеялся уложить их в ведра (чтобы сохранить память). Возможно, я должен добавить 1 мс ко всему ...1ms ==> (0..1]
Ян Бойд
просто фитинг гамм с R: docs.google.com/...
apeescape
4

Другой подход, более оправданный сетевыми соображениями, состоит в том, чтобы попытаться подобрать сумму независимых экспонент с различными параметрами. Разумным предположением будет то, что каждый узел на пути пинга задержки будет независимой экспоненциальной с разными параметрами. Ссылка на форму распределения суммы независимых экспонент с различными параметрами: http://www.math.bme.hu/~balazs/sumexp.pdf .

Вам, вероятно, следует также посмотреть время пинга в зависимости от количества прыжков.

PeterR
источник
3

Глядя на это, я бы сказал, что косо-нормальное или, возможно, бинормальное распределение может хорошо подойти.

В R вы можете использовать snбиблиотеку, чтобы иметь дело с косо-нормальным распределением и использовать nlsили mleдля нелинейных наименьших квадратов или максимального соответствия вероятности ваших данных.

===

РЕДАКТИРОВАТЬ: перечитывая ваш вопрос / комментарии, я бы добавил что-то еще

Если то, что вас интересует, - это просто нарисовать симпатичный график над столбиками, забудьте о распределениях, кому какое дело, если вы ничего не сделаете с ним. Просто нарисуйте B-сплайн над точкой данных, и все в порядке.

Кроме того, при таком подходе вам не нужно реализовывать алгоритм подбора MLE (или аналогичный), и вы покрываете случай, когда распределение не является нормальным (или что вы выберете для рисования).

Nico
источник
+1 Я тоже думал биномиально, когда впервые увидел гистограмму. (Не уверен, почему за это проголосовали).
Дуг
Ну, это не просто красивые линии. Я также хотел бы иметь возможность указать на истинный «пик» на кривой, а также на тень в одной единице стандартного отклонения с обеих сторон.
Ян Бойд
@IanBoyd: для этих целей будет достаточно B-сплайна, тем более что гистограмма относительно низкого разрешения. Тогда это всегда зависит от того, что вы подразумеваете под «истинным» пиком.
Нико
2

На основании вашего комментария «На самом деле я хочу нарисовать математическую кривую, которая следует за распределением. Конечно, это может быть не известное распределение; но я не могу представить, что это не было исследовано ранее». Я предоставляю функцию, которая вроде подходит.

Взгляните на ExtremeValueDistribution

Я добавил амплитуду и сделал две разные беты. Я полагаю, что центр вашей функции ближе к 9,5, чем к 10.

Новая функция: a E ^ (- E ^ (((- x + alpha) / b1)) + (-x + alpha) / b2) / ((b1 + b2) / 2)

{alpha-> 9,5, b2 -> 0,899093, a -> 5822,2, b1 -> 0,381825}

Вольфрам альфа : сюжет 11193,8 E ^ (- E ^ (1,66667 (10-х)) + 1,66667 (10-х)), х 0,16, у от 0 до 4500

Некоторые точки около 10 мс:
{{9, 390.254}, {10, 3979.59}, {11, 1680.73}, {12, 562.838}}

Хвост не подходит идеально, хотя. Хвост может подходить лучше, если b2 ниже и пик выбран ближе к 9.

Davorak
источник
1

Дистрибутив выглядит логично для меня.

Вы можете разместить свои данные, используя два параметра: масштаб и местоположение. Они могут быть подобраны во многом так же, как и обычное распределение, используя максимизацию ожидания.

http://en.wikipedia.org/wiki/Log-normal_distribution

Томас Братт
источник