Daha sonra bir kutu grafiği üretebileceğim çok sayıda örneği tanımlayan bir istatistik kümesi biriktirmek mümkün mü?


22

Bir istatistikçi değil pratik bir yazılım geliştirici olduğumu ve üniversite istatistik sınıfımın çok uzun zaman önceydi ...

Bununla birlikte, bir grup münferit örneklerin depolanmasını gerektirmeyen bir kutu grafiği üretmek için kullanılabilecek bir dizi tanımlayıcı istatistik biriktirmek için bir yöntem olup olmadığını bilmek istiyorum.

Yapmaya çalıştığım, karmaşık çok sıralı bir işlem içinde sıra hizmet zamanlarının grafiksel bir özetini üretmek. Geçmişte büyük örneklerin toplanmasına izin veren tnftools adında bir paket kullandım ve daha sonra yanıt zamanları ve aykırı değerlerden oluşan hoş bir grafik haline getirilip…

İdeal olarak, işlem devam ederken "anında" açıklayıcı bir istatistik kümesi biriktirmek ve daha sonra talep üzerine analiz için verileri çıkarmak istiyorum. Ancak, bu işlemle ilgili bellek / IO'nun sistemin performansı üzerinde kabul edilemez bir etkisi olacağından, işlemin örnekleri biriktiremem.


Kaelin:> Ortanca ve dörtlü gibi özet istatistikleri hesaplamak için 'anında' yöntemi var mı demek istiyorsun? İstediğin buysa, onları ayrıntılarıyla anlatan makalelere link verebilirim. Ayrıca, üzerinde çalıştığınız platformlar hakkında daha fazla bilgi verebilirsiniz. Bu yöntemlerin verimli GNU uygulaması, muhtemelen R'de bulunmaktadır.
user603

@kwak: Evet, aradığım şeye benziyor. Bu bağlantıları çok takdir ediyorum. :-) Mac OS X üzerinde çalışıyorum… İşlem sonrası veriler için R kullanabilirim, ancak genel nedenlerden dolayı GPL kodunu şirketimin ürününe bağlayamıyorum.
Kaelin Colclasure

Yanıtlar:


27

'Anında' kutucuğu için, 'anında' çeyreklere (0,25,0,5 = ortanca ve 0,75) 'anında' minimum / max'a (önemsiz) ihtiyacınız olacak.

Son zamanlarda, medyan hesaplama için çevrimiçi (veya 'anında') algoritması problemi ile ilgili birçok çalışma devam etmektedir.

Yeni gelişmeler binmedian . Bir yandan vuruş olarak, aynı zamanda hızlı seçimden (ne çevrimiçi ne de tek geçiş) değil, daha kötü durum karmaşıklığından yararlanır .

İlgili kağıdı ve C ve FORTRAN kodunu çevrimiçi olarak burada bulabilirsiniz . Lisans detaylarını yazarlarla kontrol etmeniz gerekebilir.

Ayrıca, yukarıdaki yaklaşımı ve çeyreklerin medyanlar açısından aşağıdaki özyinelemeli karakteristiğini kullanabileceğiniz dörtlüler için tek geçişli bir algoritmaya ihtiyacınız olacak:

S0.75(x)S0.5(xben:xben>S0.5(x))

ve

S0.25(x)S0.5(xben:xben<S0.5(x))

yani, yüzde 25 (75) çeyreklik, medyandan daha küçük (daha büyük) olan gözlemlerin ortancasına çok yakındır.

Zeyilname:

Quantiles hesaplamak için çok sayıda eski çok geçişli yöntem vardır. Popüler bir yaklaşım, akıştan rasgele seçilen belirleyici boyutta bir gözlem rezervini muhafaza etmek / güncellemek ve bu rezervuardaki tekrarlanan miktarları tekrar tekrar hesaplamaktır ( bu incelemeye bakınız ). Bu (ve ilişkili) yaklaşım, yukarıda önerilen yaklaşımın yerini alır.


1
+1 Sağ; Histogramdan yaklaşma konusunda hala karanlık yaştaydım.

Ortancalardan elde edilen bu özyinelemeli çeyrek tanımlarının, eğer saf olarak uygulanırsa iki geçiş gerektirdiğini doğru anlıyor muyum? Tek geçişli algoritmaların farkında mısınız?
Quartz,

@ Quartz: hayır, tek bir geçişte: medyan hesaplamaları yapan iki, tek geçiğiniz var.
user603

2

Sadece medyanı bulmak yerine, doğrudan tahmini bir histogramı koruyan bir algoritma vardır: " Gözlemleri Saklamadan Miktarların ve Histogramların Dinamik Hesaplanması için P-Kare Algoritması ". Bu muhtemelen istediğiniz her miktar için tekrarlanan kazanma işleminden daha verimli olacaktır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.