2014-12-23 9 views
2

로지스틱 회귀를 실행하기 위해 plsRglm 패키지를 사용하고 있으며 다음과 같은 두 가지 주요 문제를 만났습니다.plsRglm을 사용한 로지스틱 회귀 오류

My X 변수에는 이민자 상태 (immigrant, non-immigrant)와 같은 요인 변수가 포함됩니다. 내 Y 변수는 이항 변수, 저체중 (non-lbw, lbw)입니다.

나는 R에서 아래 스크립트를 실행 : 나는 Y 나 X의 모든 NA 값을 삭제하지 않은 경우

library(plsRglm) 
model.plsrglm <- plsRglm(yair, xair, 3, modele="pls-glm-logistic") 

, R이를 반환 :

summary(model.plsrglm) 
Call 
plsRglmmodel.default(dataY = yair, dataX = xair, nt = 6, 
modele = "pls-glm-logistic") 

> model.plsrglm 
Number of required components: 
NULL 
Number of successfully computed components: 
NULL 
Coefficients: 
NULL 
Information criteria and Fit statistics: 
NULL 

나는 모든 드롭 경우 모델을 실행하기 전에 NA 값을 반환합니다. 오류 :

Error in colMeans(x, na.rm = TRUE) : 'x' must be numeric 
모델을 생성하기 전에 NA 값을 모두 삭제해야합니까?

요인 변수를 숫자로 만들어야합니까? 그렇다면 as.numeric을 사용하여 어떻게해야합니까? 하지만 non-immigrantimmigrant 사이의 수준을 암시하지 않습니까?

Y 변수의 경우 0과 1로 다시 코딩해야합니까?

다음과 같이 재현 가능한 데이터 세트를 추가했습니다.

outcome c1 c2 c3 c4 
1  lbw 120 yes <30 good 
2  lbw 124 yes <30 good 
3  lbw 125 yes <30 good 
4  lbw 135 yes <30 good 
5  lbw 112 yes <30 good 
6  lbw 168 yes <30 good 
7  lbw 147 yes 30-40 good 
8  lbw 174 yes 30-40 fair 
9  lbw 153 yes 30-40 fair 
10  lbw 145 yes 30-40 fair 
11  lbw 145 yes 30-40 fair 
12  lbw 125 no >40 fair 
13  lbw 125 no >40 poor 
14  lbw 111 no >40 poor 
15 non-lbw 80 no >40 poor 
16 non-lbw 85 no >40 poor 
17 non-lbw 78 yes >40 poor 
18 non-lbw 67 no >40 poor 


xair <- bc1997[,c("c1","c2","c3","c4")] 
yair <- bc1997[,"outcome"] 

model.plsrglm <- plsRglm(yair, xair, 2, modele="pls-glm-logistic") 
summary(model.plsrglm) 

하지만이 오류가있어 :

> model.plsrglm <- plsRglm(yair, xair, 2, modele="pls-glm-logistic") 
____************************************************____ 

Family: binomial 
Link function: logit 

Error in colMeans(x, na.rm = TRUE) : 'x' must be numeric 
+0

감사합니다. 방금 재현 가능한 예제를 추가했습니다. – cyrusjan

+0

행운을 빈다. 여기서 좋은 답변을 얻지 못하면 r-help listserv를 사용해보십시오. – gung

답변

0

당신 '의 X'용어가 숫자이어야합니다. 변수 "c2", "c3"및 "c4"는 모두 클래스 로지스틱 또는 요소입니다.

scaleX의 기본 설정은 TRUE이며 예측 자의 크기를 조정하기 위해 colMeans()를 사용합니다. 그러나 이것은 요인으로는 불가능합니다. 따라서 각 열을 숫자로 변환하거나 scaleX = FALSE를 지정할 수 있습니다.