Zacząłem kopać trochę w funkcję plot.lm , ta funkcja daje sześć wykresów dla lm, są to:
- wykres reszt w stosunku do dopasowanych wartości
- wykres Skala-Lokalizacja sqrt (| reszty |) względem dopasowanych wartości
- normalny wykres QQ, wykres odległości Cooka w porównaniu do etykiet wierszy
- wykres reszt w stosunku do dźwigni
- wykres odległości Cooka od dźwigni / (1-dźwignia)
Zastanawiam się, jakie inne powszechne / przydatne rozszerzenia bieżących wykresów istnieją dla modeli liniowych i jak można je wykonać w R? (mile widziane są również linki do artykułów z paczek)
Tak więc funkcja boxcox (z {MASY}) jest przykładem innego przydatnego wykresu diagnostycznego (i taka odpowiedź byłaby świetna), jestem jednak bardziej ciekawy wariantów / rozszerzeń istniejących istniejących domyślnych wykresów diagnostycznych dla lm w R (chociaż ogólne inne uwagi na ten temat są zawsze mile widziane).
Oto kilka prostych przykładów tego, co mam na myśli:
#Some example code for all of us to refer to
set.seed(2542)
x1 <- rnorm(100)
x2 <- runif(100, -2,2)
eps <- rnorm(100,0,2)
y <- 1 + 2*x1 + 3*x2 + eps
y[1:4] <- 14 # adding some contaminated points
fit <- lm(y~x1+x2)
#plot(y~x1+x2)
#summary(fit)
Aby wykreślić resztki względem każdego z potencjalnych x
plot(resid(fit)~x1); abline (h = 0)
plot(resid(fit)~x2); abline (h = 0)
# plot(resid(fit)~x1+x2) # you can also use this, but then you wouldn't be able to use the abline on any plot but the last one
Aby dodać linię 0-1 (jak ta linia jest nazywana w języku angielskim ?!) do qqplot, aby zobaczyć, jak bardzo odbiega ona od qqline
plot(fit, which = 2); abline(0,1, col = "green")
Aby wykreślić wykres qq przy użyciu zewnętrznie uczonych reszt
# plot(fit, which = 2); abline(0,1, col = "green") # The next command is just like this one
qqnorm(rstandard(fit), ylim = c(-2.2,4.2)); qqline(rstudent(fit), lty = 2) ;abline(0,1, col = "green")
qqnorm(rstudent(fit), ylim = c(-2.2,4.2)); qqline(rstudent(fit), lty = 2) ;abline(0,1, col = "green")
# We can note how the "bad" points are more extreme when using the rstudent