R: Visualize a Time Series Linear Regression Formula

plot_time_series_regression {timetk} | R Documentation

## Visualize a Time Series Linear Regression Formula

### Description

A wrapper for `stats::lm()` that overlays a linear regression fitted model over a time series, which can help show the effect of feature engineering

### Usage

    plot_time_series_regression(
      .data,
      .date_var,
      .formula,
      .show_summary = FALSE,
      ...
    )

### Arguments

`.data` | A `tibble` or `data.frame` with a time-based column
`.date_var` | A column containing either date or date-time values
`.formula` | A linear regression formula. The left-hand side of the formula is used as the y-axis value. The right-hand side of the formula is used to develop the linear regression model. See `stats::lm()` for details.
`.show_summary` | If `TRUE`, prints the `summary.lm()`. Only available for non-grouped data.
`...` | Additional arguments passed to `plot_time_series()`

### Details

`plot_time_series_regression()` is a scalable function that works with both ungrouped and grouped `data.frame` objects (and `tibbles`!).

Time Series Formula

The `.formula` uses `stats::lm()` to apply a linear regression, which is used to visualize the effect of feature engineering on a time series.

- The left-hand side of the formula is used as the y-axis value.

- The right-hand side of the formula is used to develop the linear regression model.

Interactive by Default

`plot_time_series_regression()` is built for exploration using:

- Interactive Plots: `plotly` (default) - Great for exploring!

- Static Plots: `ggplot2` (set `.interactive = FALSE`) - Great for PDF Reports

By default, an interactive `plotly` visualization is returned.

Scalable with Facets & Dplyr Groups

`plot_time_series_regression()` returns multiple time series plots using `ggplot2` facets:

- `group_by()` - If groups are detected, multiple facets are returned

- `plot_time_series_regression(.facet_vars)` - You can manually supply facets as well.

### Value

A static `ggplot2` plot or an interactive `plotly` plot

### Examples

    library(dplyr)
    library(lubridate)

    # ---- SINGLE SERIES ----
    m4_monthly %>%
        filter(id == "M750") %>%
        plot_time_series_regression(
            .date_var     = date,
            .formula      = log(value) ~ as.numeric(date) + month(date, label = TRUE),
            .show_summary = TRUE,
            .facet_ncol   = 2,
            .interactive  = FALSE
        )

    # ---- GROUPED SERIES ----
    m4_monthly %>%
        group_by(id) %>%
        plot_time_series_regression(
            .date_var    = date,
            .formula     = log(value) ~ as.numeric(date) + month(date, label = TRUE),
            .facet_ncol  = 2,
            .interactive = FALSE
        )

[Package timetk version 2.4.0 Index]