2017-10-13 20 views
0

내가 사용 betaregression 모델에 맞게하기 위해 노력하고있어 긍정적 확실하지 않다 이러한 데이터에 betaregpackagebetaregfunction :얻기 오류 : 순서 5의 주요 미성년자 betareg

library(betareg) 
fit <- betareg(value ~ category, data = df) 

그리고이 error 받고 있어요 :

,691,363이 명령으로
df <- data.frame(category=c("c1","c1","c1","c1","c1","c1","c2","c2","c2","c2","c2","c2","c3","c3","c3","c3","c3","c3","c4","c4","c4","c4","c4","c4","c5","c5","c5","c5","c5","c5"), 
       value=c(6.6e-18,0.0061,0.015,1.1e-17,4.7e-17,0.0032,0.29,0.77,0.64,0.59,0.39,0.72,0.097,0.074,0.073,0.08,0.06,0.11,0.034,0.01,0.031,0.041,4.7e-17,0.025,0.58,0.14,0.24,0.29,0.55,0.15),stringsAsFactors = F) 

df$category <- factor(df$category,levels=c("c1","c2","c3","c4","c5")) 

210

Error in chol.default(K) : 
    the leading minor of order 5 is not positive definite 
In addition: Warning message: 
In sqrt(wpp) : NaNs produced 
Error in chol.default(K) : 
    the leading minor of order 5 is not positive definite 
In addition: Warning messages: 
1: In betareg.fit(X, Y, Z, weights, offset, link, link.phi, type, control) : 
    failed to invert the information matrix: iteration stopped prematurely 
2: In sqrt(wpp) : NaNs produced 

어떤 솔루션이 있습니까? 아니면 베타 회귀를 단순히 이러한 데이터에 적용 할 수 없습니까?

답변

1

카테고리 1의 데이터에 베타 배포를 적용하는 것은 세 가지 관찰이 본질적으로 0 인 경우 매우 어려울 것입니다. 다섯 자리로 반올림 : 0.00000, 0.00000, 0.00000, 0.00320, 0.00610, 0.01500. 이 범주가 다른 범주와 같은 방식으로 모델링되어야하는지 여부는 분명하지 않습니다.

범주 4에서 다른 관측 값이 0.00000, 0.01000, 0.02500, 0.03100, 0.03400, 0.04100이긴하지만 수치상으로 0 인 또 다른 관찰이 있습니다.

적어도 범주 1을 생략하면 수치적인 문제없이 모델을 추정 할 수 있습니다. 점근 적 추론이 그룹당 6 회의 관찰에서 나온 두 개의 매개 변수에 대한 좋은 근사인지 여부는 또 다른 질문입니다. 그룹 전체에서 정밀도가 동일하지는 않습니다.

betareg(value ~ category | 1, data = df, subset = category != "c1") 
## Call: 
## betareg(formula = value ~ category | 1, data = df, subset = category != 
##  "c1") 
## 
## Coefficients (mean model with logit link): 
## (Intercept) categoryc3 categoryc4 categoryc5 
##  0.2634  -2.2758  -4.4627  -1.0206 
## 
## Phi coefficients (precision model with log link): 
## (Intercept) 
##  2.312 
betareg(value ~ category | category, data = df, subset = category != "c1") 
## Call: 
## betareg(formula = value ~ category | category, data = df, subset = category != 
##  "c1") 
## 
## Coefficients (mean model with logit link): 
## (Intercept) categoryc3 categoryc4 categoryc5 
##  0.2566  -2.6676  -4.0601  -0.9784 
## 
## Phi coefficients (precision model with log link): 
## (Intercept) categoryc3 categoryc4 categoryc5 
##  2.0849  3.5619  -0.2308  -0.1376