2017-04-18 1 views
0

나는 2000-2011 기간의 데이터와 2012-2016 기간의 테스트 세트로 구성된 교육 세트를 보유하고 있습니다. 훈련 세트 (2000-2011 기간 동안)에서 고정 된 효과를 가진 로짓 모델을 실행했고 테스트 세트에 대해 예측 된 값을 사용하려고합니다.테스트 세트에 대한 고정 된 효과 사용

교육 세트에 사용 된 모델이 전혀 다른 연도 (2000-2011)로 사용되었으므로 테스트 세트 (2012-2016)에 대한 고정 된 효과를 추가하는 데 문제가 있습니다.

어떻게이 차이를 조정할 수 있습니까? 여기 내가 직면하고있는 문제가 있습니다. 어떤 생각?

트레이닝 세트 모델 :

model.2 <- glm(MAKE ~ NAME + DIST + DIST2 + DIST3 + SEASON + 
      GRASS + COLD49 + WINDY + ALTITUDE + PRECIP -1, 
      family = "binomial"(link = logit), data = df.train) 

테스트 세트 모델 :

df.test$model.2.predictions <- predict(model.2, newdata = df.test, 
            type = "response") 

Error in model.frame.default(Terms, newdata, na.action = na.action, xlev = object$xlevels) : 
factor SEASON has new levels 2012, 2013, 2014, 2015, 2016 
+0

계절을 사용하는 경우 (레벨을 연도로 사용), 각 레벨의 구체적인 효과를 응답에 표시하려고합니까? 이러한 효과는 요인 별 특성이므로 (예 : 연도 A가 B 년 대비 확률이 x만큼 증가 함) 모델에서 훈련에 포함되지 않은 연도의 영향을 어떻게 예측할 것으로 기대합니까? - 나는 정말로 호기심이 많다. 1 년 내내 훈련을받을 수 있습니까? – din

+0

사실입니다. 계절 고정 효과에 대한 계수는 특정 계절에 대해 추정되었으며, 이러한 계수에 새로운 계절의 더미 변수 (2012-2016)를 곱하는 것은 의미가 없습니다. 2012 년 -2016 년 시즌의 계수에 대한 새로운 추정치를 제시해야합니다. 나는 모든 연수를 포함하는 훈련 세트를 만들 수 없습니다. – josehernandez

+0

년 변수를 남겨 두거나 추세가 가정되는 경우 숫자로 모델링하십시오. –

답변

0

오류는 결코 기차 세트에 appeares없는 테스트 세트에서 수준이 있음을 말한다. 예측을 수행하고 모델을 학습 한 후에 model.2$xlevels$SEASON <- union(model.2$xlevels$SEASON, levels(df.test$SEASON))을 시도하십시오.

+0

귀하의 권장 사항을 시도했지만 동일한 오류 메시지가 나타납니다. 왜 그런가? 감사. – josehernandez

관련 문제