用broom畫殘差圖(residual plot)
在作迴歸分析時,常常會用殘差圖(residual plot)來當作模型是否有改進空間的依據。最近在教學時發現David Robinson作的broom
套件相當好用,也可以拿來畫殘差圖。broom
內的函數大多是拿來計算和model相關的數據,而它和R內建函數的不同之處是所輸出的物件通通都是data frame,所以能和Hadley Wickham的dplyr
及ggplot2
無縫接軌。
例子
這裡我先對MASS
套件內的Boston
資料檔作線性迴歸。
library(dplyr)
library(ggplot2)
library(broom)
data(Boston, package = "MASS")
bos.fit <- lm(medv ~ lstat, data = Boston)
之後把建好的模型bos.fit
丟進broom
裡的augment()
,再用計算出的殘差值畫出殘差圖。
b.res.plot <- bos.fit %>% augment %>%
ggplot(aes(x = .fitted, y = .resid)) + geom_point()
b.res.plot
從得到的圖可以看出殘差本身有些規律,這時再用ggplot
加上一條擬合線
b.res.plot + geom_smooth(se = FALSE)
就不難看出這個線性迴歸模型還有改進空間。
其他函數
broom
內還有很多方便的函數,像是tidy()
和glance()
,以及可以和dplyr
一起拿來作拔靴法的bootstrep
等等。另外David Robinson本身有寫部落格,他的文章也是相當高水準,值得一讀。
Written on November 2, 2016