Построение остатков по сравнению с оставшимися переменными

В настоящее время я использую скрипт, основанный на команде pairs в R, чтобы найти связь между остатками данной модели и остальными переменными. Эта связь может быть важна для диагностики модели. Вы можете увидеть мой код ниже для небольшого примера того, как я сейчас строю отношения.

Если в моей модели много переменных (скажем, ~ 10), то график pairs становится довольно большим. Я смотрю только на нижнюю строку графика pairs с взаимосвязью с остатками, поэтому график можно значительно упростить. Может ли кто-нибудь порекомендовать команду для построения только нижней строки графика пар или что-то подобное?

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

gpa <- read.delim("GPA.txt", dec = ",")
mod <- lm(CGPA ~ HSGPA + Studytime, data = gpa)
pairs(cbind(gpa, residuals(mod)), panel=panel.smooth)
dput(gpa)

Вывод из dput(gpa)

structure(list(Studytime = c(7, 2, 4, 3.5, 4.5, 3, 3, 8, 5.5, 
5.5, 5, 7, 9, 4, 10, 3, 3, 3.5, 4.5, 3.5, 2, 6, 6, 4, 3, 4, 10, 
4.5, 7, 5, 3, 8, 5, 8, 4.5, 2, 3, 6, 10, 2, 12, 5, 4, 3, 4, 4, 
4, 5, 15, 4.5, 4, 4, 5, 5, 6, 3, 3, 2, 2.3), HSGPA = c(3.9, 3.79, 
3, 3.9, 3.6, 3.2, 3.78, 3.2, 3.5, 3.8, 3.89, 3.8, 4, 3.3, 3.7, 
3.9, 3.5, 3.9, 4, 3.5, 3.79, 3.9, 3.5, 3.8, 4, 3.5, 2.55, 3.8, 
4, 4, 4, 3.8, 4, 4, 4, 4, 4, 3.86, 4, 4, 3.9, 4, 4, 4, 4, 4, 
4, 4, 4, 3.7, 3.75, 3.94, 3.9, 3.9, 4, 3.97, 4, 4, 3.6), CGPA = c(3.3, 
3.13, 3.6, 3.5, 3.5, 3.75, 3.47, 2.8, 2.88, 3.28, 3.53, 3.5, 
3.98, 2.6, 3.5, 3.98, 3.75, 3.67, 3.75, 3.9, 3.1, 3.14, 3.8, 
3.7, 3.87, 3.31, 3.14, 2.98, 4, 3.77, 4, 3.49, 3.99, 3.78, 3.92, 
3.77, 3.83, 3.86, 3.86, 3.93, 3.91, 4, 3.73, 3.75, 3.99, 3.8, 
3.77, 3.95, 3.74, 3.65, 3.83, 4, 3.2, 3.6, 3.75, 3.77, 3.83, 
3.7, 2.5)), .Names = c("Studytime", "HSGPA", "CGPA"), class = "data.frame", row.names = c(NA, 
-59L))

person pir    schedule 13.11.2015    source источник
comment
Пожалуйста, опубликуйте файл dput(gpa) вместо файла txt, это облегчит чтение данных!   -  person David    schedule 13.11.2015
comment
Смотрите обновленный пост.   -  person pir    schedule 13.11.2015


Ответы (1)


Чтобы построить графики остатков (ось Y) по отношению к другим переменным и включить метод panel.smooth, вы можете использовать следующий код, который дает n (в данном случае 3) различных графиков:

# plotting just the lowest plots
sapply(1:ncol(gpa), function(i) {
  plot(x = gpa[, i], y = residuals(mod), xlab = names(gpa)[i])
  panel.smooth(x = gpa[, i], y = residuals(mod))
})

Если вы хотите иметь графики на одной странице, вы можете настроить их с помощью par(mfrow = c(2,2)) (что дает матрицу графиков 2x2).

person David    schedule 13.11.2015
comment
Выглядит хорошо! Однако как мне установить метку для оси x на имя переменной? В настоящее время невозможно провести различие между различными сюжетами. - person pir; 13.11.2015
comment
Я отредактировал код, чтобы отразить ваш комментарий. Теперь он выполняет итерацию по столбцам и добавляет имя переменной в качестве метки оси X. - person David; 13.11.2015