English · PDF 380
measure_distance <- function(mod, data) { diff <- data$y - make_prediction(mod, data) mean(abs(diff)) }
使用 optim() 将此模型拟合到之前的模拟数据,并将其与线性模型进行比较。
model1 <- function(a, data) { a[1] + data$x * a[2] + a[3] }
对于简单的模型,比如上一节中的那个模型,你可以通过仔细研究模型族和拟合系数来弄清楚模型捕捉到了什么模式。如果你上过关于建模的统计学课程,你可能会花大量时间做这件事。然而,在这里我们将采取一种不同的方法。我们将专注于通过观察模型的预测来理解模型。这有一个很大的优势:每种类型的预测模型都会做出预测(否则它有什么用呢?),因此我们可以使用同一套技术来理解任何类型的预测模型。
查看模型没有捕捉到什么也很有用,即从数据中减去预测后剩下的所谓残差。残差非常强大,因为它们让我们能够使用模型去除显著的模式,从而研究剩下的更细微的趋势。
要可视化模型的预测,我们首先生成一个覆盖数据所在区域的等间距值网格。最简单的方法是使用 modelr::data_grid()。它