2015-02-05 1 views
0

내가 선형 모델에 내가 오류를cv.glm 변수 길이는

Error in model.frame.default(formula = lindata$Y ~ 0 + lindata$HomeAdv + : 
variable lengths differ (found for 'air-force-falcons') 

공군-매를받을 수 있나요하지만 때마다 cv.glm하려고 데이터 세트 lindata의 첫 번째 변수입니다 다릅니다. glm을 실행하면 오류가 발생하지 않습니다. 모든 변수는 단일 데이터 세트에 있으며 누락 된 값은 없습니다.

> linearmod5<- glm(lindata$Y ~ 0 + lindata$HomeAdv + ., data=lindata, na.action="na.exclude") 
> set.seed(1) 
> cv.err.lin=cv.glm(lindata,linearmod5,K=10) 
Error in model.frame.default(formula = lindata$Y ~ 0 + lindata$HomeAdv + : 
variable lengths differ (found for 'air-force-falcons') 

나는이 오류 또는 해결책을 몰고 있습니다. 어떤 아이디어? 고맙습니다!

어떤이 오류의 원인이되는 것은 길에서 실수하면이 오류 발생합니다

공식 지정입니다

+0

오류는 여기'에있다. -lindata $ HomeAdv' 이걸로 뭘 하려구? – BBrill

+0

그것도 없으면 오류가 남아 있습니다 :'> linearmod5 <- glm (lindata $ Y ~ 0 + lindata $ HomeAdv +., data = lindata, na.action = "na.exclude") > set.seed (1) 가변 길이가 다르다 (공수 -lindata $ Y + 0 + lindata $ HomeAdv + : ) 팔콘 ')' – RetaK

답변

1

:

mod <- glm(mtcars$cyl ~ mtcars$mpg + ., 
      data = mtcars, na.action = "na.exclude") 

cv.glm(mtcars, mod, K=11) #nrow(mtcars) is a multiple of 11 

이 없습니다 :

mod <- glm(cyl ~ ., data = mtcars) 

cv.glm(mtcars, mod, K=11) 

도이 :

mod <- glm(cyl ~ + mpg + disp, data = mtcars) 

cv.glm(mtcars, mod, K=11) 

무슨 일이 일어나는가는 mtcars$cyl과 같이 변수를 지정하는 것입니다.이 변수에는 원래 데이터 집합의 개수와 동일한 행이 있습니다. cv.glm을 사용하면 K 부분으로 데이터 프레임을 분할하지만 리샘플링 된 데이터에서 모델을 다시 채우면 data.frame$var 형식으로 지정된 변수가 원래 (비 파티션 된) 길이로 평가되고 나머지는 (.으로 지정된) 길이가 분할 된 길이

따라서 상대 변수를 공식없이 사용해야합니다 ($ 제외). 공식에

다른 조언 : 지정된 변수와 . 당신 이중 변수의 혼합을 사용하여

마십시오. 점은 물결표의 왼쪽에있는 점을 제외하고 df의 모든 점에 대한 점입니다.

왜 0을 추가합니까? 대신에 가로 채기 -1을 제거하려고 시도하는 경우. 그러나 이것은 내 의견으로는 나쁜 습관이다.