holtWinters() function
*Function type: Transformation
**Output data type:* Float
The Holt-Winters method predicts seasonally-adjusted values for the specified column
at the specified . For example, if interval
is six minutes (6m
) and n
is 3
, results include three predicted values six minutes apart.
Seasonality
delimits the length of a seasonal pattern according to interval
. If your interval
is two minutes (2m
) and seasonality
is 4
, then the seasonal pattern occurs every eight minutes or every four data points. Likewise, if your is two months (2mo
) and seasonality
is 4
, then the seasonal pattern occurs every eight months or every four data points. If data doesn’t have a seasonal pattern, set seasonality
to 0
.
Space values evenly in time
holtWinters()
expects values evenly spaced in time. To ensure holtWinters()
values are spaced evenly in time, the following rules apply:
- Data is grouped into time-based “buckets” determined by the
interval
. - If a bucket includes many values, the first value is used.
By default, holtWinters()
uses the first value in each time bucket to run the Holt-Winters calculation. To specify other values to use in the calculation, use:
- with selectors or
aggregateWindow()
Fitted model
The holtWinters()
function applies the Nelder-Mead optimization to include “fitted” data points in results when is set to true
.
Null timestamps
Null values
holtWinters()
treats null
values as missing data points and includes them in the Holt-Winters calculation.
The number of values to predict.
*Data type: Integer*
seasonality
The number of points in a season. Defaults to 0
.
*Data type: Integer*
The interval between two data points.
withFit
Return fitted data in results. Defaults to false
.
*Data type: Boolean*
The time column to use. Defaults to "_time"
.
*Data type: String*
column
The column to operate on. Defaults to "_value"
.
*Data type: String*
Examples
Use aggregateWindow to prepare data for holtWinters
from(bucket: "example-bucket")
|> range(start: -7y)
|> filter(fn: (r) => r._field == "water_level")
|> aggregateWindow(every: 379m, fn: first).