2017-05-13 3 views
1

안녕하세요, NNET 패키지를 사용하여 회귀 분석을 수행 할 때 얻는 결과에 문제가 있습니다. 을 HS_TR (Return Period)SLR (Sea Level Rise)으로 예측하고 싶습니다. fit이라고하는 다항 모델은 x.sub 하위 집합의 정보로 계산되었습니다.다항식 회귀 확률 결과 nnet 패키지

Coefficients: 
    (Intercept)  HS_TR   SLR 
    -30.5791517 0.4130478 62.0976951 

    Residual Deviance: 0.0001820405 
    AIC: 6.000182 

지금은 가지고 :

POINTID HS_TR SLR Category 
     4  10 0.0  3 
     4  10 0.6  4 
     4  50 0.0  3 
     4  50 0.6  4 
     4 100 0.0  4 
     4 100 0.6  4 

내가 모델을 실행하면>fit <- multinom(Category ~ HS_TR + SLR, x.sub, maxit=3000) 내가 결과를 얻을 : 4 개 가지 범주 가능 1,2,3 또는 4

x.sub이 있습니다 다항식, SLR과 HS_TR의 특정 시나리오 (d3)에 대한 예측 카테고리를 알고 싶습니다. 내가 D3 정의하고 예측을 적용하고 내가 합리적인 결과를 얻을 :

: 나는 예측 prediction <-(predict(fit,d3, type="probs"))을 얻는 확률을 계산할 때, 나는 그러나

> prediction 
[[1]] 
[1] 3 
Level: 3 

을 얻을

d3<-data.frame("HS_TR"=c(10),"SLR"=c(0)) 
prediction <-(predict(fit,d3)) 

을, 나는 다음과 같은 수

> prediction 
[[1]] 
1 
0 

확률이 0이라고 말하기 때문에 아무런 의미가 없습니다. 내가 실행하는 모델이 CATEGORY의 예측을 제공하기 때문에, 이유는 무엇입니까? 그렇다면 확률은 0입니다. 누군가 내가 그것을 얻은 이유를 알고 있습니까?

누군가 내가 문제를 해결할 수 있도록 어떻게 해결할 수 있는지 알고 있다면. 미리 감사드립니다.

+0

샘플 데이터 세트를 제공해 주시겠습니까? – ekstroem

+0

예, 확실합니다. x 테이블을 다음 테이블로 간주합니다. (읽기 쉽도록 게시하도록 편집했습니다) POINTID HS_TR SLR 범주 19 4 10 0.0 3 20 4 10 0.6 4 21 4 50 0.0 3 22 4 50 0.6 4 23 4 100 0.0 4 24 4 100 0.6 4' – David

+0

David, David, David. SO 도움말 페이지를 읽지 않고 [편집]을 사용하여 [MCVE]를 작성하지 말고 댓글에 업데이트를 게시하지 않으면 도움이되는 질문을하는 것이 너무 슬픈 일입니다. 또한 "[r] nnet predict"로 검색 할 때 조회수가 147 회 발생하며 질문을 더 개선하지 않으면 downvote로 유혹을 느낍니다. –

답변

1

당신은 (더 많은 정보를 얻을 수있는 용어를 구글을 분리/완전한 분리에 문제가 This page이 견적을 포함하는 좋은 소개를 제공합니다.

결과 변수는 예측 변수를 분리 할 때 완전한 분리가 발생 또는 예측 변수의 조합이 완전히.

당신은 예를 들어, 데이터를 보면

> xtabs(~ Category + HS_TR + SLR, data=x.sub) 
, , SLR = 0 

     HS_TR 
Category 10 50 100 
     3 1 1 0 
     4 0 0 1 

, , SLR = 0.6 

     HS_TR 
Category 10 50 100 
     3 0 0 0 
     4 1 1 1 
,369을 사용하여

SLRHS_TR의 조합이 SLR=0.6의 결과를 완전히 결정한다는 것을 알 수 있습니다. 안정된 착용감을 제공하려면 더 간단한 모델을 지정하거나 더 많은 데이터를 가져와야합니다.

출력 결과가 두 가지 범주 만 있으므로 로그 선형 모델 또는 로지스틱 회귀 모델에 적합하고 동일한 결과를 얻을 수 있어야합니다. 새 변수 Cat을 작성하면 Category의 요소가되며 올바른 방향으로 향하는 경고가 표시됩니다.

> glm(Cat ~HS_TR + SLR, data=x.sub, family="binomial") 
Warning message: 
glm.fit: fitted probabilities numerically 0 or 1 occurred 

나는 multinom 데이터에 문제를 감지하지 않습니다 생각합니다. 그러나 적합도가 summary 인 경우 두 개의 매개 변수 추정값의 표준 오차가 매우 큰 것을 알 수 있습니다. 이것은 또한 추정치가 안정적이지 않고 분리가 문제가 될 수 있음을 암시합니다.

> summary(fit) 
Call: 
multinom(formula = Category ~ HS_TR + SLR, data = x.sub, maxit = 3000) 

Coefficients: 
       Values Std. Err. 
(Intercept) -30.5791517 356.932851 
HS_TR   0.4130478 5.137396 
SLR   62.0976951 634.584184 

Residual Deviance: 0.0001820405 
AIC: 6.000182 

나는 multinom 체크인 융합이 어떤 종류의 검사를 결여 생각합니다.

+0

답변 해 주셔서 대단히 감사합니다. 문제가 있다고 생각합니다. 그것을 확인합니다. – David