2013-04-21 5 views
3

로지스틱 회귀 분석을 실행하고 계속 "NA"오류가 발생합니다. 문제는없는 NA NA가이 말하는 열 자사의 모든 0 또는 1. 다음 내 코드가 같이 나는 또한 LM()을 시도하고 여전히 오류가있어로지스틱 회귀 없음 오류

#V1=race, V2=momcounts of breast cancer, V3=prstatus, V4=erstatus, V5=her2status, V6=triplenegative,  V7=menopause, V8=agemenopause, V9=mentype, V10=mensurg, V11=bmi, V12=eversmok, V13=age, V14=breastfeed, V15=breastfeedmonths, V16=pregnum, V17=birthcount, V18=agefirstpreg, 

regressiondata <- as.data.frame(cbind((data[,'race']),(data[,'mom_countsofbreastcancer']),(data[,'prstatus']),(data[,'erstatus']),(data[,'her2status']),(data[,'triplenegative']),(data[,'menopause']),(data[,'agemenopause']),(data[,'mentype']),(data[,'mensurg']),(data[,'bmi']),(data[,'eversmok']),(data[,'age']),(data[,'breastfeed']),(data[,'breastfeedmonths']),(data[,'pregnum']),(data[,'birthcount']),(data[,'agefirstpreg'])), stringsAsFactors=F) 

dataAA=regressiondata[regressiondata$V1==2,] #AA 
glm(V6 ~ V2+V7+V8+V10+V11+V12+V13+V14+V15+V16+V17+V18, family=binomial, data=dataAA) 

:

lm(formula=V6~V2+V7+V8+V10, data=dataAA) 

오류는 : R은 자동으로 제외 있도록 V17는, 모델의 다른 변수의 선형 조합처럼

Coefficients: 
(Intercept)   V2   V7   V8   V10   V11 
    1326.433  -17.262   NA  -31.174  -34.108  0.525 
     V12   V13   V14   V15   V16   V17 
     2.281  11.060   NA  1.154  -50.258   NA 
     V18 
    -12.277 

Degrees of Freedom: 12 Total (i.e. Null); 3 Residual 
    (1474 observations deleted due to missingness) 
Null Deviance:  16.05 
Residual Deviance: 3.49e-10  AIC: 20 
Warning message: 
glm.fit: fitted probabilities numerically 0 or 1 occurred 
+1

이것은 데이터 관련 질문이므로 일부 데이터를 포함하여 재현 가능한 예제 없이는 명확하게 대답 할 수 없습니다. – mnel

+0

'glm.fit : 확률이 수치상으로 0 또는 1 발생 '- 모델이 지나치게 보인다. 즉, 예측 자의 일부 조합이 결과의 완벽한 분류를 허용한다. 이것은 계수가 아주 조심스럽게 해석되어야 함을 의미합니다. 이것은 큰 번호의 결과 일 수 있습니다. 관측을 제외했다. 일반적으로 모델의 각 계수에 대해> 10 관측치가 필요합니다. – dardisco

+0

당신이 여기에 새로 왔기 때문에 [** the about **] (http://stackoverflow.com/about)와 [** faq **] (http://stackoverflow.com/faq) SO가 어떻게 작동하는지. StackOverflow는 ** 당신의 문제를 해결하는 대답을받을 때 당신에게 유용한 작은 체크 마크 및/또는 upvote 대답을 클릭하면 받아 들일 수 있습니다. 당신은 절대적으로 그렇게 할 의무가 없습니다 **하지만 대답이 사실상 당신의 문제를 해결했다면 사이트에 "되돌려주는"좋은 방법입니다. –

답변

5

것 같습니다. 로지스틱 회귀 출력에 문제가있는 것 같지 않습니다.

(내가 당신의 로지스틱 회귀에서 일어나는 listwise 삭제에 상당히 관심이있을 것입니다. 누락 된 데이터가있는 1474 번 관찰 결과가 15 개 남았습니다. 그렇지 않습니까?)

4

이 구조는 잘못, 잘못된, 틀린 wrongity입니다 :

as.data.frame(cbind((data[,'race']),(dat .....) 

당신이 cbind를 사용하지 마십시오 dataframe의 열을 서브 세트합니다. 대신 같은 것을 사용

regressiondata <- data[ , c('race', 'mom_countsofbreastcancer', 'prstatus', 'erstatus', 
         'her2status', 'triplenegative', 'menopause', 'agemenopause', 
         'mentype', 'mensurg', 'bmi', 'eversmok', 'age', 'breastfeed', 
         'breastfeedmonths', 'pregnum', 'birthcount', 'agefirstpreg')] 

을 그리고 당신은 GLM 사용을 사용하여 dataframe의 하위 집합으로 작업 할 경우이 :

glm(V6 ~ V2+V7+V8+V10+V11+V12+V13+V14+V15+V16+V17+V18, family=binomial, 
     data=gregressiondata, subset = race==2) 

이 당신의 dataframe이 data라는 이름의 방법에 대한 몇 가지 추측을하고있다가 시작 str (데이터)을 게시하고 실제로 시도한 내용을 설명하면 더 나은 대답을 얻을 수 있습니다. 데이터를 부분 집합하는 방법에 대한 제안은 열 이름을 보존 할 것이고 훨씬 더 자체적으로 문서화하는 코드로 끝날 것입니다.