Bagaimana cara mengetahui jenis distribusi yang mewakili data ini pada waktu respons ping?

22

Saya telah mencicipi proses dunia nyata, waktu ping jaringan. "Round-trip-time" diukur dalam milidetik. Hasil diplot dalam histogram:

teks alternatif

Waktu ping memiliki nilai minimum, tetapi ekor panjang yang panjang.

Saya ingin tahu apa distribusi statistik ini, dan bagaimana memperkirakan parameternya.

Meskipun distribusinya bukan distribusi normal, saya masih bisa menunjukkan apa yang ingin saya capai.

Distribusi normal menggunakan fungsi:

teks alternatif

dengan dua parameter

  • μ (rata-rata)
  • σ 2  (varian)

Estimasi parameter

Rumus untuk memperkirakan dua parameter adalah:

teks alternatif

Menerapkan rumus ini terhadap data yang saya miliki di Excel, saya dapatkan:

  • μ = 10.9558 (rata-rata)
  • σ 2  = 67,4578 (varians)

Dengan parameter ini saya dapat merencanakan distribusi " normal " di atas data sampel saya:

teks alternatif

Jelas itu bukan distribusi normal. Distribusi normal memiliki ekor atas dan bawah yang tak terbatas, dan simetris. Distribusi ini tidak simetris.


  • Prinsip apa yang akan saya terapkan; flowchart apa yang akan saya terapkan untuk menentukan distribusi seperti apa ini?
  • Mengingat bahwa distribusi tidak memiliki ekor negatif, dan ekor positif panjang: distribusi apa yang cocok dengan itu?
  • Apakah ada referensi yang cocok dengan distribusi dengan pengamatan yang Anda lakukan?

Dan memotong untuk mengejar, apa rumus untuk distribusi ini, dan apa rumus untuk memperkirakan parameternya?


Saya ingin mendapatkan distribusi sehingga saya bisa mendapatkan nilai "rata-rata", serta "spread": teks alternatif

Saya sebenarnya merencanakan histogram dalam perangkat lunak, dan saya ingin melihat distribusi teoretis:

teks alternatif

Catatan: Diposting silang dari math.stackexchange.com


Pembaruan : 160.000 sampel:

masukkan deskripsi gambar di sini

Bulan dan bulan, dan sesi pengambilan sampel yang tak terhitung jumlahnya, semuanya memberikan distribusi yang sama. Ada harus menjadi representasi matematis.


Harvey menyarankan untuk meletakkan data pada skala log. Berikut kepadatan probabilitas pada skala log:

masukkan deskripsi gambar di sini

Tag : pengambilan sampel, statistik, estimasi parameter, distribusi normal


Itu bukan jawaban, tetapi tambahan untuk pertanyaan itu. Inilah ember distribusi. Saya pikir orang yang lebih suka bertualang mungkin ingin menempelkannya ke Excel (atau program apa pun yang Anda tahu) dan dapat menemukan distribusinya.

Nilai-nilai dinormalisasi

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
Ian Boyd
sumber
1
Hanya melihatnya, sepertinya distribusi normal miring. Apakah Anda yakin outlier diperlukan untuk analisis Anda?
Brandon Bertelsen
1
Analisis saya hanya akan terdiri dari menggambar grafik cantik di atas bar :) Tapi akan curang untuk berpura-pura tidak ada ekor atas ...
Ian Boyd
Anda mendapatkan banyak ide berguna untuk distribusi yang berbeda. Untuk menjawab pertanyaan Anda, "Saya ingin tahu apa distribusi statistik ini", metode yang biasa digunakan adalah plot QQ, mudah dibuat di R.
Mike Dunlavey
1
Tentu saja, jika semua yang Anda inginkan adalah kurva halus, ambil semua data Anda, sortir untuk membuat CDF empiris, haluskan, dan ambil turunan pertama secara numerik. Itu kurva kamu.
Mike Dunlavey

Jawaban:

12

Weibull terkadang digunakan untuk memodelkan waktu ping. coba distribusi weibull. Agar sesuai satu di 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

Jika Anda bertanya-tanya untuk nama konyol (yaitu $ scale untuk mendapatkan kebalikan dari bentuk) itu karena "survreg" menggunakan parametrization lain (yaitu parametrized dalam istilah "inverse weibull" yang lebih umum dalam ilmu aktuaria) .

pengguna603
sumber
10

Izinkan saya mengajukan pertanyaan yang lebih mendasar: apa yang ingin Anda lakukan dengan informasi distribusi ini?

