R'de yoğunluk fonksiyonundan olasılık yoğunluk fonksiyonunu bulma / tahmin etme


17

XBilinmeyen bir dağılımda olduğu gibi bir değişkenim var . Mathematica'nın olarak, kullanarak SmoothKernelDensityişlev biz tahmini yoğunluk çalışmaz.Bu tahmini yoğunluk fonksiyonu ile birlikte kullanılabilir olabilir PDFgibi bir değer hesaplamak olasılık yoğunluk fonksiyonu fonksiyonu Xşeklinde PDF[density,X]"yoğunluk" bir sonucu olduğunu varsayarak SmoothKernelDensity. R'de böyle bir özellik varsa iyi olurdu. Mathematica'da böyle çalışır

http://reference.wolfram.com/mathematica/ref/SmoothKernelDistribution.html

Örnek olarak (Mathematica işlevlerine göre):

data = RandomVariate[NormalDistribution[], 100]; #generates 100 values from N(0,1)

density= SmoothKernelDistribution[data]; #estimated density

PDF[density, 2.345] returns 0.0588784 

Burada PDF hakkında daha fazla bilgi bulabilirsiniz:

http://reference.wolfram.com/mathematica/ref/PDF.html

Yoğunluk fonksiyonunu density(X)R kullanarak çizebileceğimi ve ecdf(X)ampirik kümülatif dağılım fonksiyonunu elde edebileceğimi biliyorum. Mathematica hakkında tarif ettiğim şeye dayanarak R'de aynı şeyi yapmak mümkün mü?

Herhangi bir yardım ve fikir takdir edilmektedir.


density(x)daha önce belirttiğiniz gibi pdf hakkında bir tahmin verir, ancak uygunluğu yoğunluğa sahip olmak istediğiniz amaca bağlıdır. Örneğin, varyansın önyargılı olduğuna dikkat edin (evrişim gerçekleştirirken, çekirdeğin varyansını verilerin varyansına eklersiniz, kendisi tarafsız bir tahmindir) - bu tür önyargı varyansları her yerde bulunur. Örneğin, log-spline yoğunluk tahmini gibi başka alternatifler de vardır - ancak yine de uygunluğu kısmen onunla ne yapmak istediğinize bağlıdır.
Glen_b

@Glen_b Dağıtımdaki diğer değerlerin olasılığını bulmak için tahmini yoğunluğu kullanmak istiyorum. Örneğin, 0 ile 10 arasında değişen bir veri vektörüm var. Bu veri kümesi 0 ile 10 arasında sadece 70 benzersiz değer içeriyor. Yoğunluğu çizebilirim. Şimdi, rastgele bir örneklemede, gözlenen verilerde olmayan X = 7.5'e sahip olma olasılığını bulmakla ilgilendiğimi varsayalım. Bunun ecdf(X)7.5'e eşdeğer yüzdelik değeri verdiğini biliyorum ama aradığım şey bu değil.
Amin

" X = 7.5 olma olasılığını bulmak " - sorun var! Ya sürekli bir dağılımınız vardır (bu durumda asıl cevap "0" dır) ya da yoktur (bu durumda yoğunluk tahminini kullanmamalısınız, çünkü yoğunluğunuz yoktur).
Glen_b

1
ecdf(b)-ecdf(a)P(a<Xb)<X P(X=7.5)

1
Üzgünüm, bu bir hataydı. 7.5 olan değerlerin örnek oranını kastediyorum; Son birkaç kelimeyi yazarken oğlum beni rahatsız etti. Gözlenmeyen bir olay olasılığına ilişkin örnek tahmininiz sıfırdır. Öncekini uygulamak istediniz mi? Puan tahmini yerine oran için bir güven aralığı mı istiyorsunuz? Gerçek sorununuz henüz bir R sorunu değil, sorununuz gerçekten ne istediğinizi doğru bir şekilde açıklıyor. Muhtemelen sorunuzu düzenlemeniz veya yeni bir soru göndermeniz gerekir.
Glen_b

Yanıtlar:


35

?densityapproxzaten doğrusal enterpolasyon yapmak için kullandığına dikkat çekiyor ; uygun bir fonksiyon oluşturan ?approxnoktalara işaret approxfuneder:

x <- log(rgamma(150,5))
df <- approxfun(density(x))
plot(density(x))
xnew <- c(0.45,1.84,2.3)
points(xnew,df(xnew),col=2)

resim açıklamasını buraya girin

Kullanılması ile integratenumunede en az altında uygun bir mesafede başlayan (bir çoklu - belki de, 4 demek ya da 5 - kullanılan bant genişliği df, genel olarak, uygun bir mesafe için yapacağını), bir ED tekabül eden çok yakın bir değer elde etmek için df.


bu ilginç. Görünüşe df(2.3)göre tahmini yoğunluk fonksiyonunun değerini verir x=2.3ancak PDFMathematica'da ne yaparsa yukarıdaki eğri altındaki alanı veriyor x=2.3. Bundan tam emin değilim.Bu sadece benim tahminim. Mathematica'da yaptığım şeyi yeniden üretebilir misin?
Amin

Yukarıdaki fonksiyonum, x'de değerlendirilen "olasılık yoğunluk fonksiyonu" ... "ile ilgili çekirdek tabanlı bir tahmin vermektedir. Ya bunu istiyorsun ya da istemiyorsun. Bunu yapmazsanız, sadece 'bu davranışı yeniden üretmek' olarak değil, istatistiksel olarak da ne istediğinizi açıklamanız gerekir .
Glen_b

Sanırım yanlışlıkla ve kasıtsız olarak yoğunluğun olmayan bir olasılık olduğunu destekledim. Bunu düşünmek misleading.If olmak istemedim PDFMathematica sonra ben cevabımı aldım düşünüyorum (yani verilen X değeri için yoğunluk işlevinin değerini bulma) Cevabınız tarif yapar. Sadece sözcükleri kullanma konusunda birçok karışıklık var!
Amin

2
Neden dolayı PDFsayfa Yapacağım şey aynı tür döndürür, öyle diyor, ancak bu durumda onun hesaplamada kullandığı yöntemleri (ancak küçük bir değere sahip böyle bir amaç ek doğruluk için) büyük olasılıkla biraz daha doğru olmasını vardır. Olasılık / yoğunluk ayrımı hakkında bazı tartışmalar için buraya ve buraya bakınız .
Glen_b
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.