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 |
.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 |
.show_summary |
If |
... |
Additional arguments passed to |
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
)