2016-12-26 11 views
1

338 개의 요소로 구성된 데이터 세트에 의 고정 된 하위 임계 값 (R을 사용)으로 구성된 감마 분포를 적용하고 싶습니다. 낮은 한계를 나타 내기 위해 세 개의 매개 변수와 함께 감마를 사용하여 위치를 추가하는 방법을 생각했습니다. 여기에 내 코드입니다 : 감마 분포 하한이 R

<simpleError in optim(par = vstart, fn = fnobj, fix.arg = fix.arg, obs = data,  gr = gradient, ddistnam = ddistname, hessian = TRUE, method = meth,  lower = lower, upper = upper, ...): non-finite finite-difference value [3]> 
Error in fitdist(Hs, "gamma3", start = list(1, 1, 3)) : 
    the function mle failed to estimate the parameters, 
       with the error code 100 

그래서 나는 감마의 적합성에 의해 얻은 것들을 사용하여 시작 값을 변경하려고 : 내가 코드를 실행

library(FAdist) 
library(fitdistrplus) 
fit <- fitdist(mydata,"gamma3",start=list(1,1,mythreshold)) 

매번, 저도 같은 오류가 발생했습니다

fit <- fitdist(mydata,"gamma") 
fit 
Fitting of the distribution ' gamma ' by maximum likelihood 
Parameters: 
     estimate Std. Error 
shape 21.417503 1.6348313 
rate 5.352422 0.4133735 

그러나 두 개의 매개 변수와도 감마가 작동하지 않은 경우 여전히 work..I 그것을 이해할 수 없지만, '그렇지 않은 내가 할 수있는이 결과를 준 두 개의 매개 변수, 나는 너에게 설명을하지 않는다. ation. 또한, QQ 플롯과 두 개의 매개 변수를 사용하여 감마에 대한 ecdf 그렇게 잘되지 않습니다 ...하지만 난 낮은 임계 값에 대한 조정 원본 데이터 셋의 분포를 맞는 경우에 맞는 완벽한 같습니다

fit <- fitdist(mydata-mythreshold,"gamma") 
fit 
Fitting of the distribution ' gamma ' by maximum likelihood 
Parameters: 
     estimate Std. Error 
shape 1.059540 0.07212832 
rate 1.058007 0.09117620 

하지만 그런 식으로 올바른지 모르겠다 ... 매개 변수가 매우 다르므로 내 데이터와 관련된 반환 기간을 계산해야합니다! 그래서 나는 위치 매개 변수로 감마를 생각했습니다.

p.s. 데이터가 너무 많기 때문에 데이터를 첨부하지 않았지만 요약을보고 할 수 있습니다.

summary(mydata) 
    Min. 1st Qu. Median Mean 3rd Qu. Max. 
    3.003 3.282 3.753 4.001 4.444 8.087 

답변

1

재현 가능한 예를 설정하십시오. 우도 데이터 세트에서의 최소값보다 큰 임계 파라미터 값

library(FAdist); library(fitdistrplus) 
set.seed(101) 
x <- rgamma3(1000,shape=1,scale=1,thres=1) 

는 (이 값이 불가능한 것으로 생각되기 때문에/절단 분포 하에서 0의 값을 갖는다) 무한하다.

fitdist(x,dgamma3,start=list(shape=1,scale=1,thres=0.5), 
     upper=c(Inf,Inf,min(x))) 
## Fitting of the distribution ' gamma3 ' by maximum likelihood 
## Parameters: 
##  estimate Std. Error 
## shape 0.9321949   NA 
## scale 1.0586079   NA 
## thres 1.0000012   NA 

주 (1) 최대 우도에서 임계 값 매개 변수의이 종류는 항상 최대 값으로 끝날 것이 걸릴 수 있습니다 (즉, 최소값 : 우리는이 매개 변수에 상한을 설정하여 가지 작업을 할 수 있습니다 데이터 세트에서); (2) 표준 오류는 NA입니다. 왜냐하면 매개 변수가 경계에 도달했을 때 Wald 표준 오류를 계산할 수 없기 때문입니다.

또는 당신 래퍼 함수를 ​​정의하여 임계 값 매개 변수를 수정할 수 있습니다

dgconstr <- function(x,shape,scale,...) { 
    dgamma3(x,shape,scale,thres=0.5,...) 
} 
pgconstr <- function(...) { 
    pgamma3(...,thres=0.5) 
} 

fitdist(x,dgconstr,start=list(shape=1,scale=1)) 
+0

당신에게 너무 많은 벤 감사합니다! 나는 그것을 얻었다. 그리고 그것은 definitively 히 일했다. –