IP Library Granted Patent US 12,079,304
Granted Patent B1
US 12,079,304 · App. 17/246,228 · Granted Sep 3, 2024

Online data forecasting

Inventors: Abhinav Mishra (San Francisco, CA); Ram Sriharsha (San Francisco, CA); Sichen Zhong (San Francisco, CA)
Assignee: Splunk Inc.
G06F18/10G06F18/214G06Q10/04
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,079,304
App. No.
17/246,228
Granted
Sep 3, 2024
Kind
B1
Abstract

Embodiments of the present disclosure are directed to facilitating performing online data forecasting. In operation, data decomposition of an incoming data point is performed to determine a trend component associated with the incoming data point. Such a trend component, and previous trend components, can be used to determine a trend component expected for a data point subsequent to the incoming data point. A seasonality component expected for the data point subsequent to the incoming data point can be identified, for example, based on a seasonality component associated with a previous corresponding data point. Thereafter, the expected trend and seasonality components can be used to predict the data point subsequent to the incoming data point. Such a data prediction can be performed in an online processing manner such that a subsequent data point is not used to decompose the incoming data point or forecast the data point.

Claims (67)

1. A computer-implemented method comprising:

obtaining an incoming data point of a time series data set;

performing, via an online data processing engine, decomposition of the incoming data point to determine a first trend component associated with the incoming data point;

determining, via the online data processing engine, a second trend component expected for a data point subsequent to the incoming data point based on a set of trend components including the first trend component and trend components associated with previous data points of the time series data set;

identifying, via the online data processing engine, a seasonality component expected for the data point subsequent to the incoming data point based on a seasonality component associated with a previous corresponding data point;

predicting, via the online data processing engine, the data point subsequent to the incoming data point using the second trend component and the seasonality component, wherein predicting the data point is performed in real time upon obtaining the incoming data point such that a subsequent data point of the time series data set is not used to decompose the incoming data point or forecast the data point; and

providing the predicted data point subsequent to the incoming data point for analysis or display.

2. The computer-implemented method of claim 1 , wherein the incoming data point comprises an observed data point provided by a data source.

3. The computer-implemented method of claim 1 , wherein the decomposition of the incoming data point includes an iterative process of estimating the first trend and a first seasonality, wherein at least a portion of the iterative process performs the decomposition based on a particular set of previous data points, and wherein the iterative process of decomposing the incoming data point is performed in real time upon obtaining the incoming data point.

4. The computer-implemented method of claim 1 , wherein the decomposition of the incoming data point includes an iterative process of estimating the first trend and a first seasonality, and wherein the decomposition comprises estimating multiple trends and multiple seasonalities in an iterative manner.

5. The computer-implemented method of claim 1 , wherein the decomposition of the incoming data point includes an iterative process of estimating the first trend and a first seasonality, and wherein the iterative process comprises:

estimating an initial trend for the incoming data point based on a particular set of previous data points;

removing the initial trend from the incoming data point to generate a detrended data point;

estimating an initial seasonality for the incoming data point using the detrended data point and an initial seasonality associated with the particular set of previous data points;

estimating an intermediate trend based on the initial seasonality for the incoming data point and the initial seasonality associated with the particular set of previous data points;

removing the initial trend and the intermediate trend from the incoming data point to generate a second detrended data point;

estimating the first seasonality for the incoming data point using the second detrended data point;

removing the first seasonality from the incoming data point to generate a deseasoned data point; and

estimating the first trend for the incoming data point based on the deseasoned data point.

6. The computer-implemented method of claim 1 ,

obtaining a forecasting parameter; and

using the forecasting parameter to identify a number of subsequent data points to predict.

7. The computer-implemented method of claim 1 , wherein determining the second trend component is performed via linear regression of the set of trend components.

8. The computer-implemented method of claim 1 , wherein determining the second trend component is performed via linear regression of the set of trend components, and wherein the set of trend components correspond with a set of data points occurring within a season indicated by a seasonality parameter.

9. The computer-implemented method of claim 1 , wherein the previous corresponding data point comprises a previous data point within the time series data set that has a same seasonal period.

10. The computer-implemented method of claim 1 , wherein identifying the seasonality component expected for the data point subsequent to the incoming data point comprises:

determining a seasonal period associated with the data point subsequent to the incoming data point;

identifying the previous corresponding data point based on the previous corresponding data point having a same seasonal period as the seasonal period associated with the data point subsequent to the incoming data point; and

identifying the seasonality component associated with the previous corresponding data point.

11. The computer-implemented method of claim 1 , wherein the set of trend components comprises a number of trend components corresponding with a seasonal parameter.

12. The computer-implemented method of claim 1 , wherein the data point subsequent to the incoming data point is predicted in association with ingesting the incoming data point.

13. The computer-implemented method of claim 1 , wherein identifying the seasonality component expected for the data point subsequent to the incoming data point comprises:

determining a seasonal period associated with the data point subsequent to the incoming data point;

