←
PDF 432 / 520 Model Quality
→
English · PDF 432
Original PDF page 432
中文 · PDF 432

模型质量

除了查看模型的残差之外,我们还可以查看一些衡量模型质量的通用指标。你在上一章已经学习了如何计算一些特定的度量指标。这里我们将展示一种不同的方法,使用 broom 包。broom 包提供了一组通用函数,用于将模型转换为整洁的数据。这里我们将使用 broom::glance() 来提取一些模型质量指标。如果将它应用于一个模型,我们会得到一个只有单行数据的数据框:

broom::glance(nz_mod) #> r.squared adj.r.squared sigma statistic p.value df logLik #> AIC BIC #> 1 0.954 0.949 0.804 205 5.41e-08 2 -13.3 #> 32.6 34.1 #> deviance df.residual #> 1 6.47 10

我们可以使用 mutate() 和 unnest() 创建一个数据框,其中每个国家对应一行:

by_country %>% mutate(glance = map(model, broom::glance)) %>% unnest(glance) #> # A tibble: 142 × 16 #> country continent data model #> #> 1 Afghanistan Asia <tibble [12 × 4]> <S3: lm> #> 2 Albania Europe <tibble [12 × 4]> <S3: lm> #> 3 Algeria Africa <tibble [12 × 4]> <S3: lm> #> 4 Angola Africa <tibble [12 × 4]> <S3: lm> #> 5 Argentina Americas <tibble [12 × 4]> <S3: lm> #> 6 Australia Oceania <tibble [12 × 4]> <S3: lm> #> # ... with 136 more rows, and 12 more variables: #> # resids , r.squared , adj.r.squared , #> # sigma , statistic , p.value , df , #> # logLik , AIC , BIC , deviance , #> # df.residual

这并不是我们想要的输出,因为它仍然包含所有的列表列。这是 unnest() 作用于单行数据框时的默认行为。要去除这些列,我们使用 .drop = TRUE:

glance <- by_country %>% mutate(glance = map(model, broom::glance)) %>% unnest(glance, .drop = TRUE) glance