다음 데이터를 보자.
8232302 684531 116857 89724 82267 75988 63871
23718 1696 436 439 248 235
이 (및 다른 여러 데이터 세트)를 파레토 분포에 맞추는 간단한 방법을 원하십시오. 이상적으로는 일치하는 이론적 값을 출력하고, 이상적으로는 매개 변수를 출력하지 않습니다.
다음 데이터를 보자.
8232302 684531 116857 89724 82267 75988 63871
23718 1696 436 439 248 235
이 (및 다른 여러 데이터 세트)를 파레토 분포에 맞추는 간단한 방법을 원하십시오. 이상적으로는 일치하는 이론적 값을 출력하고, 이상적으로는 매개 변수를 출력하지 않습니다.
답변:
글쎄, 당신은 샘플이있는 경우 모수 및 (여기서 은 하한 모수이고 는 모양 모수) 을 갖는 파레토 분포의 X n 은 해당 표본의 로그 우도입니다.
이것은 로 단조 증가 하므로 최대 값은 관측 된 데이터와 일치하는 가장 큰 값입니다. 모수 m 은 파레토 분포에 대한지지의 하한을 정의하므로 최적은
의존하지 않습니다 . 다음으로, 일반 수학 트릭을 사용하기위한 MLE 만족해야
간단한 대수학에 따르면 의 MLE 은
많은 중요한 의미에서 (예 : Cramer-Rao 하한을 달성하는 점에서 최적의 점근 효율), 이것은 파레토 분포에 데이터를 맞추는 가장 좋은 방법입니다. 아래의 R 코드는 주어진 데이터 세트에 대한 MLE을 계산합니다 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
편집 : @cardinal에 의한 해설을 바탕으로 아래 I, 우리가 할 수도 참고 의 표본 평균의 역수 에 일의, 지수 분포가 있습니다. 따라서 지수 분포에 맞는 소프트웨어에 액세스 할 수있는 경우 (많은 통계적 문제에서 발생하기 때문에 더 가능성이 높음) 데이터 세트를 이러한 방식으로 변환하고 피팅하여 파레토 분포를 맞출 수 있습니다. 변환 된 스케일에서 지수 분포로.
패키지에 fitdist
제공된 기능을 사용할 수 있습니다 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
library(fitdistrplus)
?
library(actuar)
이 기능이 작동 하려면 호출 이 필요합니다.