Предупреждения при множественной линейной регрессии с кареткой - PullRequest
0 голосов
/ 01 августа 2020

Я работаю с данными: (в RStudio версии 1.3.1056):

https://archive.ics.uci.edu/ml/machine-learning-databases/00397/LasVegasTripAdvisorReviews-Dataset.csv

Моя цель - оценить модель множественной линейной регрессии (Используя библиотеку каретки). Итак, я делаю следующее:

vegas<- read.csv("LasVegasTripAdvisorReviews-Dataset.csv",
                       sep=";", header=T,stringsAsFactors = T)
 
head(vegas)
dim(vegas)
attach(vegas)
vegas.data <- cbind(vegas[,c(1:4)], vegas[,c(6:20)], Score)
head(vegas.data)
dim(vegas.data)
 
#missing values
library(mice)
md.pattern(vegas.data,plot=F)
 
#---------- Multiple Linear Regression  ---------------#
 
library(caret)
vegas.lm <- train(Score ~ ., data = vegas.data, method = "lm")
warnings()
 
summary(vegas.lm)

После запуска строки, где находится vegas.lm, я получаю на консоли следующее:

> vegas.lm <- train(Score ~ ., data = vegas.data, method = "lm")
There were 25 warnings (use warnings() to see them)

И когда я узнаю, какие предупреждения о, он мне рассказывает

> warnings()
Warning messages:
1: In predict.lm(modelFit, newdata) :
prediction from a rank-deficient fit may be misleading
2: In predict.lm(modelFit, newdata) :
prediction from a rank-deficient fit may be misleading
3: In predict.lm(modelFit, newdata) :
prediction from a rank-deficient fit may be misleading
4: In predict.lm(modelFit, newdata) :
prediction from a rank-deficient fit may be misleading
5:
6:
...

Надеюсь, вы поможете мне расшифровать или объяснить, почему я получаю эти предупреждения. Заранее благодарю за внимание и поддержку. Большое спасибо.

1 Ответ

0 голосов
/ 05 августа 2020

У вас есть дефицит ранга , что означает, что у вас недостаточно информации из данных для оценки каждого эффекта или коэффициента. Мультиколлинеарность - это когда ваши предикторы коррелированы, но до тех пор, пока две переменные не полностью коррелированы, их можно оценить, хотя и неточно.

Ниже я покажу вам пример из данных, что подразумевается под недостаточной информацией , например, если мы попытаемся регрессировать оценку по названию отеля и звездам:

coefficients(lm(Score ~ Hotel.name+Hotel.stars,data=vegas.data))
                                                  (Intercept) 
                                                 4.208333e+00 
                                     Hotel.nameCaesars Palace 
                                                -8.333333e-02 
             Hotel.nameCircus Circus Hotel & Casino Las Vegas 
                                                -1.000000e+00 
                           Hotel.nameEncore at wynn Las Vegas 
                                                 3.333333e-01 
                           Hotel.nameExcalibur Hotel & Casino 
                                                -5.000000e-01 
             Hotel.nameHilton Grand Vacations at the Flamingo 
                                                -2.500000e-01 
            Hotel.nameHilton Grand Vacations on the Boulevard 
                                                -4.166667e-02 
                           Hotel.nameMarriott's Grand Chateau 
                                                 3.333333e-01 
                          Hotel.nameMonte Carlo Resort&Casino 
                                                -9.166667e-01 
                                    Hotel.nameParis Las Vegas 
                                                -1.666667e-01 
                         Hotel.nameThe Cosmopolitan Las Vegas 
                                                 4.166667e-02 
                                       Hotel.nameThe Cromwell 
                                                -1.250000e-01 
                    Hotel.nameThe Palazzo Resort Hotel Casino 
                                                 1.666667e-01 
                       Hotel.nameThe Venetian Las Vegas Hotel 
                                                 3.750000e-01 
            Hotel.nameThe Westin las Vegas Hotel Casino & Spa 
                                                -2.916667e-01 
                 Hotel.nameTreasure Island- TI Hotel & Casino 
                                                -2.500000e-01 
Hotel.nameTropicana Las Vegas - A Double Tree by Hilton Hotel 
                                                -1.666667e-01 
                Hotel.nameTrump International Hotel Las Vegas 
                                                 1.666667e-01 
                  Hotel.nameTuscany Las Vegas Suites & Casino 
                                                 3.657007e-15 
                               Hotel.nameWyndham Grand Desert 
                                                 1.666667e-01 
                                     Hotel.nameWynn Las Vegas 
                                                 4.166667e-01 
                                               Hotel.stars3,5 
                                                           NA 
                                                 Hotel.stars4 
                                                           NA 
                                               Hotel.stars4,5 
                                                           NA 
                                                 Hotel.stars5 
                                                           NA 

Вы можете увидеть, что все коэффициенты для звезд - это NA, что означает, что это невозможно оценить. Почему это так? Если мы подумаем о том, что мы делаем, нам нужно, чтобы отель был как 4-звездочный, так и 3-звездочный, чтобы оценить эти два эффекта. На самом деле это невозможно, и мы можем это увидеть, если свести в таблицу коэффициенты:

table(vegas.data$Hotel.name,vegas.data$Hotel.stars)
                                                     
                                                       3 3,5  4 4,5  5
  Bellagio Las Vegas                                   0   0  0   0 24
  Caesars Palace                                       0   0  0   0 24
  Circus Circus Hotel & Casino Las Vegas              24   0  0   0  0
  Encore at wynn Las Vegas                             0   0  0   0 24
  Excalibur Hotel & Casino                            24   0  0   0  0
  Hilton Grand Vacations at the Flamingo              24   0  0   0  0
  Hilton Grand Vacations on the Boulevard              0  24  0   0  0
  Marriott's Grand Chateau                             0  24  0   0  0
  Monte Carlo Resort&Casino                            0   0 24   0  0
  Paris Las Vegas                                      0   0 24   0  0
  The Cosmopolitan Las Vegas                           0   0  0   0 24
  The Cromwell                                         0   0  0  24  0
  The Palazzo Resort Hotel Casino                      0   0  0   0 24
  The Venetian Las Vegas Hotel                         0   0  0   0 24
  The Westin las Vegas Hotel Casino & Spa              0   0 24   0  0
  Treasure Island- TI Hotel & Casino                   0   0 24   0  0
  Tropicana Las Vegas - A Double Tree by Hilton Hotel  0   0 24   0  0
  Trump International Hotel Las Vegas                  0   0  0   0 24
  Tuscany Las Vegas Suites & Casino                   24   0  0   0  0
  Wyndham Grand Desert                                 0  24  0   0  0
  Wynn Las Vegas                                       0   0  0   0 24

Таким образом, вы можете увидеть, что у 1 названия отеля есть только одна c звездность. Если вам нужно регрессировать, вы можете выбрать только название отеля или звезду отеля, но не оба.

Распространение этого на модель, которую вы хотите построить, имеет смысл проверить все ваши предикторы, знать, что они делают, прежде чем продолжить

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...