Olasılık yoğunluk aralıklarını bulma


9

Vektörüm var

x <- c(1,2,3,4,5,5,5,6,6,6,6,
       7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,
       7,7,7,7,7,7,7,7,8,8,8,8,9,9,9,10)

(gerçek vektörümün uzunluğu> 10.000'dir) ve yoğunluğun% 90'ının bulunduğu aralıkları bulmak istiyorum. Mi quantile(x, probs=c(0.05,0.95), type=5), en uygun ya da başka bir yolu var mı?


Sorunuz "... arasındaki aralıklarla" ilgili biraz belirsiz - birden fazla aralık olabilir. Sadece iç% 90, yani her iki tarafta simetrik kırpma ile ilgileniyor musunuz? Sonuçta, minimumdan% 90'a kadar verinin% 90'ı, benzer şekilde% 10 ile maksimum değere kadar yakalanır.
Iterator

En kısa aralık, simetrik aralık (her iki uçta eşit olasılık) veya başka bir şey mi arıyorsunuz?
Glen_b

Yanıtlar:


19

Yukarıda belirtildiği gibi, yoğunluğun% 90'ını içeren bir aralık tanımlamanın birçok farklı yolu vardır. Henüz işaret edilmemiş olan en yüksek [arka] yoğunluk aralığıdır ( wikipedia ), "son noktaların ampirik kümülatif yoğunluk fonksiyon değerlerindeki farkın nominal olasılık olduğu en kısa aralık" olarak tanımlanır.

library(coda)
HPDinterval(as.mcmc(x), prob=0.9)

3

Kesinlikle en basit yaklaşım gibi görünüyor. Fonksiyon oldukça hızlı. Her zaman kullandığınızdan yüz kat daha büyük olan numunelerde kullanıyorum ve tahminlerin kararlılığı örneklem boyutunuzda iyi olmalıdır.

Diğer paketlerde daha eksiksiz açıklayıcı istatistik setleri sağlayan işlevler vardır. Kullandığım Hmisc::describe, ancak describeişlevleri olan birkaç paket var .


3

Yolunuz mantıklı görünüyor, özellikle örnekteki ayrı verilerle,

quantile(x,probs=c(0.05,0.95), type=5)
 5% 95% 
2.8 9.0

ancak başka bir yol hesaplanmış yoğunluk çekirdeği kullanmak olabilir:

dx <- density(x)
dn <- cumsum(dx$y)/sum(dx$y)
li <- which(dn>=0.05)[1]
ui <- which(dn>=0.95)[1]
dx$x[c(li,ui)]
[1] 2.787912 9.163246

-1

Evet. :-). Çıktının stats::densitydaha yararlı olduğunu görebilirsiniz.

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.