Alasan saya bertanya adalah karena mungkin lebih masuk akal untuk memperkirakan distribusi dengan semacam penduga kepadatan kernel, daripada bersikeras bahwa itu masuk dalam salah satu distribusi keluarga eksponensial (mungkin bergeser). Anda dapat menjawab hampir semua jenis pertanyaan yang sama dengan yang dibagikan oleh distribusi standar, dan Anda tidak perlu khawatir (sebanyak) tentang apakah Anda telah memilih model yang benar.

Tetapi jika ada waktu minimum yang tetap, dan Anda harus memiliki semacam distribusi parameterisasi yang kompak untuk mengikutinya, maka hanya dengan melihatnya, saya akan mengurangi minimum dan menyesuaikan gamma, seperti yang disarankan orang lain.

Kaya
sumber
saya ingin menggambar kurva distribusi teoretis di atasnya, menemukan mean , median , standar deviasi . Sebagian besar saya ingin median, tetapi saya benar-benar ingin menggambar kurva teoretis.
Ian Boyd
1
Saya pikir Rich berarti sesuatu seperti, "Pertanyaan macam apa yang Anda coba jawab?" Menentukan distribusi data adalah sebuah pertanyaan, ya, tapi pasti ada beberapa pertanyaan lain yang Anda harapkan dapat dijawab begitu Anda tahu distribusinya. Apa itu?
Matt Parker
@ MattParker saya ingin tahu apa waktu "puncak".
Ian Boyd
2
@IanBoyd Saya tidak berpikir Anda benar-benar perlu tahu distribusi teoretis untuk mendapatkan itu - apakah median akan bekerja? Dan untuk bayangan dalam 'standar deviasi' yang berdekatan, Anda bisa menggunakan kuantil. Jika tujuan Anda adalah untuk mengkomunikasikan berapa lama sebagian besar ping, saya tidak melihat ada yang salah dengan melaporkan median dengan 25% dan 75% kuantil. Atau, jika Anda ingin meniru 68% yang berada dalam 1 SD dari rata-rata dalam distribusi normal, 16% dan 84% kuantil.
Matt Parker
8

Tidak ada alasan untuk berharap bahwa set data dunia nyata apa pun akan cocok dengan bentuk distribusi yang dikenal ... terutama dari sumber data yang dikenal berantakan.

Apa yang ingin Anda lakukan dengan jawaban sebagian besar akan menunjukkan suatu pendekatan. Misalnya, jika Anda ingin tahu kapan waktu ping telah berubah secara signifikan, maka tren distribusi empiris mungkin merupakan cara untuk pergi. Jika Anda ingin mengidentifikasi outlier, teknik lain mungkin lebih tepat.

PeterR
sumber
Sungguh saya ingin menggambar kurva matematika yang mengikuti distribusi. Memang itu mungkin bukan distribusi yang diketahui; tetapi saya tidak dapat membayangkan bahwa ini belum diselidiki sebelumnya.
Ian Boyd
4
Cari 'estimasi kepadatan'.
PeterR
6

Pendekatan yang lebih sederhana adalah mengubah data. Setelah transformasi, mungkin dekat dengan Gaussian.

Salah satu cara umum untuk melakukannya adalah dengan mengambil logaritma dari semua nilai.

Dugaan saya adalah bahwa dalam kasus ini distribusi kebalikan dari waktu pulang-pergi akan lebih simetris dan mungkin dekat dengan Gaussian. Dengan mengambil resiprokal, Anda pada dasarnya menabulasi kecepatan bukan kali, sehingga masih mudah untuk menafsirkan hasilnya (tidak seperti logaritma atau banyak transformasi).

Harvey Motulsky
sumber
4

xGamma(k,θ)

Perbarui- Proses Estimasi

θ^k^k^


