In this notebook we will be using data from Federal Reserve of delinquency rates for mortgages by metro area to forecast delinquency rates in the Sacramento Metro Area. We will build three forecasting models and compare their performance. Finally we use the models to predict delinquency rates for the next 12 weeks.
We have downloaded the data as a csv from the Federal Reserve. We load it into r with the code below.
library(tidyverse)
library(modeltime)
library(tidymodels)
library(timetk)
late_mortgage <- read_csv("C:/Users/Owner/Documents/Data/MetroAreaMortgagesPercent-30-89DaysLate-thru-2022-06.csv")
Now let’s take a quick look at the data. Below we can see that we
have 317 records of 177 variables. Taking a glimpse() of
our data though reveals that this dataset is actually wide and we’re
probably gonna want to make it long. It looks like most of the columns
are the months of the record. We’ll want to pivot those months to be
their own variable. It looks like we don’t have any missing data though,
so this shouldn’t get too complicated.
dim(late_mortgage)
[1] 317 177
glimpse(late_mortgage)
Rows: 317
Columns: 177
$ RegionType <chr> "National", "MetroArea", "MetroArea", "MetroArea", "MetroArea", "MetroArea", "MetroArea…
$ Name <chr> "United States", "Akron, OH", "Albany-Schenectady-Troy, NY", "Albuquerque, NM", "Allent…
$ CBSACode <chr> "-----", "10420", "10580", "10740", "10900", "11100", "11260", "11460", "11540", "11700…
$ `2008-01` <dbl> 3.5, 3.4, 3.0, 3.0, 3.5, 4.5, 3.1, 2.6, 1.5, 2.8, 2.3, 5.0, 3.4, 3.8, 4.8, 2.9, 4.6, 3.…
$ `2008-02` <dbl> 3.2, 2.8, 2.5, 2.8, 3.1, 4.3, 2.6, 2.4, 1.5, 3.3, 2.5, 4.6, 3.3, 4.5, 4.5, 2.7, 3.9, 3.…
$ `2008-03` <dbl> 3.1, 2.5, 2.3, 2.7, 3.0, 3.6, 2.5, 2.5, 1.2, 2.5, 2.3, 4.4, 3.1, 4.2, 3.8, 2.6, 4.0, 3.…
$ `2008-04` <dbl> 3.1, 2.9, 2.5, 2.6, 2.7, 4.3, 2.5, 2.5, 1.6, 2.7, 2.5, 4.5, 3.1, 3.6, 3.6, 2.4, 4.2, 3.…
$ `2008-05` <dbl> 3.2, 2.9, 2.5, 2.6, 3.0, 4.3, 2.4, 2.5, 1.2, 2.8, 2.7, 4.6, 3.3, 3.8, 4.0, 2.5, 4.2, 3.…
$ `2008-06` <dbl> 3.2, 3.2, 2.8, 2.9, 2.8, 4.2, 2.5, 2.6, 1.6, 2.8, 2.7, 4.5, 3.3, 4.4, 3.9, 2.4, 4.2, 3.…
$ `2008-07` <dbl> 3.4, 2.9, 2.7, 3.0, 3.1, 4.1, 2.3, 2.6, 1.4, 2.7, 3.4, 4.6, 3.5, 3.4, 4.1, 2.7, 4.6, 3.…
$ `2008-08` <dbl> 3.6, 3.0, 3.1, 3.3, 3.3, 4.8, 2.7, 3.1, 1.6, 3.3, 3.2, 4.9, 3.6, 4.1, 4.1, 2.9, 5.1, 3.…
$ `2008-09` <dbl> 3.6, 3.4, 2.9, 3.1, 3.4, 4.4, 2.2, 2.6, 1.7, 3.9, 3.7, 5.1, 3.6, 2.9, 4.1, 3.0, 5.3, 3.…
$ `2008-10` <dbl> 3.8, 3.5, 3.0, 3.4, 3.5, 4.8, 1.3, 2.4, 1.7, 3.6, 3.6, 5.2, 4.1, 4.0, 4.9, 3.2, 5.4, 3.…
$ `2008-11` <dbl> 3.9, 3.7, 3.0, 3.7, 3.9, 4.5, 1.8, 3.0, 1.7, 3.8, 3.9, 5.4, 4.5, 4.0, 4.8, 3.2, 5.4, 4.…
$ `2008-12` <dbl> 4.2, 3.7, 3.5, 3.9, 3.9, 5.0, 2.4, 2.9, 1.7, 3.9, 5.1, 5.7, 5.1, 4.6, 5.0, 3.3, 5.3, 4.…
$ `2009-01` <dbl> 4.2, 3.9, 3.4, 4.0, 4.0, 4.6, 2.6, 2.9, 1.8, 4.0, 4.0, 5.7, 5.8, 4.5, 5.2, 3.1, 5.5, 4.…
$ `2009-02` <dbl> 3.9, 3.6, 3.2, 3.5, 4.0, 3.9, 2.8, 2.5, 1.9, 3.3, 3.8, 5.4, 5.1, 4.0, 5.0, 3.1, 5.7, 4.…
$ `2009-03` <dbl> 3.7, 3.1, 3.1, 3.3, 3.4, 3.7, 2.4, 2.3, 1.3, 3.4, 3.3, 5.3, 4.8, 3.1, 3.9, 2.9, 5.5, 3.…
$ `2009-04` <dbl> 3.7, 3.4, 3.1, 3.2, 3.8, 3.6, 2.4, 2.4, 1.5, 3.2, 3.6, 5.2, 4.7, 3.6, 4.2, 2.8, 5.0, 4.…
$ `2009-05` <dbl> 3.8, 3.3, 3.1, 3.5, 3.7, 4.0, 2.6, 2.6, 1.9, 3.5, 3.9, 5.4, 4.9, 3.5, 4.7, 2.9, 5.1, 4.…
$ `2009-06` <dbl> 3.8, 3.3, 3.3, 3.8, 3.8, 4.2, 2.8, 2.8, 1.9, 3.7, 3.6, 5.3, 4.3, 3.8, 4.9, 3.0, 5.1, 4.…
$ `2009-07` <dbl> 4.0, 3.8, 3.1, 3.9, 4.2, 4.9, 3.3, 2.6, 2.1, 4.2, 4.1, 5.5, 5.4, 4.7, 4.9, 3.2, 5.2, 4.…
$ `2009-08` <dbl> 4.0, 3.5, 3.2, 3.8, 4.0, 4.8, 3.2, 2.8, 1.9, 3.7, 3.7, 5.4, 4.5, 3.9, 4.5, 3.3, 5.7, 4.…
$ `2009-09` <dbl> 3.9, 3.5, 3.1, 3.5, 4.0, 4.4, 3.0, 2.6, 2.1, 3.8, 4.0, 5.5, 4.2, 3.5, 4.4, 3.2, 5.4, 4.…
$ `2009-10` <dbl> 4.0, 3.7, 3.2, 3.6, 3.7, 4.3, 2.8, 2.0, 1.8, 3.9, 4.1, 5.5, 3.9, 4.2, 4.6, 3.5, 5.1, 4.…
$ `2009-11` <dbl> 3.9, 3.3, 2.9, 3.6, 3.8, 4.3, 2.3, 2.1, 2.2, 4.1, 3.8, 5.4, 4.6, 3.9, 4.5, 3.6, 5.0, 4.…
$ `2009-12` <dbl> 3.9, 3.7, 3.2, 3.6, 3.8, 4.4, 2.5, 2.4, 2.0, 4.8, 4.1, 5.3, 4.4, 4.6, 4.5, 3.6, 5.1, 4.…
$ `2010-01` <dbl> 4.0, 3.6, 3.5, 3.7, 4.2, 4.6, 2.7, 2.6, 2.3, 4.9, 4.7, 5.5, 4.3, 4.3, 4.8, 3.3, 5.1, 4.…
$ `2010-02` <dbl> 3.8, 2.9, 3.2, 3.7, 3.7, 4.7, 3.0, 2.5, 2.0, 4.3, 4.1, 5.2, 4.1, 3.5, 4.5, 3.4, 4.9, 4.…
$ `2010-03` <dbl> 3.4, 2.7, 2.9, 3.4, 3.8, 3.8, 2.6, 2.1, 1.7, 3.9, 3.5, 4.8, 3.7, 3.1, 3.6, 3.0, 4.2, 3.…
$ `2010-04` <dbl> 3.3, 2.8, 2.7, 3.4, 3.4, 4.1, 2.5, 1.9, 1.3, 4.1, 3.4, 4.7, 3.8, 3.4, 4.2, 3.0, 4.0, 3.…
$ `2010-05` <dbl> 3.5, 3.0, 2.9, 3.3, 3.3, 4.1, 2.5, 2.0, 1.9, 4.0, 3.3, 4.8, 3.8, 2.8, 4.3, 3.2, 4.2, 3.…
$ `2010-06` <dbl> 3.5, 2.9, 3.2, 3.2, 3.5, 4.4, 2.4, 2.6, 1.8, 4.2, 3.8, 5.0, 4.0, 3.4, 4.1, 3.1, 4.4, 3.…
$ `2010-07` <dbl> 3.7, 3.1, 3.8, 3.6, 3.8, 4.5, 2.6, 2.6, 1.9, 4.1, 4.1, 5.3, 4.0, 4.0, 4.1, 3.2, 4.4, 4.…
$ `2010-08` <dbl> 3.7, 3.2, 3.7, 3.4, 3.8, 4.8, 2.4, 2.9, 1.7, 4.0, 4.2, 5.2, 3.9, 4.2, 4.5, 3.2, 4.7, 4.…
$ `2010-09` <dbl> 3.7, 3.0, 3.2, 3.4, 3.9, 4.4, 2.6, 2.8, 1.7, 4.0, 4.1, 5.2, 3.8, 4.6, 4.3, 3.2, 4.4, 4.…
$ `2010-10` <dbl> 3.7, 3.1, 3.6, 3.4, 3.8, 4.5, 2.6, 2.5, 1.6, 3.8, 4.1, 5.3, 4.2, 3.9, 4.3, 3.2, 4.4, 4.…
$ `2010-11` <dbl> 3.6, 2.7, 3.3, 3.3, 3.9, 4.4, 2.1, 2.2, 1.7, 4.2, 4.2, 5.0, 4.5, 3.9, 4.7, 3.1, 3.9, 3.…
$ `2010-12` <dbl> 3.7, 3.1, 3.2, 3.7, 4.3, 3.6, 2.5, 2.4, 1.5, 4.2, 3.6, 5.2, 4.5, 3.6, 4.9, 3.2, 4.2, 4.…
$ `2011-01` <dbl> 3.7, 2.8, 3.5, 3.5, 4.0, 4.1, 2.5, 2.6, 1.7, 4.5, 4.1, 5.2, 4.8, 4.1, 5.0, 3.2, 3.7, 4.…
$ `2011-02` <dbl> 3.4, 2.7, 3.3, 3.2, 3.8, 4.1, 2.1, 2.6, 1.3, 4.1, 3.9, 5.0, 4.5, 3.2, 4.5, 3.1, 3.8, 4.…
$ `2011-03` <dbl> 3.1, 2.6, 2.9, 2.8, 3.5, 3.6, 2.0, 2.4, 1.4, 3.3, 3.2, 4.5, 3.6, 2.9, 3.5, 2.7, 3.5, 3.…
$ `2011-04` <dbl> 2.9, 2.2, 2.7, 2.8, 3.3, 3.3, 2.2, 2.1, 1.3, 3.3, 3.2, 4.2, 3.7, 2.0, 3.6, 2.5, 3.4, 3.…
$ `2011-05` <dbl> 3.1, 2.7, 3.1, 3.0, 3.6, 3.7, 2.5, 2.4, 1.3, 3.5, 3.2, 4.5, 3.5, 3.1, 3.5, 2.6, 3.3, 3.…
$ `2011-06` <dbl> 3.2, 2.9, 2.7, 2.8, 3.5, 3.9, 2.5, 2.5, 1.5, 3.6, 3.0, 4.4, 4.0, 2.9, 3.7, 2.6, 3.2, 3.…
$ `2011-07` <dbl> 3.4, 3.2, 3.0, 3.0, 3.5, 3.7, 2.7, 2.5, 1.8, 3.9, 3.8, 4.8, 4.1, 3.3, 4.2, 2.8, 3.4, 3.…
$ `2011-08` <dbl> 3.4, 3.3, 3.2, 2.9, 3.8, 3.6, 2.8, 2.5, 1.5, 3.9, 3.9, 4.8, 4.1, 3.5, 4.3, 3.0, 4.0, 3.…
$ `2011-09` <dbl> 3.4, 2.9, 2.7, 3.0, 3.5, 3.8, 2.3, 2.4, 1.4, 3.4, 3.8, 4.7, 4.3, 3.5, 4.4, 3.0, 4.0, 3.…
$ `2011-10` <dbl> 3.4, 3.0, 3.0, 3.1, 3.5, 3.3, 2.2, 2.2, 1.5, 3.6, 3.4, 4.8, 4.2, 4.8, 4.7, 3.0, 3.8, 3.…
$ `2011-11` <dbl> 3.3, 2.9, 2.9, 3.1, 3.5, 3.8, 2.1, 2.3, 1.7, 3.9, 3.1, 4.7, 3.7, 4.0, 4.5, 2.9, 3.3, 3.…
$ `2011-12` <dbl> 3.5, 3.3, 3.1, 3.4, 3.7, 3.7, 2.7, 2.4, 1.5, 3.9, 3.7, 4.9, 4.2, 4.0, 4.7, 3.1, 3.9, 4.…
$ `2012-01` <dbl> 3.7, 3.6, 3.4, 3.5, 3.9, 4.3, 3.2, 2.5, 1.8, 3.8, 3.8, 5.2, 4.8, 5.1, 5.2, 3.2, 4.2, 4.…
$ `2012-02` <dbl> 3.3, 3.2, 3.2, 3.1, 3.4, 4.1, 2.6, 2.3, 1.4, 3.9, 3.3, 4.7, 4.3, 4.5, 4.3, 2.8, 4.0, 3.…
$ `2012-03` <dbl> 3.1, 3.1, 2.8, 3.0, 3.3, 3.1, 2.8, 2.3, 1.5, 3.8, 2.9, 4.4, 4.1, 3.6, 4.0, 2.6, 3.6, 3.…
$ `2012-04` <dbl> 3.0, 3.2, 2.7, 2.9, 3.2, 3.3, 2.4, 2.3, 1.8, 3.4, 2.9, 4.2, 3.7, 3.1, 3.8, 2.5, 3.3, 3.…
$ `2012-05` <dbl> 3.1, 3.1, 2.9, 3.1, 3.4, 3.8, 2.6, 2.5, 1.6, 3.7, 3.4, 4.4, 3.9, 3.1, 4.2, 2.7, 3.5, 3.…
$ `2012-06` <dbl> 3.1, 3.0, 3.0, 2.9, 3.6, 4.1, 2.5, 2.2, 2.0, 3.6, 3.8, 4.3, 4.1, 3.3, 3.8, 2.6, 3.6, 3.…
$ `2012-07` <dbl> 3.3, 3.4, 3.3, 3.1, 3.7, 4.5, 2.4, 2.7, 1.8, 4.2, 3.5, 4.5, 4.3, 3.3, 4.2, 2.8, 4.0, 3.…
$ `2012-08` <dbl> 3.3, 3.3, 3.2, 3.3, 3.6, 4.6, 2.4, 2.5, 2.0, 3.6, 3.1, 4.5, 3.9, 3.9, 3.7, 2.8, 3.8, 3.…
$ `2012-09` <dbl> 3.3, 3.4, 3.0, 3.3, 3.6, 4.4, 2.3, 2.3, 1.6, 3.5, 3.3, 4.6, 3.8, 3.7, 3.8, 2.9, 3.8, 3.…
$ `2012-10` <dbl> 3.4, 3.4, 3.1, 3.4, 3.7, 4.4, 2.3, 2.2, 1.9, 3.3, 3.0, 4.6, 4.2, 4.6, 4.2, 3.0, 4.0, 3.…
$ `2012-11` <dbl> 3.2, 3.4, 3.1, 3.1, 3.3, 4.4, 2.0, 2.3, 1.5, 3.6, 3.2, 4.4, 3.4, 5.0, 4.0, 2.9, 3.9, 3.…
$ `2012-12` <dbl> 3.4, 3.6, 3.2, 3.4, 3.8, 3.9, 2.1, 2.0, 1.5, 3.8, 3.4, 4.6, 4.0, 4.7, 4.6, 2.9, 4.1, 3.…
$ `2013-01` <dbl> 3.4, 3.6, 3.1, 3.5, 3.6, 4.5, 2.1, 2.1, 2.1, 4.0, 3.7, 4.6, 3.6, 4.8, 5.0, 2.8, 4.1, 3.…
$ `2013-02` <dbl> 3.1, 3.1, 3.0, 3.2, 3.5, 3.8, 2.2, 2.0, 1.7, 3.6, 3.0, 4.3, 3.0, 3.9, 4.5, 2.7, 3.8, 3.…
$ `2013-03` <dbl> 2.9, 3.0, 2.6, 2.9, 3.3, 3.2, 2.1, 1.8, 1.5, 3.3, 3.2, 4.2, 3.4, 3.2, 3.9, 2.3, 3.6, 3.…
$ `2013-04` <dbl> 2.7, 2.7, 2.4, 2.6, 3.3, 3.5, 2.0, 1.7, 1.3, 3.1, 2.4, 3.8, 3.4, 3.1, 3.4, 2.3, 3.3, 3.…
$ `2013-05` <dbl> 2.7, 2.6, 2.5, 2.8, 3.3, 3.7, 2.1, 1.5, 1.6, 2.8, 2.7, 3.6, 3.7, 2.9, 3.1, 2.2, 3.2, 3.…
$ `2013-06` <dbl> 2.7, 2.8, 2.4, 2.6, 3.3, 3.4, 2.2, 1.8, 2.0, 3.2, 3.3, 3.5, 3.4, 3.4, 3.6, 2.2, 2.9, 3.…
$ `2013-07` <dbl> 2.8, 2.6, 2.3, 3.0, 3.4, 3.7, 2.1, 2.0, 1.7, 3.0, 2.5, 3.6, 3.5, 3.5, 3.6, 2.2, 3.2, 3.…
$ `2013-08` <dbl> 2.8, 2.9, 2.2, 2.7, 3.2, 3.3, 2.2, 1.8, 1.6, 2.9, 2.2, 3.7, 4.0, 3.6, 3.7, 2.3, 3.1, 3.…
$ `2013-09` <dbl> 2.6, 2.5, 2.1, 2.3, 2.9, 2.7, 2.2, 1.9, 1.3, 2.5, 1.7, 3.3, 3.1, 3.5, 3.8, 2.1, 2.5, 2.…
$ `2013-10` <dbl> 2.8, 2.8, 2.3, 2.8, 3.5, 3.5, 2.1, 2.1, 1.8, 3.1, 3.3, 3.7, 3.8, 4.2, 4.3, 2.3, 3.1, 3.…
$ `2013-11` <dbl> 2.6, 2.6, 2.2, 2.8, 3.3, 3.2, 1.8, 1.9, 1.7, 2.6, 2.7, 3.4, 3.4, 3.4, 4.1, 2.1, 2.7, 2.…
$ `2013-12` <dbl> 2.9, 2.7, 2.3, 3.1, 3.5, 3.4, 2.2, 2.0, 2.1, 3.2, 3.1, 3.7, 3.6, 3.3, 4.2, 2.1, 3.4, 3.…
$ `2014-01` <dbl> 2.9, 2.7, 2.5, 3.0, 3.4, 3.2, 2.5, 2.1, 1.5, 2.8, 3.9, 3.8, 3.9, 4.3, 4.3, 2.2, 3.4, 3.…
$ `2014-02` <dbl> 2.4, 2.6, 2.4, 2.5, 2.7, 2.1, 1.8, 1.8, 1.6, 2.4, 2.7, 3.2, 3.6, 2.6, 3.6, 1.9, 2.6, 2.…
$ `2014-03` <dbl> 2.4, 2.2, 2.2, 2.5, 2.6, 2.0, 1.8, 1.9, 1.3, 2.2, 2.7, 3.2, 3.5, 3.0, 3.4, 1.8, 2.9, 2.…
$ `2014-04` <dbl> 2.1, 1.9, 2.2, 2.4, 2.5, 1.4, 1.6, 1.6, 1.3, 2.1, 2.1, 2.9, 3.7, 2.1, 2.7, 1.5, 2.1, 2.…
$ `2014-05` <dbl> 2.4, 2.4, 2.0, 2.5, 2.9, 2.8, 1.7, 1.8, 1.6, 2.2, 2.0, 3.1, 4.4, 2.6, 3.0, 1.7, 2.7, 2.…
$ `2014-06` <dbl> 2.1, 2.0, 2.1, 2.2, 2.7, 2.7, 1.6, 1.6, 1.2, 2.1, 1.9, 2.7, 3.7, 2.5, 3.0, 1.6, 2.3, 2.…
$ `2014-07` <dbl> 2.4, 2.4, 2.1, 2.6, 3.2, 2.9, 2.0, 1.8, 1.6, 2.4, 2.4, 3.1, 3.4, 2.9, 3.1, 1.9, 2.7, 2.…
$ `2014-08` <dbl> 2.6, 2.6, 2.5, 2.5, 3.4, 2.4, 2.0, 2.4, 1.8, 2.4, 2.9, 3.3, 4.0, 2.8, 3.6, 1.9, 3.1, 3.…
$ `2014-09` <dbl> 2.4, 2.4, 2.3, 2.2, 2.9, 2.4, 1.8, 1.9, 1.7, 2.0, 2.2, 2.9, 3.8, 1.9, 3.3, 1.9, 2.7, 2.…
$ `2014-10` <dbl> 2.4, 2.5, 2.5, 2.6, 3.0, 2.6, 1.5, 1.8, 2.0, 2.0, 1.9, 3.1, 3.6, 3.2, 3.5, 1.9, 2.9, 2.…
$ `2014-11` <dbl> 2.4, 2.5, 2.2, 2.2, 2.8, 2.7, 1.2, 1.8, 1.6, 2.7, 1.7, 3.0, 2.5, 2.4, 3.3, 1.9, 2.9, 2.…
$ `2014-12` <dbl> 2.6, 2.8, 2.5, 2.5, 3.1, 2.3, 1.6, 1.8, 1.6, 2.8, 2.5, 3.3, 3.5, 3.6, 3.6, 2.0, 2.9, 3.…
$ `2015-01` <dbl> 2.6, 2.8, 2.7, 2.6, 3.2, 3.0, 1.6, 1.7, 1.7, 2.7, 2.2, 3.4, 3.4, 3.6, 3.6, 2.0, 3.1, 3.…
$ `2015-02` <dbl> 2.2, 2.1, 2.4, 2.0, 2.9, 2.6, 1.8, 1.5, 1.2, 2.2, 1.8, 2.8, 2.8, 3.6, 2.9, 1.6, 2.3, 2.…
$ `2015-03` <dbl> 2.0, 1.8, 1.9, 2.2, 2.5, 2.2, 1.4, 1.1, 1.3, 1.8, 1.9, 2.7, 3.0, 2.8, 2.8, 1.4, 2.3, 2.…
$ `2015-04` <dbl> 2.0, 1.7, 1.7, 1.8, 2.4, 2.1, 1.7, 1.0, 1.0, 2.5, 2.0, 2.5, 2.6, 3.2, 2.7, 1.6, 2.4, 2.…
$ `2015-05` <dbl> 2.1, 1.9, 1.9, 2.1, 2.3, 2.6, 1.8, 1.1, 1.1, 2.2, 1.9, 2.8, 2.8, 3.6, 3.2, 1.6, 2.5, 2.…
$ `2015-06` <dbl> 2.1, 2.1, 2.0, 2.0, 2.4, 2.5, 1.5, 1.1, 0.9, 2.4, 1.6, 2.7, 2.4, 2.7, 3.2, 1.3, 2.5, 2.…
$ `2015-07` <dbl> 2.2, 2.6, 2.3, 2.2, 2.6, 2.3, 1.7, 1.3, 1.3, 2.0, 1.8, 2.8, 2.7, 3.1, 3.5, 1.4, 2.7, 2.…
$ `2015-08` <dbl> 2.4, 2.6, 1.9, 2.2, 2.9, 2.8, 2.1, 1.3, 1.3, 2.4, 2.0, 3.1, 3.3, 2.8, 3.7, 1.5, 2.9, 2.…
$ `2015-09` <dbl> 2.3, 2.3, 2.0, 2.2, 2.7, 2.8, 1.8, 1.3, 1.6, 2.6, 1.9, 2.9, 2.8, 3.1, 3.6, 1.6, 2.9, 2.…
$ `2015-10` <dbl> 2.4, 2.4, 2.4, 2.4, 2.9, 3.1, 1.7, 1.7, 1.6, 2.5, 2.0, 3.1, 3.2, 3.4, 3.7, 1.5, 3.3, 2.…
$ `2015-11` <dbl> 2.2, 2.1, 1.8, 2.2, 2.7, 3.0, 1.4, 1.5, 2.0, 2.6, 1.8, 2.9, 3.3, 3.1, 3.3, 1.4, 3.0, 2.…
$ `2015-12` <dbl> 2.4, 2.2, 2.1, 2.4, 2.8, 2.5, 1.7, 1.8, 1.7, 2.5, 2.2, 3.2, 3.7, 2.8, 3.7, 1.6, 3.2, 2.…
$ `2016-01` <dbl> 2.6, 2.4, 2.3, 2.8, 3.2, 2.4, 2.1, 1.4, 1.5, 2.9, 2.0, 3.3, 3.9, 3.4, 3.9, 1.7, 3.7, 3.…
$ `2016-02` <dbl> 2.2, 2.1, 2.0, 2.1, 2.7, 2.0, 1.8, 1.2, 1.2, 2.7, 1.6, 2.8, 3.3, 2.6, 3.3, 1.5, 3.0, 2.…
$ `2016-03` <dbl> 2.0, 1.9, 1.9, 2.1, 2.5, 1.9, 1.6, 1.1, 1.1, 2.3, 1.8, 2.5, 3.2, 2.2, 2.7, 1.4, 2.7, 2.…
$ `2016-04` <dbl> 1.8, 1.6, 1.6, 1.8, 2.3, 2.3, 1.6, 1.1, 1.1, 2.2, 1.4, 2.4, 2.9, 2.3, 2.5, 1.3, 2.5, 2.…
$ `2016-05` <dbl> 2.0, 2.0, 1.8, 2.0, 2.3, 2.2, 1.5, 1.2, 1.1, 2.4, 1.7, 2.6, 2.7, 2.1, 2.8, 1.4, 3.0, 2.…
$ `2016-06` <dbl> 2.0, 2.1, 1.8, 2.0, 2.6, 2.8, 1.3, 1.1, 1.3, 2.6, 1.8, 2.5, 2.4, 2.0, 3.0, 1.4, 2.7, 2.…
$ `2016-07` <dbl> 2.2, 2.2, 1.8, 2.2, 2.6, 3.2, 1.8, 1.2, 1.3, 2.5, 2.0, 2.7, 3.3, 2.4, 3.2, 1.5, 3.0, 2.…
$ `2016-08` <dbl> 2.2, 2.2, 1.9, 2.4, 2.9, 3.0, 1.7, 1.4, 1.4, 2.6, 2.8, 2.8, 3.2, 2.6, 3.2, 1.6, 2.7, 2.…
$ `2016-09` <dbl> 2.2, 2.2, 2.0, 2.2, 2.5, 3.2, 1.8, 1.7, 1.5, 2.7, 1.9, 2.7, 2.9, 2.5, 3.4, 1.5, 2.6, 2.…
$ `2016-10` <dbl> 2.2, 2.1, 2.2, 2.3, 3.0, 3.2, 1.6, 1.3, 1.2, 2.6, 1.8, 2.8, 2.9, 2.4, 3.3, 1.7, 3.1, 2.…
$ `2016-11` <dbl> 2.1, 2.3, 1.9, 2.2, 2.8, 3.2, 1.4, 1.2, 1.2, 2.5, 1.5, 2.8, 3.1, 2.8, 3.3, 1.7, 2.8, 2.…
$ `2016-12` <dbl> 2.2, 2.4, 2.1, 2.3, 3.0, 3.0, 1.4, 1.4, 0.8, 2.4, 2.2, 2.8, 2.7, 2.5, 3.5, 1.7, 2.8, 2.…
$ `2017-01` <dbl> 2.4, 2.5, 2.2, 2.5, 3.3, 3.6, 1.6, 1.4, 1.2, 2.5, 2.3, 2.9, 3.5, 2.8, 3.7, 1.8, 2.9, 2.…
$ `2017-02` <dbl> 2.1, 2.0, 1.8, 2.2, 2.6, 3.1, 1.7, 1.4, 1.3, 2.5, 1.9, 2.6, 2.9, 2.9, 3.0, 1.6, 2.7, 2.…
$ `2017-03` <dbl> 2.0, 1.9, 1.8, 2.1, 2.4, 2.4, 1.5, 1.0, 1.2, 1.8, 1.7, 2.6, 3.1, 2.5, 2.8, 1.6, 2.5, 2.…
$ `2017-04` <dbl> 1.9, 1.8, 1.7, 1.9, 2.3, 2.3, 1.6, 1.1, 1.1, 2.2, 1.5, 2.4, 2.3, 1.6, 2.6, 1.5, 2.4, 2.…
$ `2017-05` <dbl> 2.0, 1.8, 1.7, 1.9, 2.2, 3.0, 1.9, 1.2, 1.3, 2.3, 1.4, 2.5, 2.4, 1.8, 2.7, 1.4, 2.6, 2.…
$ `2017-06` <dbl> 1.9, 1.9, 1.6, 1.8, 2.5, 2.5, 1.5, 1.2, 0.9, 2.0, 1.4, 2.4, 2.3, 1.6, 2.5, 1.4, 2.2, 2.…
$ `2017-07` <dbl> 2.1, 2.2, 1.7, 2.0, 2.6, 3.0, 1.8, 1.1, 1.0, 2.2, 1.3, 2.4, 2.7, 1.8, 3.0, 1.6, 2.5, 2.…
$ `2017-08` <dbl> 2.2, 2.5, 2.0, 2.1, 2.9, 2.9, 1.8, 1.3, 1.2, 2.0, 1.8, 2.6, 3.0, 2.5, 3.6, 1.7, 2.7, 2.…
$ `2017-09` <dbl> 2.0, 2.3, 1.5, 2.0, 2.8, 2.7, 1.9, 1.0, 1.1, 1.8, 1.4, 2.2, 2.6, 2.5, 2.7, 1.5, 2.6, 2.…
$ `2017-10` <dbl> 2.0, 2.2, 1.9, 2.2, 2.7, 3.4, 1.5, 1.3, 0.9, 1.7, 1.6, 2.2, 2.6, 2.5, 3.4, 1.5, 2.9, 2.…
$ `2017-11` <dbl> 2.0, 2.1, 1.8, 1.9, 2.7, 2.9, 1.3, 1.1, 1.1, 1.6, 1.5, 2.1, 3.1, 2.7, 2.9, 1.4, 2.7, 2.…
$ `2017-12` <dbl> 2.1, 2.2, 2.2, 2.2, 2.9, 2.4, 1.7, 1.0, 1.2, 1.8, 2.0, 2.4, 3.6, 2.7, 3.1, 1.6, 2.8, 2.…
$ `2018-01` <dbl> 2.3, 2.5, 2.3, 2.3, 3.5, 3.2, 2.3, 1.0, 1.2, 2.0, 2.3, 2.8, 3.9, 2.6, 3.2, 1.8, 3.1, 2.…
$ `2018-02` <dbl> 2.0, 2.1, 1.9, 1.8, 2.7, 2.9, 2.0, 1.2, 1.3, 1.9, 2.3, 2.4, 3.6, 2.3, 3.0, 1.6, 2.6, 2.…
$ `2018-03` <dbl> 1.8, 1.9, 1.8, 1.9, 2.7, 2.6, 1.9, 0.8, 1.0, 1.6, 1.9, 2.3, 3.2, 2.0, 2.5, 1.6, 2.2, 2.…
$ `2018-04` <dbl> 1.8, 1.8, 1.8, 1.7, 2.5, 2.6, 1.7, 1.3, 0.8, 1.5, 1.4, 2.1, 2.9, 1.8, 2.1, 1.2, 2.6, 2.…
$ `2018-05` <dbl> 1.8, 1.8, 1.6, 2.0, 2.4, 2.5, 1.7, 1.2, 0.9, 1.5, 1.9, 2.3, 2.8, 1.9, 2.7, 1.4, 2.3, 2.…
$ `2018-06` <dbl> 1.8, 1.6, 1.6, 1.7, 2.6, 2.5, 1.7, 1.0, 1.1, 1.7, 1.4, 2.4, 2.3, 2.3, 2.6, 1.5, 2.3, 2.…
$ `2018-07` <dbl> 2.0, 2.0, 1.8, 2.3, 2.5, 3.0, 1.7, 1.2, 1.0, 1.9, 1.4, 2.4, 3.3, 2.1, 2.7, 1.6, 2.3, 2.…
$ `2018-08` <dbl> 2.1, 2.2, 1.7, 2.1, 3.0, 3.0, 1.7, 1.1, 1.2, 2.1, 2.1, 2.6, 3.2, 2.6, 2.9, 1.6, 2.8, 2.…
$ `2018-09` <dbl> 2.0, 2.1, 1.8, 1.8, 2.9, 2.9, 1.7, 1.2, 0.9, 1.6, 2.0, 2.5, 3.2, 2.4, 3.0, 1.6, 2.5, 2.…
$ `2018-10` <dbl> 2.0, 2.1, 1.7, 2.0, 2.6, 2.7, 1.4, 1.3, 1.2, 1.7, 2.2, 2.6, 3.2, 2.5, 3.0, 1.7, 2.4, 2.…
$ `2018-11` <dbl> 1.9, 2.2, 1.6, 1.8, 2.4, 3.1, 1.3, 1.2, 1.3, 1.7, 1.8, 2.5, 2.8, 2.8, 2.9, 1.5, 2.5, 2.…
$ `2018-12` <dbl> 2.1, 2.3, 1.8, 2.0, 2.7, 2.6, 1.7, 1.1, 1.3, 2.0, 1.8, 2.6, 3.3, 2.5, 3.3, 1.7, 2.5, 2.…
$ `2019-01` <dbl> 2.2, 2.6, 2.3, 2.1, 2.9, 3.4, 1.9, 1.5, 1.3, 2.0, 1.4, 2.8, 3.8, 2.8, 3.2, 1.8, 2.8, 2.…
$ `2019-02` <dbl> 1.9, 2.2, 1.7, 1.7, 2.8, 2.7, 1.5, 1.3, 1.1, 1.7, 1.5, 2.4, 2.7, 2.4, 2.7, 1.6, 2.5, 2.…
$ `2019-03` <dbl> 1.8, 2.0, 1.6, 1.7, 2.3, 2.1, 1.3, 1.3, 0.9, 1.7, 1.8, 2.2, 2.4, 2.0, 2.5, 1.3, 2.1, 2.…
$ `2019-04` <dbl> 1.6, 1.5, 1.5, 1.4, 2.1, 2.3, 1.2, 1.3, 0.9, 1.3, 1.1, 2.0, 2.3, 1.7, 2.3, 1.4, 2.0, 1.…
$ `2019-05` <dbl> 1.8, 1.9, 1.8, 1.7, 2.3, 2.6, 1.5, 1.1, 1.1, 1.3, 1.4, 2.3, 2.8, 1.5, 2.8, 1.4, 2.3, 2.…
$ `2019-06` <dbl> 1.7, 1.8, 1.7, 1.9, 2.4, 2.8, 1.6, 1.2, 1.1, 1.2, 1.4, 2.2, 2.6, 1.1, 2.6, 1.3, 2.3, 1.…
$ `2019-07` <dbl> 2.0, 2.0, 2.0, 2.1, 2.8, 2.8, 1.8, 1.4, 1.1, 1.7, 1.6, 2.4, 3.0, 1.7, 3.3, 1.5, 2.6, 2.…
$ `2019-08` <dbl> 2.0, 2.1, 1.9, 2.0, 2.8, 2.5, 1.7, 1.5, 1.2, 1.8, 2.3, 2.6, 3.1, 2.0, 3.2, 1.6, 2.7, 2.…
$ `2019-09` <dbl> 1.9, 2.1, 2.0, 1.9, 2.8, 2.5, 1.7, 1.3, 1.0, 1.7, 2.0, 2.4, 2.9, 1.9, 2.6, 1.4, 2.3, 2.…
$ `2019-10` <dbl> 2.1, 2.3, 1.9, 2.3, 3.0, 2.7, 1.5, 1.2, 1.2, 1.9, 1.8, 2.7, 3.6, 2.7, 2.6, 1.7, 2.5, 2.…
$ `2019-11` <dbl> 1.9, 2.2, 1.6, 1.9, 2.8, 3.0, 1.3, 1.3, 0.9, 1.7, 2.0, 2.4, 3.1, 2.3, 2.8, 1.6, 2.4, 2.…
$ `2019-12` <dbl> 2.2, 2.2, 1.9, 2.5, 3.1, 3.5, 1.3, 1.4, 0.9, 2.3, 2.0, 2.8, 3.1, 2.6, 3.2, 1.7, 2.7, 2.…
$ `2020-01` <dbl> 2.2, 2.5, 2.0, 2.5, 2.9, 4.0, 1.5, 1.5, 1.0, 2.0, 2.0, 2.8, 3.3, 2.7, 3.2, 1.7, 2.8, 2.…
$ `2020-02` <dbl> 1.8, 2.0, 1.7, 1.7, 2.6, 2.5, 1.6, 1.0, 1.0, 1.6, 1.3, 2.2, 2.5, 2.1, 2.5, 1.4, 2.5, 2.…
$ `2020-03` <dbl> 1.8, 1.8, 1.8, 1.8, 2.3, 2.5, 1.5, 1.2, 0.9, 1.8, 1.7, 2.1, 2.4, 2.3, 2.6, 1.3, 2.1, 2.…
$ `2020-04` <dbl> 1.2, 1.2, 1.1, 1.1, 1.6, 1.6, 1.0, 0.8, 0.7, 1.5, 0.8, 1.4, 1.7, 1.0, 1.5, 0.9, 1.4, 1.…
$ `2020-05` <dbl> 1.0, 1.0, 1.0, 1.1, 1.1, 1.4, 1.2, 0.6, 0.4, 1.2, 0.5, 1.2, 1.5, 0.8, 1.1, 0.7, 1.2, 1.…
$ `2020-06` <dbl> 0.8, 0.9, 0.7, 1.0, 1.1, 1.3, 0.9, 0.7, 0.5, 0.8, 0.5, 1.0, 0.9, 0.8, 1.1, 0.6, 0.9, 1.…
$ `2020-07` <dbl> 0.9, 0.9, 1.0, 1.1, 1.1, 1.2, 1.0, 0.5, 0.4, 0.9, 0.7, 1.0, 1.1, 0.7, 1.2, 0.7, 1.1, 1.…
$ `2020-08` <dbl> 1.0, 1.1, 1.0, 1.0, 1.1, 1.1, 1.1, 0.5, 0.6, 0.9, 0.6, 1.0, 1.7, 0.8, 1.2, 0.7, 1.0, 1.…
$ `2020-09` <dbl> 0.9, 0.9, 0.7, 0.9, 0.9, 1.3, 0.8, 0.5, 1.0, 1.1, 0.5, 0.9, 1.1, 0.6, 1.2, 0.6, 1.0, 0.…
$ `2020-10` <dbl> 1.0, 0.9, 1.0, 1.0, 1.2, 1.4, 0.9, 0.4, 0.5, 1.0, 0.8, 1.1, 1.3, 0.6, 1.5, 0.7, 1.2, 1.…
$ `2020-11` <dbl> 0.8, 1.0, 0.8, 0.9, 1.1, 1.5, 0.9, 0.6, 0.3, 0.8, 0.8, 0.9, 1.2, 0.8, 1.4, 0.6, 0.8, 0.…
$ `2020-12` <dbl> 1.0, 1.1, 1.2, 1.1, 1.3, 1.5, 1.0, 0.7, 0.6, 1.2, 1.1, 1.1, 1.4, 0.8, 1.6, 0.7, 1.1, 1.…
$ `2021-01` <dbl> 1.0, 1.1, 1.0, 0.9, 1.2, 1.3, 1.1, 0.5, 0.7, 1.1, 0.8, 1.0, 1.5, 0.9, 1.8, 0.6, 1.0, 1.…
$ `2021-02` <dbl> 0.7, 0.9, 0.6, 0.8, 0.9, 1.1, 0.7, 0.5, 0.6, 0.7, 0.8, 0.8, 1.0, 0.2, 1.1, 0.4, 0.9, 0.…
$ `2021-03` <dbl> 0.8, 0.8, 0.8, 0.7, 1.0, 0.9, 0.8, 0.6, 0.5, 0.9, 1.0, 0.8, 0.9, 0.5, 1.1, 0.4, 0.9, 0.…
$ `2021-04` <dbl> 0.6, 0.7, 0.6, 0.6, 0.7, 0.7, 0.6, 0.5, 0.4, 0.6, 0.4, 0.6, 0.8, 0.5, 0.9, 0.3, 0.7, 0.…
$ `2021-05` <dbl> 0.7, 0.7, 0.6, 0.6, 0.7, 0.9, 0.8, 0.4, 0.5, 0.6, 0.3, 0.7, 1.0, 0.6, 0.9, 0.4, 0.7, 0.…
$ `2021-06` <dbl> 0.7, 0.6, 0.6, 0.6, 0.8, 0.9, 0.7, 0.6, 0.3, 0.7, 0.3, 0.7, 0.7, 0.7, 0.8, 0.4, 0.7, 0.…
$ `2021-07` <dbl> 0.8, 0.9, 0.7, 0.9, 1.0, 1.2, 0.7, 0.4, 0.6, 0.8, 0.8, 0.9, 0.9, 1.0, 1.1, 0.4, 0.9, 0.…
$ `2021-08` <dbl> 0.8, 0.9, 0.8, 0.9, 1.0, 1.1, 0.7, 0.6, 0.6, 0.9, 0.8, 0.9, 0.9, 1.5, 1.3, 0.5, 0.9, 0.…
$ `2021-09` <dbl> 0.8, 0.8, 0.7, 1.0, 1.2, 1.4, 0.9, 0.4, 0.4, 0.7, 1.1, 0.8, 0.8, 0.9, 1.0, 0.5, 0.7, 0.…
$ `2021-10` <dbl> 0.9, 1.0, 0.9, 1.1, 1.0, 1.3, 1.0, 0.5, 0.5, 0.8, 1.1, 1.0, 1.2, 1.3, 1.1, 0.6, 0.7, 1.…
$ `2021-11` <dbl> 0.8, 1.0, 0.9, 1.1, 0.9, 1.0, 0.7, 0.3, 0.3, 0.5, 0.5, 1.0, 1.1, 1.4, 1.0, 0.6, 0.7, 0.…
$ `2021-12` <dbl> 1.0, 1.3, 1.1, 1.3, 1.1, 1.6, 0.7, 0.5, 0.8, 0.7, 1.1, 1.2, 1.2, 1.5, 1.5, 0.6, 1.0, 1.…
$ `2022-01` <dbl> 1.0, 1.5, 1.2, 1.2, 1.2, 1.9, 0.9, 0.5, 0.5, 1.0, 1.3, 1.2, 1.0, 1.1, 1.4, 0.7, 1.1, 1.…
$ `2022-02` <dbl> 0.8, 0.9, 0.9, 1.0, 1.1, 1.2, 0.6, 0.5, 0.5, 0.8, 0.7, 0.9, 0.7, 1.0, 1.0, 0.5, 1.1, 0.…
$ `2022-03` <dbl> 1.0, 1.2, 1.0, 1.0, 1.1, 1.1, 0.9, 0.7, 0.5, 0.8, 1.0, 1.1, 1.0, 0.9, 1.4, 0.6, 1.4, 1.…
$ `2022-04` <dbl> 0.9, 1.1, 0.8, 1.1, 1.2, 0.8, 0.7, 0.7, 0.6, 0.6, 0.4, 0.9, 1.0, 0.6, 1.1, 0.6, 1.2, 1.…
$ `2022-05` <dbl> 1.0, 1.1, 1.2, 1.2, 1.4, 1.4, 0.8, 0.9, 0.7, 0.9, 1.1, 1.2, 1.1, 1.2, 1.2, 0.7, 1.2, 1.…
$ `2022-06` <dbl> 1.0, 1.1, 1.0, 1.3, 1.4, 1.4, 1.0, 0.9, 0.5, 0.7, 0.8, 1.1, 1.1, 1.0, 1.2, 0.7, 1.2, 1.…
summary(late_mortgage)
RegionType Name CBSACode 2008-01 2008-02 2008-03
Length:317 Length:317 Length:317 Min. :1.000 Min. :1.100 Min. :1.100
Class :character Class :character Class :character 1st Qu.:2.600 1st Qu.:2.400 1st Qu.:2.300
Mode :character Mode :character Mode :character Median :3.400 Median :3.100 Median :2.900
Mean :3.438 Mean :3.139 Mean :2.955
3rd Qu.:4.200 3rd Qu.:3.800 3rd Qu.:3.500
2008-04 2008-05 2008-06 2008-07 2008-08 2008-09
Min. :1.000 Min. :0.900 Min. :1.100 Min. :0.700 Min. :1.100 Min. :1.300
1st Qu.:2.300 1st Qu.:2.500 1st Qu.:2.400 1st Qu.:2.500 1st Qu.:2.700 1st Qu.:2.700
Median :2.900 Median :3.100 Median :3.100 Median :3.200 Median :3.400 Median :3.400
Mean :2.972 Mean :3.154 Mean :3.085 Mean :3.213 Mean :3.452 Mean :3.473
3rd Qu.:3.500 3rd Qu.:3.800 3rd Qu.:3.700 3rd Qu.:3.900 3rd Qu.:4.200 3rd Qu.:4.200
2008-10 2008-11 2008-12 2009-01 2009-02 2009-03
Min. :1.300 Min. : 0.900 Min. :1.300 Min. :1.000 Min. :1.30 Min. :1.300
1st Qu.:2.800 1st Qu.: 2.900 1st Qu.:3.200 1st Qu.:3.200 1st Qu.:3.00 1st Qu.:2.800
Median :3.600 Median : 3.700 Median :4.000 Median :4.000 Median :3.70 Median :3.500
Mean :3.672 Mean : 3.725 Mean :4.027 Mean :4.084 Mean :3.75 Mean :3.507
3rd Qu.:4.400 3rd Qu.: 4.400 3rd Qu.:4.800 3rd Qu.:4.800 3rd Qu.:4.40 3rd Qu.:4.100
2009-04 2009-05 2009-06 2009-07 2009-08 2009-09
Min. :1.300 Min. :1.200 Min. :1.400 Min. :0.900 Min. : 1.100 Min. : 1.200
1st Qu.:2.800 1st Qu.:3.000 1st Qu.:3.000 1st Qu.:3.100 1st Qu.: 3.100 1st Qu.: 3.100
Median :3.400 Median :3.600 Median :3.700 Median :3.800 Median : 3.800 Median : 3.800
Mean :3.496 Mean :3.646 Mean :3.681 Mean :3.853 Mean : 3.849 Mean : 3.799
3rd Qu.:4.000 3rd Qu.:4.200 3rd Qu.:4.300 3rd Qu.:4.600 3rd Qu.: 4.600 3rd Qu.: 4.500
2009-10 2009-11 2009-12 2010-01 2010-02 2010-03
Min. :1.100 Min. :1.200 Min. : 1.500 Min. : 1.400 Min. :1.300 Min. :1.000
1st Qu.:3.000 1st Qu.:3.000 1st Qu.: 3.200 1st Qu.: 3.100 1st Qu.:2.900 1st Qu.:2.700
Median :3.800 Median :3.800 Median : 3.800 Median : 4.000 Median :3.700 Median :3.400
Mean :3.879 Mean :3.785 Mean : 3.918 Mean : 3.998 Mean :3.709 Mean :3.322
3rd Qu.:4.600 3rd Qu.:4.400 3rd Qu.: 4.700 3rd Qu.: 4.700 3rd Qu.:4.300 3rd Qu.:3.800
2010-04 2010-05 2010-06 2010-07 2010-08 2010-09
Min. :1.100 Min. :1.300 Min. :1.200 Min. :1.300 Min. :1.200 Min. :1.400
1st Qu.:2.600 1st Qu.:2.800 1st Qu.:2.800 1st Qu.:2.900 1st Qu.:2.900 1st Qu.:2.900
Median :3.200 Median :3.300 Median :3.400 Median :3.600 Median :3.700 Median :3.700
Mean :3.279 Mean :3.442 Mean :3.495 Mean :3.635 Mean :3.661 Mean :3.655
3rd Qu.:3.900 3rd Qu.:4.100 3rd Qu.:4.100 3rd Qu.:4.300 3rd Qu.:4.300 3rd Qu.:4.300
2010-10 2010-11 2010-12 2011-01 2011-02 2011-03
Min. :0.900 Min. :1.200 Min. :1.20 Min. :1.100 Min. :0.800 Min. :0.800
1st Qu.:2.900 1st Qu.:2.700 1st Qu.:2.90 1st Qu.:2.900 1st Qu.:2.800 1st Qu.:2.400
Median :3.600 Median :3.500 Median :3.70 Median :3.700 Median :3.400 Median :3.000
Mean :3.676 Mean :3.572 Mean :3.74 Mean :3.765 Mean :3.445 Mean :3.081
3rd Qu.:4.300 3rd Qu.:4.200 3rd Qu.:4.40 3rd Qu.:4.400 3rd Qu.:4.100 3rd Qu.:3.600
2011-04 2011-05 2011-06 2011-07 2011-08 2011-09
Min. :0.900 Min. :1.100 Min. :1.000 Min. :1.200 Min. : 1.100 Min. :1.000
1st Qu.:2.300 1st Qu.:2.500 1st Qu.:2.600 1st Qu.:2.700 1st Qu.: 2.800 1st Qu.:2.700
Median :2.900 Median :3.200 Median :3.100 Median :3.300 Median : 3.400 Median :3.300
Mean :2.928 Mean :3.139 Mean :3.187 Mean :3.396 Mean : 3.474 Mean :3.397
3rd Qu.:3.400 3rd Qu.:3.600 3rd Qu.:3.700 3rd Qu.:4.000 3rd Qu.: 4.100 3rd Qu.:4.000
2011-10 2011-11 2011-12 2012-01 2012-02 2012-03
Min. : 0.800 Min. :0.900 Min. :0.900 Min. : 1.100 Min. :1.100 Min. :1.100
1st Qu.: 2.600 1st Qu.:2.500 1st Qu.:2.700 1st Qu.: 2.800 1st Qu.:2.500 1st Qu.:2.400
Median : 3.400 Median :3.300 Median :3.500 Median : 3.700 Median :3.300 Median :3.000
Mean : 3.428 Mean :3.321 Mean :3.514 Mean : 3.737 Mean :3.297 Mean :3.024
3rd Qu.: 4.100 3rd Qu.:4.000 3rd Qu.:4.200 3rd Qu.: 4.400 3rd Qu.:3.900 3rd Qu.:3.600
2012-04 2012-05 2012-06 2012-07 2012-08 2012-09
Min. :0.800 Min. :1.100 Min. :1.100 Min. :1.000 Min. :1.000 Min. :0.900
1st Qu.:2.300 1st Qu.:2.500 1st Qu.:2.400 1st Qu.:2.500 1st Qu.:2.500 1st Qu.:2.600
Median :2.900 Median :3.100 Median :3.100 Median :3.300 Median :3.300 Median :3.300
Mean :2.967 Mean :3.117 Mean :3.133 Mean :3.302 Mean :3.294 Mean :3.349
3rd Qu.:3.500 3rd Qu.:3.700 3rd Qu.:3.700 3rd Qu.:3.900 3rd Qu.:3.900 3rd Qu.:4.000
2012-10 2012-11 2012-12 2013-01 2013-02 2013-03
Min. :1.00 Min. :0.700 Min. :0.800 Min. : 1.100 Min. :1.100 Min. :0.500
1st Qu.:2.60 1st Qu.:2.400 1st Qu.:2.600 1st Qu.: 2.600 1st Qu.:2.300 1st Qu.:2.200
Median :3.30 Median :3.200 Median :3.400 Median : 3.400 Median :3.100 Median :2.900
Mean :3.41 Mean :3.265 Mean :3.453 Mean : 3.485 Mean :3.135 Mean :2.931
3rd Qu.:4.10 3rd Qu.:3.900 3rd Qu.:4.100 3rd Qu.: 4.200 3rd Qu.:3.800 3rd Qu.:3.500
2013-04 2013-05 2013-06 2013-07 2013-08 2013-09
Min. :0.60 Min. :0.90 Min. :0.800 Min. :0.600 Min. :0.800 Min. :0.30
1st Qu.:2.10 1st Qu.:2.00 1st Qu.:2.100 1st Qu.:2.100 1st Qu.:2.100 1st Qu.:1.90
Median :2.70 Median :2.70 Median :2.700 Median :2.800 Median :2.900 Median :2.50
Mean :2.75 Mean :2.75 Mean :2.792 Mean :2.862 Mean :2.894 Mean :2.64
3rd Qu.:3.30 3rd Qu.:3.30 3rd Qu.:3.400 3rd Qu.:3.500 3rd Qu.:3.500 3rd Qu.:3.20
2013-10 2013-11 2013-12 2014-01 2014-02 2014-03
Min. :0.60 Min. :0.800 Min. :0.800 Min. :0.600 Min. :0.70 Min. :0.600
1st Qu.:2.10 1st Qu.:1.900 1st Qu.:2.100 1st Qu.:2.200 1st Qu.:1.80 1st Qu.:1.800
Median :2.80 Median :2.700 Median :2.900 Median :2.900 Median :2.40 Median :2.400
Mean :2.87 Mean :2.694 Mean :2.956 Mean :2.994 Mean :2.47 Mean :2.394
3rd Qu.:3.50 3rd Qu.:3.300 3rd Qu.:3.700 3rd Qu.:3.700 3rd Qu.:3.10 3rd Qu.:2.900
2014-04 2014-05 2014-06 2014-07 2014-08 2014-09
Min. :0.600 Min. :0.70 Min. :0.400 Min. :0.500 Min. :0.600 Min. :0.600
1st Qu.:1.500 1st Qu.:1.80 1st Qu.:1.600 1st Qu.:1.800 1st Qu.:1.900 1st Qu.:1.800
Median :2.100 Median :2.40 Median :2.200 Median :2.500 Median :2.600 Median :2.400
Mean :2.148 Mean :2.42 Mean :2.189 Mean :2.536 Mean :2.664 Mean :2.432
3rd Qu.:2.600 3rd Qu.:2.90 3rd Qu.:2.600 3rd Qu.:3.100 3rd Qu.:3.200 3rd Qu.:3.000
2014-10 2014-11 2014-12 2015-01 2015-02 2015-03
Min. :0.500 Min. :0.200 Min. :0.600 Min. :0.700 Min. :0.400 Min. :0.400
1st Qu.:1.900 1st Qu.:1.800 1st Qu.:2.000 1st Qu.:2.000 1st Qu.:1.600 1st Qu.:1.500
Median :2.500 Median :2.400 Median :2.600 Median :2.700 Median :2.200 Median :2.000
Mean :2.508 Mean :2.462 Mean :2.688 Mean :2.734 Mean :2.226 Mean :2.078
3rd Qu.:3.100 3rd Qu.:3.000 3rd Qu.:3.300 3rd Qu.:3.400 3rd Qu.:2.700 3rd Qu.:2.600
2015-04 2015-05 2015-06 2015-07 2015-08 2015-09
Min. :0.400 Min. :0.40 Min. :0.500 Min. :0.500 Min. :0.600 Min. :0.500
1st Qu.:1.400 1st Qu.:1.60 1st Qu.:1.500 1st Qu.:1.600 1st Qu.:1.800 1st Qu.:1.600
Median :2.000 Median :2.10 Median :2.100 Median :2.200 Median :2.400 Median :2.300
Mean :2.028 Mean :2.17 Mean :2.129 Mean :2.226 Mean :2.417 Mean :2.319
3rd Qu.:2.500 3rd Qu.:2.70 3rd Qu.:2.600 3rd Qu.:2.700 3rd Qu.:2.900 3rd Qu.:2.900
2015-10 2015-11 2015-12 2016-01 2016-02 2016-03
Min. :0.400 Min. :0.400 Min. :0.300 Min. :0.600 Min. :0.50 Min. :0.3
1st Qu.:1.800 1st Qu.:1.700 1st Qu.:1.800 1st Qu.:1.900 1st Qu.:1.60 1st Qu.:1.5
Median :2.400 Median :2.300 Median :2.500 Median :2.600 Median :2.20 Median :1.9
Mean :2.444 Mean :2.311 Mean :2.514 Mean :2.669 Mean :2.26 Mean :2.0
3rd Qu.:3.100 3rd Qu.:2.900 3rd Qu.:3.100 3rd Qu.:3.300 3rd Qu.:2.80 3rd Qu.:2.5
2016-04 2016-05 2016-06 2016-07 2016-08 2016-09
Min. :0.300 Min. :0.200 Min. :0.300 Min. :0.300 Min. :0.400 Min. :0.300
1st Qu.:1.400 1st Qu.:1.500 1st Qu.:1.500 1st Qu.:1.600 1st Qu.:1.700 1st Qu.:1.600
Median :1.800 Median :2.000 Median :2.000 Median :2.200 Median :2.300 Median :2.200
Mean :1.897 Mean :2.075 Mean :2.101 Mean :2.313 Mean :2.362 Mean :2.254
3rd Qu.:2.300 3rd Qu.:2.600 3rd Qu.:2.600 3rd Qu.:2.900 3rd Qu.:2.900 3rd Qu.:2.800
2016-10 2016-11 2016-12 2017-01 2017-02 2017-03
Min. :0.400 Min. :0.300 Min. :0.500 Min. :0.400 Min. :0.500 Min. :0.400
1st Qu.:1.700 1st Qu.:1.600 1st Qu.:1.700 1st Qu.:1.800 1st Qu.:1.600 1st Qu.:1.400
Median :2.200 Median :2.100 Median :2.200 Median :2.400 Median :2.100 Median :1.900
Mean :2.337 Mean :2.238 Mean :2.358 Mean :2.533 Mean :2.255 Mean :2.031
3rd Qu.:3.000 3rd Qu.:2.800 3rd Qu.:2.900 3rd Qu.:3.100 3rd Qu.:2.800 3rd Qu.:2.500
2017-04 2017-05 2017-06 2017-07 2017-08 2017-09
Min. :0.300 Min. :0.300 Min. :0.40 Min. :0.500 Min. :0.400 Min. :0.400
1st Qu.:1.400 1st Qu.:1.400 1st Qu.:1.40 1st Qu.:1.500 1st Qu.:1.600 1st Qu.:1.500
Median :1.900 Median :2.000 Median :1.90 Median :2.100 Median :2.200 Median :2.100
Mean :1.963 Mean :2.075 Mean :2.03 Mean :2.211 Mean :2.327 Mean :2.153
3rd Qu.:2.400 3rd Qu.:2.600 3rd Qu.:2.50 3rd Qu.:2.700 3rd Qu.:2.800 3rd Qu.:2.700
2017-10 2017-11 2017-12 2018-01 2018-02 2018-03
Min. :0.500 Min. :0.40 Min. :0.400 Min. :0.500 Min. :0.400 Min. :0.300
1st Qu.:1.500 1st Qu.:1.40 1st Qu.:1.500 1st Qu.:1.700 1st Qu.:1.500 1st Qu.:1.400
Median :2.100 Median :2.00 Median :2.100 Median :2.300 Median :2.000 Median :1.900
Mean :2.163 Mean :2.09 Mean :2.215 Mean :2.456 Mean :2.143 Mean :1.945
3rd Qu.:2.700 3rd Qu.:2.60 3rd Qu.:2.800 3rd Qu.:3.100 3rd Qu.:2.700 3rd Qu.:2.400
2018-04 2018-05 2018-06 2018-07 2018-08 2018-09
Min. :0.300 Min. :0.400 Min. :0.400 Min. :0.300 Min. :0.400 Min. :0.400
1st Qu.:1.300 1st Qu.:1.400 1st Qu.:1.400 1st Qu.:1.400 1st Qu.:1.600 1st Qu.:1.500
Median :1.700 Median :1.800 Median :1.800 Median :2.000 Median :2.100 Median :2.000
Mean :1.848 Mean :1.944 Mean :1.928 Mean :2.081 Mean :2.192 Mean :2.092
3rd Qu.:2.200 3rd Qu.:2.400 3rd Qu.:2.400 3rd Qu.:2.500 3rd Qu.:2.700 3rd Qu.:2.600
2018-10 2018-11 2018-12 2019-01 2019-02 2019-03
Min. :0.400 Min. :0.400 Min. :0.40 Min. :0.500 Min. :0.500 Min. :0.400
1st Qu.:1.400 1st Qu.:1.400 1st Qu.:1.50 1st Qu.:1.600 1st Qu.:1.400 1st Qu.:1.300
Median :2.000 Median :1.900 Median :2.10 Median :2.300 Median :1.900 Median :1.800
Mean :2.134 Mean :2.034 Mean :2.22 Mean :2.384 Mean :2.036 Mean :1.862
3rd Qu.:2.700 3rd Qu.:2.500 3rd Qu.:2.70 3rd Qu.:3.100 3rd Qu.:2.600 3rd Qu.:2.300
2019-04 2019-05 2019-06 2019-07 2019-08 2019-09
Min. :0.300 Min. :0.400 Min. :0.300 Min. :0.400 Min. :0.400 Min. :0.4
1st Qu.:1.200 1st Qu.:1.300 1st Qu.:1.300 1st Qu.:1.500 1st Qu.:1.500 1st Qu.:1.4
Median :1.600 Median :1.800 Median :1.700 Median :2.000 Median :2.000 Median :1.9
Mean :1.668 Mean :1.885 Mean :1.811 Mean :2.078 Mean :2.141 Mean :2.0
3rd Qu.:2.100 3rd Qu.:2.300 3rd Qu.:2.300 3rd Qu.:2.500 3rd Qu.:2.600 3rd Qu.:2.5
2019-10 2019-11 2019-12 2020-01 2020-02 2020-03
Min. :0.400 Min. :0.200 Min. :0.300 Min. :0.30 Min. :0.400 Min. :0.400
1st Qu.:1.600 1st Qu.:1.500 1st Qu.:1.600 1st Qu.:1.70 1st Qu.:1.300 1st Qu.:1.300
Median :2.100 Median :1.900 Median :2.200 Median :2.20 Median :1.800 Median :1.700
Mean :2.231 Mean :2.058 Mean :2.343 Mean :2.39 Mean :1.931 Mean :1.844
3rd Qu.:2.700 3rd Qu.:2.500 3rd Qu.:2.900 3rd Qu.:2.90 3rd Qu.:2.400 3rd Qu.:2.300
2020-04 2020-05 2020-06 2020-07 2020-08 2020-09
Min. :0.200 Min. :0.200 Min. :0.2000 Min. :0.1 Min. :0.200 Min. :0.1000
1st Qu.:0.900 1st Qu.:0.800 1st Qu.:0.6000 1st Qu.:0.7 1st Qu.:0.700 1st Qu.:0.6000
Median :1.200 Median :1.000 Median :0.8000 Median :1.0 Median :1.000 Median :0.8000
Mean :1.296 Mean :1.096 Mean :0.8959 Mean :1.0 Mean :1.057 Mean :0.9338
3rd Qu.:1.600 3rd Qu.:1.400 3rd Qu.:1.1000 3rd Qu.:1.3 3rd Qu.:1.300 3rd Qu.:1.2000
2020-10 2020-11 2020-12 2021-01 2021-02 2021-03
Min. :0.200 Min. :0.2000 Min. :0.10 Min. :0.200 Min. :0.1000 Min. :0.1000
1st Qu.:0.700 1st Qu.:0.6000 1st Qu.:0.80 1st Qu.:0.700 1st Qu.:0.6000 1st Qu.:0.6000
Median :1.000 Median :0.8000 Median :1.10 Median :1.000 Median :0.7000 Median :0.8000
Mean :1.051 Mean :0.9079 Mean :1.11 Mean :1.053 Mean :0.8028 Mean :0.8347
3rd Qu.:1.300 3rd Qu.:1.1000 3rd Qu.:1.40 3rd Qu.:1.300 3rd Qu.:1.0000 3rd Qu.:1.0000
2021-04 2021-05 2021-06 2021-07 2021-08 2021-09
Min. :0.1000 Min. :0.1000 Min. :0.0000 Min. :0.2000 Min. :0.1000 Min. :0.1000
1st Qu.:0.4000 1st Qu.:0.5000 1st Qu.:0.5000 1st Qu.:0.6000 1st Qu.:0.6000 1st Qu.:0.6000
Median :0.6000 Median :0.7000 Median :0.7000 Median :0.9000 Median :0.9000 Median :0.8000
Mean :0.6328 Mean :0.7325 Mean :0.7101 Mean :0.8899 Mean :0.9233 Mean :0.8379
3rd Qu.:0.8000 3rd Qu.:0.9000 3rd Qu.:0.9000 3rd Qu.:1.1000 3rd Qu.:1.2000 3rd Qu.:1.1000
2021-10 2021-11 2021-12 2022-01 2022-02 2022-03
Min. :0.1000 Min. :0.1000 Min. :0.100 Min. :0.100 Min. :0.1000 Min. :0.200
1st Qu.:0.7000 1st Qu.:0.6000 1st Qu.:0.800 1st Qu.:0.800 1st Qu.:0.7000 1st Qu.:0.800
Median :1.0000 Median :0.8000 Median :1.000 Median :1.100 Median :0.9000 Median :1.000
Mean :0.9956 Mean :0.8965 Mean :1.106 Mean :1.159 Mean :0.9293 Mean :1.079
3rd Qu.:1.3000 3rd Qu.:1.1000 3rd Qu.:1.400 3rd Qu.:1.500 3rd Qu.:1.2000 3rd Qu.:1.400
2022-04 2022-05 2022-06
Min. :0.2000 Min. :0.000 Min. :0.100
1st Qu.:0.7000 1st Qu.:0.800 1st Qu.:0.800
Median :0.9000 Median :1.100 Median :1.000
Mean :0.9319 Mean :1.135 Mean :1.061
3rd Qu.:1.2000 3rd Qu.:1.400 3rd Qu.:1.300
[ reached getOption("max.print") -- omitted 1 row ]
We saw from our quick exploration that we want to pivot most of the
columns so that the column names are a new variable month.
After that, we’ll probably want to pivot the data wider again, turning
the metro areas and regions we want into columns. We do that in the code
below
late_mortgage_cleaned <- late_mortgage %>%
# Turn our columns into a new variable calle month
pivot_longer(!c(RegionType:CBSACode), names_to = "month", values_to = "mortgage_share_delinquent") %>%
# filter so we only have records of the areas we want
filter(Name %in% c("California", "United States", "Arizona", "Nevada", "ORegon", "Fresno, CA",
"Los Angeles-Long Beach-Anaheim, CA", "Merced, CA", "Modesto, CA", "Redding, CA",
"Sacramento--Roseville--Arden-Arcade, CA", "Salinas, CA", "San Francisco-Oakland-Hayward, CA",
"San Jose-Sunnyvale-Santa Clara, CA", "Santa Cruz-Watsonville, CA", "Stockton-Lodi, CA",
"Vallejo-Fairfield, CA", "Visalia-Porterville, CA", "Yuba City, CA")) %>%
select(-c(RegionType, CBSACode)) %>%
# Pivot our data wider so each row corresponds to a month and metro areas are in columns
pivot_wider(names_from = Name, values_from = mortgage_share_delinquent) %>%
# Format our month variable as a date data type
mutate(month = lubridate::ym(month))
Now that we have our data the way we want we can plot the delinquency rate in the Sacramento Metro Area (our dependent variable) over time. We see in the plot below that it looks like the rate spiked in late 2008 to early 2009 and then fell over the next decade leveling out since 2020.
late_mortgage_cleaned %>%
plot_time_series(month, `Sacramento--Roseville--Arden-Arcade, CA`)
NA
Now that we have our data we want to prepare it for the model. First we will want to extend our data frame by 24 months so that we can predict into the future. Then we will want to create lagged variables and a chained average of them so that we can predict the future using current data, the model will be trained to predict based on these lagged variables so it’s predicting sacramento delinquency rates based on past delinquency rates. Finally, we’ll have to split the dates in the current data into a training and a test set. The model will be trained on the training dataset and then we will test performance on the test data set which the model will not have seen yet. Once that is done we will train the models on the full data set (both train and test) and use our extended part of future dates to predict delinquency rates for dates in the future that haven’t been reported yet.
In the plot below the blue portion of the line indicates the data that will be included in the training set and the red portion indicates the data that will be included in the test set.
# extending our data frame so we can predict into the future
late_mortgage_cleaned_extended <- late_mortgage_cleaned %>%
future_frame(
.length_out = 24,
.bind_data = TRUE
)
# a function to create our lagged variables
lag_roll_transformer <- function(data){
data %>%
tk_augment_lags(c(`United States`:Nevada), .lags = 1:24) %>%
tk_augment_slidify(
contains("lag6"),
.f = ~mean(.x, na.rm = T),
.period = 3,
.partial = TRUE
)
}
late_mortgage_cleaned_model <- late_mortgage_cleaned_extended %>%
# Creating our lagged variables
lag_roll_transformer() %>%
# remove the current records of the data we wouldn't be able to predict with and the lagged variables that are
# too recent
select(-c(`United States`:`Redding, CA`, `Salinas, CA`:Nevada,
ends_with("_lag1"), ends_with("_lag2"), ends_with("_lag3"), ends_with("_lag4"),
ends_with("_lag5"), ends_with("_lag6")))
# Splitting the data in train and test set
splits <- late_mortgage_cleaned_model%>%
filter(!is.na(`Sacramento--Roseville--Arden-Arcade, CA`)) %>%
time_series_split(
assess = "2 years",
cumulative = TRUE
)
splits %>%
tk_time_series_cv_plan() %>%
plot_time_series_cv_plan(month, `Sacramento--Roseville--Arden-Arcade, CA`)
# Setting aside our future data
future_data <- late_mortgage_cleaned_model %>%
filter(is.na(`Sacramento--Roseville--Arden-Arcade, CA`))
In the code below we train three models. a linear model, a glment model, and a xgboost model. In this project we don’t tune the parameters of these models. That would likely improve performance (as would feature engineering), but for now, we’re playing with the models out of the box.
lt_mtgg_lm <- linear_reg() %>%
set_engine("lm") %>%
fit(`Sacramento--Roseville--Arden-Arcade, CA` ~ ., training(splits))
lt_mtgg_lm
parsnip model object
Call:
stats::lm(formula = `Sacramento--Roseville--Arden-Arcade, CA` ~
., data = data)
Coefficients:
(Intercept)
3.153e+02
month
-1.452e-02
`United States_lag7`
7.648e+01
`Fresno, CA_lag7`
-2.930e+01
`Los Angeles-Long Beach-Anaheim, CA_lag7`
-7.707e+01
`Merced, CA_lag7`
1.603e+00
`Modesto, CA_lag7`
1.955e+01
`Redding, CA_lag7`
-2.406e+00
`Sacramento--Roseville--Arden-Arcade, CA_lag7`
-4.823e+01
`Salinas, CA_lag7`
1.033e+01
`San Francisco-Oakland-Hayward, CA_lag7`
3.273e+01
`San Jose-Sunnyvale-Santa Clara, CA_lag7`
-5.153e+00
`Santa Cruz-Watsonville, CA_lag7`
6.996e+00
`Stockton-Lodi, CA_lag7`
-1.627e+01
`Vallejo-Fairfield, CA_lag7`
4.408e+01
`Visalia-Porterville, CA_lag7`
6.371e+00
`Yuba City, CA_lag7`
6.823e+00
Arizona_lag7
-2.230e+01
California_lag7
-4.125e+01
Nevada_lag7
1.234e+01
`United States_lag8`
2.340e+01
`Fresno, CA_lag8`
1.413e+01
`Los Angeles-Long Beach-Anaheim, CA_lag8`
-3.385e+00
`Merced, CA_lag8`
1.178e+01
`Modesto, CA_lag8`
-8.453e+00
`Redding, CA_lag8`
-9.338e-01
`Sacramento--Roseville--Arden-Arcade, CA_lag8`
1.543e+01
`Salinas, CA_lag8`
-2.376e+01
`San Francisco-Oakland-Hayward, CA_lag8`
-9.979e+01
`San Jose-Sunnyvale-Santa Clara, CA_lag8`
-1.083e+02
`Santa Cruz-Watsonville, CA_lag8`
1.353e+00
`Stockton-Lodi, CA_lag8`
2.932e+01
`Vallejo-Fairfield, CA_lag8`
2.736e+01
`Visalia-Porterville, CA_lag8`
-1.114e+01
`Yuba City, CA_lag8`
5.244e+00
Arizona_lag8
9.876e+00
California_lag8
-8.127e+00
Nevada_lag8
9.986e+00
`United States_lag9`
-7.492e+01
`Fresno, CA_lag9`
-1.926e+00
`Los Angeles-Long Beach-Anaheim, CA_lag9`
-6.771e+00
`Merced, CA_lag9`
3.132e+00
`Modesto, CA_lag9`
-1.518e+01
`Redding, CA_lag9`
-5.575e+00
`Sacramento--Roseville--Arden-Arcade, CA_lag9`
-3.394e+01
`Salinas, CA_lag9`
1.533e+01
`San Francisco-Oakland-Hayward, CA_lag9`
7.719e+01
`San Jose-Sunnyvale-Santa Clara, CA_lag9`
-1.126e+01
`Santa Cruz-Watsonville, CA_lag9`
7.833e+00
`Stockton-Lodi, CA_lag9`
1.187e+01
`Vallejo-Fairfield, CA_lag9`
6.424e+00
`Visalia-Porterville, CA_lag9`
5.609e+00
`Yuba City, CA_lag9`
-1.347e+01
Arizona_lag9
7.442e+00
California_lag9
1.820e+01
Nevada_lag9
-3.966e+01
`United States_lag10`
7.512e+01
`Fresno, CA_lag10`
2.100e+01
`Los Angeles-Long Beach-Anaheim, CA_lag10`
4.217e+01
`Merced, CA_lag10`
2.629e+00
`Modesto, CA_lag10`
1.445e+01
`Redding, CA_lag10`
-4.415e+00
`Sacramento--Roseville--Arden-Arcade, CA_lag10`
-9.235e+01
`Salinas, CA_lag10`
-1.298e+00
`San Francisco-Oakland-Hayward, CA_lag10`
7.579e+01
`San Jose-Sunnyvale-Santa Clara, CA_lag10`
7.391e+00
`Santa Cruz-Watsonville, CA_lag10`
-2.641e+01
`Stockton-Lodi, CA_lag10`
-2.303e+01
`Vallejo-Fairfield, CA_lag10`
-2.163e+01
`Visalia-Porterville, CA_lag10`
-1.105e+01
`Yuba City, CA_lag10`
-2.242e+01
Arizona_lag10
5.640e+00
California_lag10
2.008e+01
Nevada_lag10
-2.822e+01
`United States_lag11`
1.603e+01
`Fresno, CA_lag11`
6.318e+00
`Los Angeles-Long Beach-Anaheim, CA_lag11`
1.355e+01
`Merced, CA_lag11`
9.281e+00
`Modesto, CA_lag11`
-9.200e+00
`Redding, CA_lag11`
-7.864e+00
`Sacramento--Roseville--Arden-Arcade, CA_lag11`
1.459e+01
`Salinas, CA_lag11`
3.678e+01
`San Francisco-Oakland-Hayward, CA_lag11`
3.738e+01
`San Jose-Sunnyvale-Santa Clara, CA_lag11`
-3.638e+01
`Santa Cruz-Watsonville, CA_lag11`
-1.034e+01
`Stockton-Lodi, CA_lag11`
-9.449e+00
`Vallejo-Fairfield, CA_lag11`
-1.561e+01
`Visalia-Porterville, CA_lag11`
7.713e+00
`Yuba City, CA_lag11`
-6.513e+00
Arizona_lag11
-3.318e+01
California_lag11
2.465e+01
Nevada_lag11
-6.080e+00
`United States_lag12`
-1.206e+01
`Fresno, CA_lag12`
-6.219e+01
`Los Angeles-Long Beach-Anaheim, CA_lag12`
-2.576e+01
`Merced, CA_lag12`
-2.286e+01
`Modesto, CA_lag12`
-1.292e+01
`Redding, CA_lag12`
9.079e+00
`Sacramento--Roseville--Arden-Arcade, CA_lag12`
1.140e+02
`Salinas, CA_lag12`
-5.969e+00
`San Francisco-Oakland-Hayward, CA_lag12`
1.027e+00
`San Jose-Sunnyvale-Santa Clara, CA_lag12`
1.641e+01
`Santa Cruz-Watsonville, CA_lag12`
-2.113e+01
`Stockton-Lodi, CA_lag12`
-1.011e+01
`Vallejo-Fairfield, CA_lag12`
-8.060e-01
`Visalia-Porterville, CA_lag12`
1.729e+00
`Yuba City, CA_lag12`
1.685e+01
Arizona_lag12
1.671e+00
California_lag12
4.982e+01
Nevada_lag12
2.646e+00
`United States_lag13`
-4.913e+01
`Fresno, CA_lag13`
-2.563e+00
`Los Angeles-Long Beach-Anaheim, CA_lag13`
-1.839e+01
`Merced, CA_lag13`
1.408e+01
`Modesto, CA_lag13`
2.519e+00
`Redding, CA_lag13`
2.185e+01
`Sacramento--Roseville--Arden-Arcade, CA_lag13`
-8.234e+00
`Salinas, CA_lag13`
3.457e+00
`San Francisco-Oakland-Hayward, CA_lag13`
1.944e+01
`San Jose-Sunnyvale-Santa Clara, CA_lag13`
5.536e+01
`Santa Cruz-Watsonville, CA_lag13`
1.373e+01
`Stockton-Lodi, CA_lag13`
-6.499e+00
`Vallejo-Fairfield, CA_lag13`
-2.293e-03
`Visalia-Porterville, CA_lag13`
-1.105e+01
`Yuba City, CA_lag13`
2.215e+01
Arizona_lag13
1.448e+01
California_lag13
NA
Nevada_lag13
NA
`United States_lag14`
NA
`Fresno, CA_lag14`
NA
`Los Angeles-Long Beach-Anaheim, CA_lag14`
NA
`Merced, CA_lag14`
NA
`Modesto, CA_lag14`
NA
`Redding, CA_lag14`
NA
`Sacramento--Roseville--Arden-Arcade, CA_lag14`
NA
`Salinas, CA_lag14`
NA
`San Francisco-Oakland-Hayward, CA_lag14`
NA
`San Jose-Sunnyvale-Santa Clara, CA_lag14`
NA
`Santa Cruz-Watsonville, CA_lag14`
NA
`Stockton-Lodi, CA_lag14`
NA
`Vallejo-Fairfield, CA_lag14`
NA
`Visalia-Porterville, CA_lag14`
NA
`Yuba City, CA_lag14`
NA
Arizona_lag14
NA
California_lag14
NA
Nevada_lag14
NA
`United States_lag15`
NA
`Fresno, CA_lag15`
NA
`Los Angeles-Long Beach-Anaheim, CA_lag15`
NA
`Merced, CA_lag15`
NA
`Modesto, CA_lag15`
NA
`Redding, CA_lag15`
NA
`Sacramento--Roseville--Arden-Arcade, CA_lag15`
NA
`Salinas, CA_lag15`
NA
`San Francisco-Oakland-Hayward, CA_lag15`
NA
`San Jose-Sunnyvale-Santa Clara, CA_lag15`
NA
`Santa Cruz-Watsonville, CA_lag15`
NA
`Stockton-Lodi, CA_lag15`
NA
`Vallejo-Fairfield, CA_lag15`
NA
`Visalia-Porterville, CA_lag15`
NA
`Yuba City, CA_lag15`
NA
Arizona_lag15
NA
California_lag15
NA
Nevada_lag15
NA
`United States_lag16`
NA
`Fresno, CA_lag16`
NA
`Los Angeles-Long Beach-Anaheim, CA_lag16`
NA
`Merced, CA_lag16`
NA
`Modesto, CA_lag16`
NA
`Redding, CA_lag16`
NA
`Sacramento--Roseville--Arden-Arcade, CA_lag16`
NA
`Salinas, CA_lag16`
NA
`San Francisco-Oakland-Hayward, CA_lag16`
NA
`San Jose-Sunnyvale-Santa Clara, CA_lag16`
NA
`Santa Cruz-Watsonville, CA_lag16`
NA
`Stockton-Lodi, CA_lag16`
NA
`Vallejo-Fairfield, CA_lag16`
NA
`Visalia-Porterville, CA_lag16`
NA
`Yuba City, CA_lag16`
NA
Arizona_lag16
NA
California_lag16
NA
Nevada_lag16
NA
`United States_lag17`
NA
`Fresno, CA_lag17`
NA
`Los Angeles-Long Beach-Anaheim, CA_lag17`
NA
`Merced, CA_lag17`
NA
`Modesto, CA_lag17`
NA
`Redding, CA_lag17`
NA
`Sacramento--Roseville--Arden-Arcade, CA_lag17`
NA
`Salinas, CA_lag17`
NA
`San Francisco-Oakland-Hayward, CA_lag17`
NA
`San Jose-Sunnyvale-Santa Clara, CA_lag17`
NA
`Santa Cruz-Watsonville, CA_lag17`
NA
`Stockton-Lodi, CA_lag17`
NA
`Vallejo-Fairfield, CA_lag17`
NA
`Visalia-Porterville, CA_lag17`
NA
`Yuba City, CA_lag17`
NA
Arizona_lag17
NA
California_lag17
NA
Nevada_lag17
NA
`United States_lag18`
NA
`Fresno, CA_lag18`
NA
`Los Angeles-Long Beach-Anaheim, CA_lag18`
NA
`Merced, CA_lag18`
NA
`Modesto, CA_lag18`
NA
`Redding, CA_lag18`
NA
`Sacramento--Roseville--Arden-Arcade, CA_lag18`
NA
`Salinas, CA_lag18`
NA
`San Francisco-Oakland-Hayward, CA_lag18`
NA
`San Jose-Sunnyvale-Santa Clara, CA_lag18`
NA
`Santa Cruz-Watsonville, CA_lag18`
NA
`Stockton-Lodi, CA_lag18`
NA
`Vallejo-Fairfield, CA_lag18`
NA
`Visalia-Porterville, CA_lag18`
NA
`Yuba City, CA_lag18`
NA
Arizona_lag18
NA
California_lag18
NA
Nevada_lag18
NA
`United States_lag19`
NA
`Fresno, CA_lag19`
NA
`Los Angeles-Long Beach-Anaheim, CA_lag19`
NA
`Merced, CA_lag19`
NA
`Modesto, CA_lag19`
NA
`Redding, CA_lag19`
NA
`Sacramento--Roseville--Arden-Arcade, CA_lag19`
NA
`Salinas, CA_lag19`
NA
`San Francisco-Oakland-Hayward, CA_lag19`
NA
`San Jose-Sunnyvale-Santa Clara, CA_lag19`
NA
`Santa Cruz-Watsonville, CA_lag19`
NA
`Stockton-Lodi, CA_lag19`
NA
`Vallejo-Fairfield, CA_lag19`
NA
`Visalia-Porterville, CA_lag19`
NA
`Yuba City, CA_lag19`
NA
Arizona_lag19
NA
California_lag19
NA
Nevada_lag19
NA
`United States_lag20`
NA
`Fresno, CA_lag20`
NA
`Los Angeles-Long Beach-Anaheim, CA_lag20`
NA
`Merced, CA_lag20`
NA
`Modesto, CA_lag20`
NA
`Redding, CA_lag20`
NA
`Sacramento--Roseville--Arden-Arcade, CA_lag20`
NA
`Salinas, CA_lag20`
NA
`San Francisco-Oakland-Hayward, CA_lag20`
NA
`San Jose-Sunnyvale-Santa Clara, CA_lag20`
NA
`Santa Cruz-Watsonville, CA_lag20`
NA
`Stockton-Lodi, CA_lag20`
NA
`Vallejo-Fairfield, CA_lag20`
NA
`Visalia-Porterville, CA_lag20`
NA
`Yuba City, CA_lag20`
NA
Arizona_lag20
NA
California_lag20
NA
Nevada_lag20
NA
`United States_lag21`
NA
`Fresno, CA_lag21`
NA
`Los Angeles-Long Beach-Anaheim, CA_lag21`
NA
`Merced, CA_lag21`
NA
`Modesto, CA_lag21`
NA
`Redding, CA_lag21`
NA
`Sacramento--Roseville--Arden-Arcade, CA_lag21`
NA
`Salinas, CA_lag21`
NA
`San Francisco-Oakland-Hayward, CA_lag21`
NA
`San Jose-Sunnyvale-Santa Clara, CA_lag21`
NA
`Santa Cruz-Watsonville, CA_lag21`
NA
`Stockton-Lodi, CA_lag21`
NA
`Vallejo-Fairfield, CA_lag21`
NA
`Visalia-Porterville, CA_lag21`
NA
`Yuba City, CA_lag21`
NA
Arizona_lag21
NA
California_lag21
NA
Nevada_lag21
NA
`United States_lag22`
NA
`Fresno, CA_lag22`
NA
`Los Angeles-Long Beach-Anaheim, CA_lag22`
NA
`Merced, CA_lag22`
NA
`Modesto, CA_lag22`
NA
`Redding, CA_lag22`
NA
`Sacramento--Roseville--Arden-Arcade, CA_lag22`
NA
`Salinas, CA_lag22`
NA
`San Francisco-Oakland-Hayward, CA_lag22`
NA
`San Jose-Sunnyvale-Santa Clara, CA_lag22`
NA
`Santa Cruz-Watsonville, CA_lag22`
NA
`Stockton-Lodi, CA_lag22`
NA
`Vallejo-Fairfield, CA_lag22`
NA
`Visalia-Porterville, CA_lag22`
NA
`Yuba City, CA_lag22`
NA
Arizona_lag22
NA
California_lag22
NA
Nevada_lag22
NA
`United States_lag23`
NA
`Fresno, CA_lag23`
NA
`Los Angeles-Long Beach-Anaheim, CA_lag23`
NA
`Merced, CA_lag23`
NA
`Modesto, CA_lag23`
NA
`Redding, CA_lag23`
NA
`Sacramento--Roseville--Arden-Arcade, CA_lag23`
NA
`Salinas, CA_lag23`
NA
`San Francisco-Oakland-Hayward, CA_lag23`
NA
`San Jose-Sunnyvale-Santa Clara, CA_lag23`
NA
`Santa Cruz-Watsonville, CA_lag23`
NA
`Stockton-Lodi, CA_lag23`
NA
`Vallejo-Fairfield, CA_lag23`
NA
`Visalia-Porterville, CA_lag23`
NA
`Yuba City, CA_lag23`
NA
Arizona_lag23
NA
California_lag23
NA
Nevada_lag23
NA
`United States_lag24`
NA
`Fresno, CA_lag24`
NA
`Los Angeles-Long Beach-Anaheim, CA_lag24`
NA
`Merced, CA_lag24`
NA
`Modesto, CA_lag24`
NA
`Redding, CA_lag24`
NA
`Sacramento--Roseville--Arden-Arcade, CA_lag24`
NA
`Salinas, CA_lag24`
NA
`San Francisco-Oakland-Hayward, CA_lag24`
NA
`San Jose-Sunnyvale-Santa Clara, CA_lag24`
NA
`Santa Cruz-Watsonville, CA_lag24`
NA
`Stockton-Lodi, CA_lag24`
NA
`Vallejo-Fairfield, CA_lag24`
NA
`Visalia-Porterville, CA_lag24`
NA
`Yuba City, CA_lag24`
NA
Arizona_lag24
NA
California_lag24
NA
Nevada_lag24
NA
`United States_lag6_roll_3`
NA
`Fresno, CA_lag6_roll_3`
NA
`Los Angeles-Long Beach-Anaheim, CA_lag6_roll_3`
NA
`Merced, CA_lag6_roll_3`
NA
`Modesto, CA_lag6_roll_3`
NA
`Redding, CA_lag6_roll_3`
NA
`Sacramento--Roseville--Arden-Arcade, CA_lag6_roll_3`
NA
`Salinas, CA_lag6_roll_3`
NA
`San Francisco-Oakland-Hayward, CA_lag6_roll_3`
NA
`San Jose-Sunnyvale-Santa Clara, CA_lag6_roll_3`
NA
`Santa Cruz-Watsonville, CA_lag6_roll_3`
NA
`Stockton-Lodi, CA_lag6_roll_3`
NA
`Vallejo-Fairfield, CA_lag6_roll_3`
NA
`Visalia-Porterville, CA_lag6_roll_3`
NA
`Yuba City, CA_lag6_roll_3`
NA
Arizona_lag6_roll_3
NA
California_lag6_roll_3
NA
Nevada_lag6_roll_3
NA
lt_mtgg_glmnt <- linear_reg(penalty = 0.01) %>%
set_engine("glmnet") %>%
fit(`Sacramento--Roseville--Arden-Arcade, CA` ~ lubridate::month(month,label = T) + as.numeric(month)+.,
training(splits))
lt_mtgg_glmnt
parsnip model object
Call: glmnet::glmnet(x = maybe_matrix(x), y = y, family = "gaussian")
Df %Dev Lambda
1 0 0.00 0.70000
2 1 8.38 0.66820
3 1 16.02 0.63790
4 1 22.97 0.60890
5 1 29.31 0.58120
6 1 35.09 0.55480
7 1 40.35 0.52960
8 1 45.15 0.50550
9 1 49.52 0.48250
10 1 53.50 0.46060
11 1 57.13 0.43960
12 1 60.43 0.41970
13 1 63.45 0.40060
14 1 66.19 0.38240
15 2 68.72 0.36500
16 2 71.06 0.34840
17 2 73.18 0.33260
18 2 75.12 0.31750
19 2 76.89 0.30300
20 2 78.50 0.28930
21 3 79.97 0.27610
22 4 81.33 0.26360
23 4 82.57 0.25160
24 4 83.71 0.24010
25 4 84.74 0.22920
26 4 85.68 0.21880
27 4 86.53 0.20890
28 4 87.31 0.19940
29 4 88.03 0.19030
30 4 88.67 0.18170
31 5 89.27 0.17340
32 5 89.83 0.16550
33 6 90.35 0.15800
34 7 90.83 0.15080
35 7 91.28 0.14400
36 8 91.68 0.13740
37 8 92.05 0.13120
38 8 92.38 0.12520
39 8 92.69 0.11950
40 9 92.99 0.11410
41 10 93.26 0.10890
42 10 93.51 0.10400
43 10 93.75 0.09923
44 10 93.96 0.09472
45 11 94.15 0.09041
46 13 94.33 0.08630
47 13 94.50 0.08238
48 12 94.64 0.07864
49 12 94.78 0.07506
50 12 94.90 0.07165
51 12 95.01 0.06839
52 12 95.11 0.06529
53 12 95.21 0.06232
54 13 95.29 0.05949
55 13 95.37 0.05678
56 14 95.44 0.05420
57 14 95.51 0.05174
58 15 95.56 0.04939
59 15 95.62 0.04714
60 15 95.67 0.04500
61 15 95.72 0.04295
62 15 95.76 0.04100
63 15 95.80 0.03914
64 15 95.84 0.03736
65 15 95.87 0.03566
66 16 95.92 0.03404
67 16 95.96 0.03249
68 16 96.00 0.03102
69 16 96.04 0.02961
70 17 96.08 0.02826
71 18 96.11 0.02698
72 19 96.15 0.02575
73 19 96.20 0.02458
74 18 96.24 0.02346
75 17 96.28 0.02240
76 19 96.32 0.02138
77 20 96.37 0.02041
78 20 96.43 0.01948
79 20 96.47 0.01859
80 20 96.52 0.01775
81 21 96.56 0.01694
82 20 96.59 0.01617
83 21 96.63 0.01544
84 21 96.67 0.01474
85 21 96.70 0.01407
86 21 96.73 0.01343
87 21 96.76 0.01282
88 22 96.78 0.01223
89 22 96.81 0.01168
90 24 96.87 0.01115
91 27 96.96 0.01064
92 31 97.07 0.01016
93 31 97.19 0.00970
94 31 97.29 0.00925
95 31 97.39 0.00883
96 32 97.48 0.00843
97 32 97.56 0.00805
98 37 97.64 0.00768
99 38 97.71 0.00733
100 40 97.79 0.00700
lt_mtgg_xgboost <- boost_tree() %>%
set_engine("xgboost") %>%
set_mode("regression") %>%
fit(`Sacramento--Roseville--Arden-Arcade, CA` ~ lubridate::month(month,label = T) + as.numeric(month)+.,
training(splits))
lt_mtgg_xgboost
parsnip model object
##### xgb.Booster
raw: 27 Kb
call:
xgboost::xgb.train(params = list(eta = 0.3, max_depth = 6, gamma = 0,
colsample_bytree = 1, colsample_bynode = 1, min_child_weight = 1,
subsample = 1), data = x$data, nrounds = 15, watchlist = x$watchlist,
verbose = 0, nthread = 1, objective = "reg:squarederror")
params (as set within xgb.train):
eta = "0.3", max_depth = "6", gamma = "0", colsample_bytree = "1", colsample_bynode = "1", min_child_weight = "1", subsample = "1", nthread = "1", objective = "reg:squarederror", validate_parameters = "TRUE"
xgb.attributes:
niter
callbacks:
cb.evaluation.log()
# of features: 355
niter: 15
nfeatures : 355
evaluation_log:
Our linear model has extremely high rmse and we can see in our first plot, it predicts delinquency rates that are no where near the real world values and far outside the range of delinquency rates in the whole data set. This model is immediately ruled as a poor model. The xgboost and glmnet both have much more reasonable rmse with the xgboost having the lowest. The xgboost model also explains a much high amount of the variation in our dependent variable with an r squared value of 0.23. In our second plot we can see that the xgboost does predict much more closely to the actual test set values. The glmnet model predicts much higher that both the xgboost and the true values then drops to beneath the true value ending with predictions about 0.3 lower than the true value. The xgboost stays closer, following the slopes in the true values pretty closely, and at the end of the test set the xgboost model is almost right on the true values. The xgboost model is definitely the preferred model, but I would include all both the glmnet and the xgboost in any report.
model_compare <- modeltime_table(lt_mtgg_lm, lt_mtgg_glmnt, lt_mtgg_xgboost)
calibration <- model_compare %>%
modeltime_calibrate(testing(splits))
Warning: prediction from a rank-deficient fit may be misleading
calibration %>% modeltime_accuracy()
calibration %>%
modeltime_forecast(
new_data = testing(splits),
actual_data = late_mortgage_cleaned_model
) %>%
plot_modeltime_forecast()
Warning: prediction from a rank-deficient fit may be misleading
calibration[2:3,] %>%
modeltime_forecast(
new_data = testing(splits),
actual_data = late_mortgage_cleaned_model
) %>%
plot_modeltime_forecast()
NA
The linear model is still very poor, but in our second plot you can
see the glmnet model and the xgboost both predict January 2023
delinquency rates in the Sacramento area to be about the same, but
glmnet gets there through a little more of an upward trend from a lower
starting point. The xgboost model can handle NA values and
so can predict much further out, but it’s prediction is pretty
constant.
lt_mtgg_forecast <- calibration %>%
modeltime_refit(late_mortgage_cleaned_model %>%
drop_na()) %>%
modeltime_forecast(
actual_data = late_mortgage_cleaned_model %>%
drop_na(),
new_data = future_data
)
Warning: prediction from a rank-deficient fit may be misleading
lt_mtgg_forecast %>%
plot_modeltime_forecast()
lt_mtgg_forecast %>%
filter(.model_desc != "LM") %>%
plot_modeltime_forecast()
NA