R'deki bir Pareto dağıtımına bir dizi veriyi nasıl sığdırırım?


22

Diyelim ki, aşağıdaki verileri var:

8232302  684531  116857   89724   82267   75988   63871   
  23718    1696     436     439     248     235

Bunu (ve diğer bazı veri kümelerini) bir Pareto dağıtımına sığdırmanın basit bir yolunu istiyorum. İdeal olarak, eşleşen teorik değerleri, daha az ideal olarak parametreleri çıkarır.



"Teorik değerleri eşleştirmek" ile ne kastedilmektedir? Parametre tahminleri verilen sıra istatistiklerinin beklentileri? Veya başka bir şey?
Glen_b -Reinstate Monica

Yanıtlar:


33

Eh, bir örnek varsa parametreler ile bir kısıtsız dağılımından m > 0 ve α > 0 (burada m, alt sınır parametredir ve α şekil parametresidir) bu numune log-olasılık olduğu:X1,...,Xnm>0α>0mα

nlog(α)+nαlog(m)(α+1)i=1nlog(Xi)

bu monoton bir şekilde cinsinden artmaktadır , bu nedenle maksimize edici, gözlemlenen verilerle tutarlı olan en büyük değerdir. M parametresi Pareto dağıtımı için desteğin alt sınırını tanımladığından, en uygun değermm

m^=miniXi

burada bağlı değildir . Daha sonra, sıradan hesap püf noktalarını kullanarak, α için MLE yeterli olmalıdırαα

nα+nlog(m^)i=1nlog(Xi)=0

Bazı basit cebir bize MLE söyler olduğunuα

α^=ni=1nlog(Xi/m^)

Pek çok önemli duyumda (örneğin Cramer-Rao alt sınırına ulaşılmasında optimal asimptotik verimlilik), verileri bir Pareto dağılımına sığdırmanın en iyi yoludur. Aşağıdaki R kodu verilen bir veri seti için MLE değerini hesaplar X.

pareto.MLE <- function(X)
{
   n <- length(X)
   m <- min(X)
   a <- n/sum(log(X)-log(m))
   return( c(m,a) ) 
}

# example. 
library(VGAM)
set.seed(1)
z = rpareto(1000, 1, 5) 
pareto.MLE(z)
[1] 1.000014 5.065213

Düzenleme: @cardinal göre yorum dayanarak ve aşağıdaki I, aynı zamanda dikkat olabilir a örnek ortalama karşılıklıdır log ( X ı / m ) 'nin, ne ki, bir üstel bir dağılıma sahip olması. Dolayısıyla, üstel bir dağılıma sığabilecek bir yazılıma erişebiliyorsak (ki bu, çoğu istatistiksel problemde ortaya çıktığı için daha muhtemeldir), o zaman bir Pareto dağılımına uymak, veri kümesini bu şekilde dönüştürerek ve sığdırarak gerçekleştirilebilir. dönüştürülen ölçekte üstel bir dağılım. α^log(Xi/m^)


3
(+1) oranının α ile katlanarak dağıtıldığını belirterek, işleri daha anlamlı bir şekilde yazabiliriz . Bu ve bir kez de sonucuna dönüşüm altında Mles değişmezliği gelen a = 1 / ˉ Y, biz değiştirmek, m ile m ikinci ifadesinde. Bu aynı zamanda, açık bir seçenek olmasa bile, bir Pareto'ya uyması için standart yazılımı nasıl kullanabileceğimize dair ipuçları vermektedir. Yi=log(Xi/m)αα^=1/Y¯mm^
kardinal

@cardinal - örnek ortalama karşılıklıdır log ( X ı / m ) 'nin, ne ki, bir üstel bir dağılıma sahip olması. Bu bize nasıl yardımcı oluyor? α^log(Xi/m^)
Makro

2
Selam Makro. Yapmaya çalıştığım nokta, bir Pareto'nun parametrelerini tahmin etme probleminin (esasen) bir üstel oranının tahminine indirgenmiş olabileceği idi: Yukarıdaki bir dönüşümle verilerimizi ve sorunumuzu bir (belki) daha tanıdık olanı cevaplayın ve hemen cevabı açın (biz veya yazılımımızın üstel bir örnekle ne yapacağını zaten bildiğimizi varsayalım).
kardinal 11

Bu tür bir uyum hatasını nasıl ölçebilirim?
emanuele

@emanuele, bir MLE'nin yaklaşık varyansı, günlük olasılığının en az bir türevini hesaplamanızı gerektiren fisher bilgi matrisinin tersidir. Veya standart hatayı tahmin etmek için bir çeşit önyükleme yeniden örnekleme kullanabilirsiniz.
Makro

8

Pakette verilen fitdistfonksiyonu kullanabilirsiniz fitdistrplus:

library(MASS)
library(fitdistrplus)
library(actuar)

# suppose data is in dataPar list
fp <- fitdist(dataPar, "pareto", start=list(shape = 1, scale = 500))
#the mle parameters will be stored in fp$estimate

Olmalı mı library(fitdistrplus)?
Sean

1
@Sean evet, buna göre yanıt düzenleme
Kevin L Keys

library(actuar)Bunun çalışması için yapılan aramanın gerekli olduğunu unutmayın .
jsta

Fp $ tahmini ["şekil"] bu durumda neyi temsil eder? Belki de tahmini alfa mı? Veya beta?
Albert Hendriks
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.