sumber
Saya sebenarnya akan berusaha untuk menghindari menyebutkan distribusi Gamma. saya melihatnya di Wikipedia, saya tidak bisa menemukan rumus untuk distribusi, atau rumus untuk memperkirakan parameter dalam rumus itu. Dan kemudian saya menjadi sangat gugup ketika saya melihat "Tidak ada solusi bentuk tertutup untuk k." Dan saya tetap mencobanya dengan beberapa rumus - tetapi ketika Anda mendapatkan paket yang kembali dalam 0ms, ln (0) meledak.
Ian Boyd
Karena sementara saya memiliki pemahaman yang baik tentang distribusi normal, dari masa kuliah saya, saya berada di atas kepala ketika kita sampai pada hal-hal seperti "Kullback – Leibler divergence" .
Ian Boyd
k
Ya, secara teknis harus disebut sebagai <1ms. Dan plot ini tidak termasuk nol, karena akan melewati tautan latensi yang lebih tinggi (modem). Tetapi saya dapat menjalankan program dengan baik melalui tautan yang lebih cepat (mis. Ping mesin lain di LAN), dan secara rutin mendapatkan <1msdan 1ms, dengan kejadian yang jauh lebih sedikit 2ms. Sayangnya Windows hanya menyediakan resolusi 1ms. saya bisa mengatur waktu secara manual menggunakan penghitung kinerja tinggi, mendapatkan μs; tapi saya masih berharap bisa memasukkannya ke dalam ember (untuk menghemat memori). Mungkin saya harus menambahkan 1ms untuk semuanya ...1ms ==> (0..1]
Ian Boyd
cukup pas gammas dengan R: docs.google.com/...
apeescape
4

Pendekatan lain, yang lebih dibenarkan oleh pertimbangan jaringan, adalah mencoba menyesuaikan sejumlah eksponensial independen dengan parameter yang berbeda. Asumsi yang masuk akal adalah bahwa setiap node di jalur ping penundaan akan menjadi eksponensial independen, dengan parameter yang berbeda. Referensi ke bentuk distribusi jumlah eksponensial independen dengan parameter yang berbeda adalah http://www.math.bme.hu/~balazs/sumexp.pdf .

Anda mungkin juga harus melihat waktu ping vs jumlah hop.

PeterR
sumber
3

Melihat itu, saya akan mengatakan distribusi miring-normal atau mungkin binormal mungkin cocok.

Di R, Anda bisa menggunakan snpustaka untuk berurusan dengan distribusi condong-normal dan menggunakan nlsatau mleuntuk melakukan kuadrat terkecil non-linier atau kesesuaian kemungkinan pemanjangan maksimum data Anda.

===

EDIT: membaca ulang pertanyaan / komentar Anda, saya akan menambahkan sesuatu yang lebih

Jika yang Anda minati hanyalah menggambar grafik yang cantik di atas bilah, lupakan distribusi, siapa yang peduli pada akhirnya jika Anda tidak melakukan apa-apa dengannya. Hanya menggambar B-spline di atas titik data Anda dan Anda baik-baik saja.

Juga, dengan pendekatan ini Anda menghindari keharusan menerapkan algoritma MLE fit (atau serupa), dan Anda tercakup dalam kasus distribusi yang tidak condong-normal (atau apa pun yang Anda pilih untuk menggambar)

nico
sumber
+1 saya pikir binomial juga, ketika saya pertama kali melihat histogram. (Tidak yakin mengapa ini diturunkan).
doug
Yah itu bukan hanya garis-garis cantik. Saya juga ingin dapat menunjuk ke "puncak" sebenarnya dalam kurva, serta warna dalam satu unit standar deviasi di kedua sisi.
Ian Boyd
@IanBoyd: B-spline akan cukup untuk hal-hal tersebut, terutama karena histogramnya relatif rendah. Kemudian, itu selalu tergantung pada apa yang Anda maksud dengan puncak "benar".
nico
2

Berdasarkan komentar Anda, "Saya benar-benar ingin menggambar kurva matematika yang mengikuti distribusi. Memang itu mungkin bukan distribusi yang diketahui; tetapi saya tidak dapat membayangkan bahwa ini belum diselidiki sebelumnya." Saya menyediakan fungsi yang cocok.

Lihatlah ExtremeValueDistribution

Saya menambahkan amplitudo dan membuat dua beta berbeda. Saya pikir pusat fungsi Anda lebih dekat ke 9,5 dari 10.

Fungsi baru: a 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 : plot 11193.8 E ^ (- E ^ (1.66667 (10 - x)) + 1.66667 (10 - x)), x 0..16, y dari 0 hingga 4.500

Beberapa poin sekitar 10ms:
{{9, 390.254}, {10, 3979.59}, {11, 1680.73}, {12, 562.838}}

Ekor tidak pas dengan sempurna. Ekor bisa pas lebih baik jika b2 lebih rendah dan puncak dipilih lebih dekat ke 9.

Davorak
sumber
1

Distribusi terlihat log-normal bagi saya.

Anda dapat menyesuaikan data Anda menggunakan dua parameter: skala dan lokasi. Ini dapat dipasang dengan cara yang sama seperti distribusi normal menggunakan maksimalisasi harapan.

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

Thomas Bratt
sumber