2016-12-13 9 views
0

데이터 세트에서 predict()를 실행하면 오류가 계속 발생합니다 - eval (expr, envir, enclos) LoanRange '가 여기예측 함수를 사용하는 동안 eval (expr, envir, enclos) 오류가 발생했습니다

이 세트의 일부없는 -

LoanRange Loan.Type N WAFICO WALTV WAOrigRev WAPTValue 1 0-99999 Conventional 109 722.5216 63.55385 6068.239 0.6031879 2 0-99999 FHA 30 696.6348 80.00100 7129.650 0.5623650 3 0-99999 VA 13 698.6986 74.40525 7838.894 0.4892977 4 100000-149999 Conventional 860 731.2333 68.25817 6438.330 0.5962638 5 100000-149999 FHA 285 673.2256 82.42225 8145.068 0.5211495 6 100000-149999 VA 125 704.1686 87.71306 8911.461 0.5020074 7 150000-199999 Conventional 1291 738.7164 70.08944 8125.979 0.6045117 8 150000-199999 FHA 403 672.0891 84.65318 10112.192 0.5199632 9 150000-199999 VA 195 694.1885 90.77495 10909.393 0.5250807 10 200000-249999 Conventional 1162 740.8614 70.65027 8832.563 0.6111419 11 200000-249999 FHA 348 667.6291 85.13457 11013.856 0.5374226 12 200000-249999 VA 221 702.9796 91.76759 11753.642 0.5078298 13 250000-299999 Conventional 948 742.0405 72.22742 9903.160 0.6106858

다음은 N overdispersion-

을 결정한 후 카운트 데이터를 예측하는데 사용되는 코드이며

Error in eval(expr, envir, enclos) : object 'LoanRange' not found 

하는 사람을 가리켜 주시겠습니까 -

model2=glm(N~Loan.Type+WAFICO+WALTV+WAOrigRev+WAPTValue, family=quasipoisson(link = "log"), data = DF) 
summary(model2) 

이 617,451,515,내가 계수의 시퀀스를 생성하고이 단계에서 예측 기능 -

countaxis <- seq (0,1500,150) 
Y <- predict(model2, list(N=countaxis, type = "response") 

를 사용하는 한 일이다, 나는 오류 나 여기에 문제가 어디 있니.

답변

0

정확하게 예측하려는 것을 생각해보십시오. predict 함수 값이 N (countaxis 경유)이지만 실제로 모델을 설정하는 방법은 N이 응답 변수이고 나머지 변수는 예측 변수입니다. 그것이 R이 LoanRange을 요구하는 이유입니다. N을 예측하기 위해서는 실제로 LoanRange, Loan.Type, ..., WAPTValue에 대한 값이 필요합니다. 따라서 predict 개의 입력을 보내야 모델이 N을 예측하려고합니다.

예를 들어, 당신이 뭔가를 할 수 있습니다 :

# create some fake data to predict N 
newdata1 = data.frame(rbind(c("0-99999", "Conventional", 722.5216, 63.55385, 6068.239, 0.6031879), 
          c("150000-199999", "VA", 12.5216, 3.55385, 60.239, 0.0031879))) 
colnames(newdata1) = c("LoanRange" ,"Loan.Type", "WAFICO" ,"WALTV" , "WAOrigRev" ,"WAPTValue") 

# ensure that numeric variables are indeed numeric and not factors 
newdata1$WAFICO = as.numeric(as.character(newdata1$WAFICO)) 
newdata1$WALTV = as.numeric(as.character(newdata1$WALTV)) 
newdata1$WAPTValue = as.numeric(as.character(newdata1$WAPTValue)) 
newdata1$WAOrigRev = as.numeric(as.character(newdata1$WAOrigRev)) 

# make predictions - this will output values of N 
predict(model2, newdata = newdata1, type = "response")