#r #variable-selection
#r #выбор переменной
Вопрос:
Я настраиваю модель для поиска значимых переменных с помощью выбора переменных.
str(tweets2)
'data.frame': 6429 obs. of 13 variables:
$ created_at : Factor w/ 5918 levels "1/10/2019 17:40",..: 56
53 52 51 50 49 48 47 46 45 ...
$ screen_name : Factor w/ 2 levels "HillaryClinton",..: 1 1 1
1 1 1 1 1 1 1 ...
$ text : chr "On top of human suffering and lasting
damage to our national parks the Trump shutdown cost the economy
bil"| __truncated__ "Hurricane Maria decimated trees and ecosystems in
Puerto Rico Para La Naturaleza s nurseries have made a CGI c"|
__truncated__ "Time to make the churros at Kreamy Ice Cream Shop in
Puerto Rico ClintonGlobal and Foundation PR are working"|
__truncated__ " chefjoseandres You are an inspiration my friend " ...
$ source : Factor w/ 6 levels "TweetDeck","Twitter for
iPad",..: 6 6 6 6 6 6 6 6 3 3 ...
$ display_text_width : int 192 235 238 34 222 214 140 259 140 140 ...
$ is_retweet : logi FALSE FALSE FALSE FALSE FALSE FALSE ...
$ favorite_count : int 14324 10684 11423 1293 6641 12192 0 17618
0 0 ...
$ retweet_count : int 4168 2526 2089 113 951 2108 2094 4999 691
915 ...
$ retweet_favorite_count: int NA NA NA NA NA NA 4214 NA 3474 3360 ...
$ retweet_retweet_count : int NA NA NA NA NA NA 2094 NA 691 915 ...
$ retweet_screen_name : Factor w/ 434 levels "ABCPolitics",..: NA NA
NA NA NA NA 152 NA 227 44 ...
$ retweet_name : Factor w/ 433 levels "ABC News Politics",..:
NA NA NA NA NA NA 159 NA 236 47 ...
$ retweet_statuses_count: int NA NA NA NA NA NA 10784 NA 50482 10242 ...
vs = lm(screen_name ~.,data = tweets2)
fitstart = lm(screen_name ~ 1,data = tweets2)
step(fitstart,direction = "forward")
fitstart = lm(screen_name ~ 1,data = tweets2)
Ошибка в шаге (fitstart, направление = «вперед») :
Для этой модели значение AIC равно бесконечности, поэтому «шаг» не может быть выполнен
Кроме того: предупреждающее сообщение:
В Ops.factor(взвешенные остатки (объект), 2) :
‘^’ не имеет значения для факторов
Ответ №1:
Вы пытаетесь предсказать дихотомический фактор с 2 уровнями. Пошаговый выбор неуместен, и вам следует использовать логистическую регрессию. Даже в этом случае, если вы используете bestglm
, например, вам нужно преобразовать эту переменную в 0
и 1
.
Комментарии:
1. Спасибо за ответ! Можете ли вы предоставить код для использования функции bestglm?
2. Я не могу вам в этом помочь, потому что я не знаком с логистической регрессией с использованием категориальных предикторов. Возможно, поиск категориального анализа главных компонентов мог бы помочь. Если вы заинтересованы в классификации вашего двоичного результата с использованием ваших числовых переменных, то
bestglm
его можно использовать следующим образомbestglm(Xy, family = binomial)
, где Xy — это ваш объект классаdata.frame
, отформатированный таким образом, что все переменные-предикторы находятся слева, а ваш дихотомический результат кодируется0
и1
, именуетсяy
и является последним столбцом справа.