referencing an index having an aggregate seasonality component corresponding with the seasonal period, wherein the aggregate seasonality component comprises a running average of seasonality components, including the seasonality component associated with the previous corresponding data point, associated with the seasonal period; and

using the aggregate seasonality component corresponding with a seasonal period as the seasonality component expected for the data point subsequent to the incoming data point.

14. The computer-implemented method of claim 1 further comprising:

determining a third trend component expected for a second data point subsequent to the incoming data point based on the set of trend components including the first trend component and trend components associated with previous data points of the time series data set;

identifying a second seasonality component expected for the second data point subsequent to the incoming data point based on a second seasonality component associated with a second previous corresponding data point; and

predicting the second data point subsequent to the incoming data point using the third trend component and the seasonality component.

15. The computer-implemented method of claim 1 further comprising:

obtaining a second incoming data point of the time series data set; and

predicting a data point subsequent to the second incoming data point using a forecasted trend component expected for the data point subsequent to the second incoming data point and a seasonality component expected for the data point subsequent to the second incoming data point, wherein the data point subsequent to the second incoming data point is predicted without performing further decomposition operations in association with the previous data points of the time series data set.

16. One or more non-transitory computer-readable storage media having instructions stored thereon, wherein the instructions, when executed by a computing device, cause the computing device to:

obtain an incoming data point of a time series data set;

perform, via an online data processing engine, decomposition of the incoming data point to determine a first trend component associated with the incoming data point;

determine, via the online data processing engine, a second trend component expected for a data point subsequent to the incoming data point based on a set of trend components including the first trend component and trend components associated with previous data points of the time series data set;

identify, via the online data processing engine, a seasonality component expected for the data point subsequent to the incoming data point based on a seasonality component associated with a previous corresponding data point;

predict, via the online data processing engine, the data point subsequent to the incoming data point using the second trend component and the seasonality component, wherein predicting the data point is performed in real time upon obtaining the incoming data point such that a subsequent data point of the time series data set is not used to decompose the incoming data point or forecast the data point; and

provide the predicted data point subsequent to the incoming data point for analysis or display.

17. A computing device comprising:

one or more processors; and

a memory coupled with the one or more processors, the memory having instructions stored thereon, wherein the instructions, when executed by the one or more processors, cause the computing device to:

obtain an incoming data point of a time series data set;

perform, via an online data processing engine, decomposition of the incoming data point to determine a first trend component associated with the incoming data point;

determine, via the online data processing engine, a second trend component expected for a data point subsequent to the incoming data point based on a set of trend components including the first trend component and trend components associated with previous data points of the time series data set;

identify, via the online data processing engine, a seasonality component expected for the data point subsequent to the incoming data point based on a seasonality component associated with a previous corresponding data point;

predict, via the online data processing engine, the data point subsequent to the incoming data point using the second trend component and the seasonality component, wherein predicting the data point is performed in real time upon obtaining the incoming data point such that a subsequent data point of the time series data set is not used to decompose the incoming data point or forecast the data point; and

provide the predicted data point subsequent to the incoming data point for analysis or display.

18. The computing device of claim 17 , wherein identifying the seasonality component expected for the data point subsequent to the incoming data point comprises:

determining a seasonal period associated with the data point subsequent to the incoming data point;

referencing an index having an aggregate seasonality component corresponding with the seasonal period, wherein the aggregate seasonality component comprises a running average of seasonality components, including the seasonality component associated with a previous corresponding data point, associated with the seasonal period; and

using the aggregate seasonality component corresponding with the seasonal period as the seasonality component expected for the data point subsequent to the incoming data point.

19. The computing device of claim 17 , wherein the instructions further cause the computing device to:

determine a third trend component expected for a second data point subsequent to the incoming data point based on the set of trend components including the first trend component and trend components associated with previous data points of the time series data set;

identify a second seasonality component expected for the second data point subsequent to the incoming data point based on a second seasonality component associated with a second previous corresponding data point; and

predict the second data point subsequent to the incoming data point using the third trend component and the seasonality component.

20. The computing device of claim 17 , wherein the set of trend components comprises a number of trend components corresponding with a seasonal parameter.

Assignments (4)
CHANGE OF NAME Recorded Jul 22, 2025
From: SPLUNK INC.
To: SPLUNK LLC
Reel/Frame 072170/0599 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 22, 2025
From: SPLUNK LLC
To: CISCO TECHNOLOGY, INC.
Reel/Frame 072173/0058 →
CHANGE OF NAME Recorded Jan 6, 2025
From: SPLUNK INC.
To: SPLUNK LLC
Reel/Frame 069825/0782 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 17, 2021
From: MISHRA, ABHINAV; SRIHARSHA, RAM; ZHONG, SICHEN
To: SPLUNK INC.
Reel/Frame 056264/0173 →
Continuity (2)
Continuation In Part 17069693 · Oct 13, 2020
Provisional Application 63064344 · Aug 11, 2020
Cited By (3)
US 12,367,693 US 12,511,576 US 12,613,875