2015-06-20 2 views
1

Я пытаюсь соответствовать логистической регрессии моих данных, но я получаю эту ошибку:контрастов могут быть применены только фактор R

logistic <- lm(response ~., data = df_without, family='binomial') 

Error in `contrasts<-`(`*tmp*`, value = contr.funs[1 + isOF[nn]]) : 
    contrasts can be applied only to factors with 2 or more levels 

В отличии от двух других вопросов по этой теме (here и here) , у меня есть уровни> = 2 для всех моих факторов, и моя переменная реакция имеет 2 уровня, а также:

summary(df_without$response) 
    0  1 
123534 64591 


summary(df_without[sapply(df_without, is.factor)]) 

enter image description here

мой dataframe доступен here как файл .Rdata.

sessionInfo()

R version 3.2.0 (2015-04-16) 
Platform: x86_64-apple-darwin13.4.0 (64-bit) 
Running under: OS X 10.10.1 (Yosemite) 

locale: 
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8 

attached base packages: 
[1] parallel splines stats  graphics grDevices utils   datasets methods base  

other attached packages: 
[1] Amelia_1.7.3  Rcpp_0.11.6   randomForest_4.6-10 e1071_1.6-4   plyr_1.8.2   
[6] gbm_2.1.1   survival_2.38-1  glmnet_2.0-2   foreach_1.4.2  Matrix_1.2-0  
[11] caret_6.0-47  ggplot2_1.0.1  lattice_0.20-31  lubridate_1.3.3  RJDBC_0.2-5   
[16] rJava_0.9-6   DBI_0.3.1   

loaded via a namespace (and not attached): 
[1] compiler_3.2.0  nloptr_1.0.4  class_7.3-12  iterators_1.0.7  tools_3.2.0   
[6] digest_0.6.8  lme4_1.1-7   memoise_0.2.1  nlme_3.1-120  gtable_0.1.2  
[11] mgcv_1.8-6   brglm_0.5-9   SparseM_1.6   proto_0.3-10  BradleyTerry2_1.0-6 
[16] stringr_1.0.0  gtools_3.5.0  grid_3.2.0   nnet_7.3-9   foreign_0.8-63  
[21] minqa_1.2.4   reshape2_1.4.1  car_2.0-25   magrittr_1.5  scales_0.2.4  
[26] codetools_0.2-11 MASS_7.3-40   pbkrtest_0.4-2  colorspace_1.2-6 quantreg_5.11  
[31] stringi_0.4-1  munsell_0.4.2 
+1

это возможно, когда отсутствует (как это происходит в 'lm'), что некоторые переменные имеют только один уровень? try 'summary (na.omit (df_without)] [sapply (df_without, is.factor)])' (untested) – user20650

+0

ой, и вам, возможно, не хватает 'g' – user20650

+0

Действительно? Файл размером 10,87 МБ ???? –

ответ

3

Я знаю, что код только ответы выследили и строго пресекаться модераторами, но это действительно говорит само за себя:

# I did download the excessively large file 
> table(df_without[ complete.cases(df_without), 'pymnt_plan']) 

     n y 
    0 1231 0 
+0

... и поэтому 'logistic <- glm (response ~. - pymnt_plan, data = df_without, family = 'binomial')' должно работать хорошо –

+0

@BenBolker: Ну, может быть, нет. Есть три столбца с большим количеством недостающих данных: '$ mths_since_last_delinq $ mths_since_last_record $ mths_since_last_major_derog', поэтому я подозреваю, что некоторые усилия должны быть сосредоточены на понимании того, что это на самом деле означает. Может быть благоприятной особенностью с точки зрения оценки риска, чтобы никогда не иметь просрочки или «отторжения» (независимо от «отступления», но это звучит не очень хорошо). Правильный ответ может быть ... Посмотрите на свои данные _First_; Не ждите, пока не получите плоский результат. –

Смежные вопросы