Определите выбросы с самыми высокими квадратами остатков в модели линейной регрессии в R.

У меня есть набор данных [1000 x 80] из 1000 точек данных, каждая из которых имеет 80 значений переменных. Я должен линейно регрессировать две переменные: цену и площадь, и определить 5 точек данных, которые имеют самые высокие квадраты остатков. Для этих идентифицированных точек данных я должен отобразить 4 из 80 значений переменных.

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

model_lm <- lm(log(price) ~ log(area), data = ames) 

Могу ли я получить некоторые рекомендации о том, как я могу подойти к вышеуказанной проблеме


person Paras Joshi    schedule 27.10.2017    source источник


Ответы (1)


Объект model_lm будет содержать переменную с именем «остатки», которая будет иметь остатки в том же порядке, что и исходные наблюдения. Если я правильно понимаю вопрос, то простой способ сделать это - base R:

ames$residuals <- model_lm$residuals  ## Add the residuals to the data.frame

o <- order(ames$residuals^2, decreaseing=T)   ## Reorder to put largest first

ames[o[1:5],]   ## Return results
person Community    schedule 27.10.2017
comment
опечатка: o <- order(ames$residuals^2, decreaseing=T) должно быть: o <- order(ames$residuals^2, decreasing=T) - person Ketil B T; 28.10.2017
comment
Кроме того, просто для решения второй части вашей проблемы: если varNames является вектором символов с вашими 4 именами переменных в нем, например, varNames = c("var1", "var2", "var3", "var4"), вы можете отобразить их с помощью ames[, varNames]. Добавив это к ответу @KMcC, вы получите ames[o[1:5], varNames]. - person Ketil B T; 28.10.2017