This disclosure relates generally to forecasting methods and, more particularly, to forecasting methods for forecasting demand for a target item.
Organizations, such as those that produce, buy, sell, and/or lease products, may desire to forecast information concerning a product. For example, an organization that manufactures one or more products may desire to accurately forecast the demand for the product, the organization's production schedule for the product, and/or a supplier's delivery schedule for subcomponents of the product. Moreover, when developing forecast information for a product, an organization may desire to have the forecast information take into account one or more business goals related to the organization.
U.S. Pat. No. 7,213,007 (the '007 patent) to Grichnik is directed to forecasting characteristics of a product using a genetic algorithm. In particular, the '007 patent discloses a forecasting method including determining one or more equations associated with forecasted characteristics of a target item, implementing a genetic algorithm to determine data values for a plurality of variables in the one or more equations, and forecasting the characteristics of the target item by solving the one or more equations using the determined data values for the variables. While the '007 patent may help to generate statistically accurate representations of the historical data, the forecasts generated by the system of the '007 patent may not always align with a business's goals and strategies.
The disclosed methods and systems are directed to solving one or more of the problems set forth above and/or other problems of the prior art.
In one aspect, the present disclosure is directed to a computer-implemented method. The method may include collecting a plurality of historical demand streams. Each historical demand stream may include a time series of historical demand data for a target item at a product distribution node in a supply chain. The method may also include constructing a model tree for the plurality of historical demand streams based on a plurality of forecasting models. The method may further include forecasting a future demand stream of a target item to be distributed by a product distribution node by using a forecasting model that is associated with a specific subgroup that includes a historical demand stream of the target item at the product distribution node.
In another aspect, the present disclosure is directed to a computer-implemented method. The method may include collecting a plurality of historical demand streams. Each historical demand stream may include a time series of historical demand data for a product at a product distribution node in a supply chain over N number of historical time periods, with N being an integer greater than 1. The method may also include identifying a plurality of observation windows within each historical time period, determining, for each one of the 1st to (N−1)th historical time periods, a set of confidence intervals (or “Z scores”) respectively corresponding to the observation windows, and determining a set of average Z scores based on the sets of Z scores determined for the 1st to (N−1)th historical time periods. The method may further include forecasting a future demand stream of a target item to be distributed by a product distribution node over (N+1)th time period by using the sets of average Z scores determined for the 1st to (N−1)th historical time periods, the set of average Z scores, and a historical demand stream of the target item at the product distribution node.
In yet another aspect, the present disclosure is directed to a computer-implemented method. The method may include collecting a plurality of historical demand streams. Each historical demand stream may include a time series of historical demand data for a product at a product distribution node in a supply chain over N number of historical time periods, with N being an integer greater than 1. The method may also include developing a plurality of forecasting models based on the historical demand data over the 1st through (N−1)th historical time periods, and determining, for each one of sub periods in the Nth historical time period, a set of weighting values for the forecasting models by implementing a genetic algorithm. The method may further include forecasting a future demand stream of a target item to be distributed by a product distribution node over (N+1)th time period by using the sets of weighting values and the forecasting models.
Forecasting module 105 may be a computing system that performs various functions consistent with certain embodiments. In one embodiment, forecasting module may be configured to forecast the demand for selected products based on historical production activities or other historical data, such as product history data. Forecasting module 105 may include a processor 110, a memory module 120, and an interface module 130. Processor 110 may include one or more processor devices known in the art, such as a microprocessor, microcontroller, laptop computer, desktop computer, workstation, mainframe, etc. Memory module 120 may include one or more storage devices configured to store information that is used by processor 110 and/or other entities internal and external to forecasting module 105. For example, memory module 120 may store one or more characteristic forecast programs that, when executed, enable processor 110 to forecast characteristics (e.g., demand) of a target item (e.g., a product), consistent with disclosed embodiments. Interface module 130 may be one or more devices that facilitate the transfer of information between forecasting module 105 and external components, such as database 140 and/or one or more user devices (not shown).
A product, as used herein, may represent any type of physical good that is designed, developed, manufactured, and/or delivered by a source, such as, for example, a manufacturer or a distributor. The product may also represent replacement parts and/or service parts for existing products, components, or sub-components. Moreover, those skilled in the art will appreciate that a product may represent other types of goods, such as a non-physical object (e.g., stocks, bonds, financial commodities, etc.) that may be generated, obtained, delivered, bought, and/or sold. A target item, as used herein, may represent a tangible object, such as a product. Alternatively, a target item may represent a non-physical product (e.g., stocks, bonds, financial commodities, etc.) or other non-tangible items, such as mathematical representations (e.g., vibration analysis data). Although the forecasting processes discussed below will be described with respect to a product manufactured by a business entity, those skilled in the art will appreciate that the following description may apply to any type of target item.
Database 140 may represent one or more storage devices that store information used by forecasting module 105 to perform certain functions consistent with disclosed embodiments. In one embodiment, database 140 stores product history data. Product history data stored in database 140 may include previous production data for a product, such as a number of products demanded, ordered, sold, manufactured, and/or shipped over a period of time (T) in selected intervals (e.g., days, weeks, months, quarters, years, etc.). Further, the product history data may represent the number of units of the product available during a certain stage of manufacture, such as a molding stage, an engine placement stage, etc. Product history data stored in database 140 may also include historical data regarding components of products, such as data indicating a number of components for a product that have been received from a supplier at selected time intervals. The selected intervals of time t may represent, for example, equal periods of time over which the products are monitored.
Database 140 may also store financial data related to products. For example, database 140 may store information such as demand data for various products at various product distribution centers. Database 140 may also store information such as the sales price per unit, production cost per unit, profit margin per unit, unit carrying cost, etc., related to one or more products. Moreover, database 140 may store information related to inventory levels of one or more products, such as a current inventory level, maximum inventory level, minimum inventory level, etc., of one or more products. Further, database 140 may store any other information that may be used by forecasting module 105 in accordance with one or more of the embodiments discussed below.
Network 150 shown in
Although
In certain embodiments, forecasting module 105 may be an end-user device. In other embodiments, forecasting module 105 and database 140 may be connected to one or more end-user devices (not shown) via network 150. In these embodiments, an end-user at an end-user device may send data, such as product history data, financial data, inventory data, etc., to forecasting module 105 and/or database 140 via network 150. For example, the end-user device may include a web browser and/or other application that enables it to send information to forecasting module 105 and/or database 140 and request forecast data from forecasting module 105. Forecasting module 105 may then determine forecast data based on the data provided by the end-user device, e.g., according to one or more embodiments discussed below, and may then send the forecast data to the end-user device, e.g., via the browser or other application. According to these embodiments, the processing performed by forecasting module 105, according to one or more embodiments discussed below, may be performed “in the cloud” with respect to the end-user, and then the results of the processing (e.g., the forecast data representing a forecast of a Characteristic of a target item) sent back to the end-user. The owner or administrator of forecasting module 105 may charge a fee of some sort to the one or more end-users for using the forecasting services provided by forecasting module 105.
In certain embodiments, exemplary characteristic forecasting system 100 may be configured to develop various forecasting models based on a given set of historical data regarding characteristics of one or more products at different product distribution nodes of a supply chain, and to forecast characteristics of the one or more products at a given time in the future by using the developed forecasting models. The types of the various forecasting models may include a model tree model, a linear regression model, a neural network model, and a bootstrapping model. The neural network model may be a perceptron model, a time series recurrent network model, or an Auto Resonance Theory Mapping (ARTMAP) model.
Next, forecasting module 105 may construct a model tree for the plurality of historical demand streams (step 220). The model tree may include a root node, a plurality of intermediate nodes, and a plurality of terminal nodes. The model tree may be branched from the root node through several levels of intermediate nodes to eventually reach a plurality of terminal nodes. Each terminal node may be associated with a subgroup of historical demand streams and a forecasting model that has the best overall performance against one or more business goals on the subgroup of historical demand streams amongst a plurality of forecasting models. In order to determine the best overall performance, forecasting module 105 may evaluate the overall performance of each one of a plurality of candidate forecasting models, and select a forecasting model that produces the best overall performance from among the candidate forecasting models. The one or more business goals may include profit, return on net assets (RONA), inventory turns, service level, or any combination of these business goals. The process of constructing the model tree and determining the best overall performance will be described in detail with reference to
Once the model tree is constructed, forecasting module 105 may forecast a future demand stream of a product at a product distribution node by referring to the model tree (step 230). Forecasting module 105 may look for a terminal node in the model tree that is associated with a specific subgroup that includes a historical demand stream that corresponds to the product and the product distribution node. Forecasting module 105 may then retrieve a forecasting model that is associated with the terminal node. Afterwards, forecasting module 105 may use the forecasting model to forecast the future demand stream.
According to process 300, forecasting module 105 may begin with assigning a root node 402 for the plurality of historical demand streams collected in step 210 (step 302). Referring to
Then, forecasting module 105 may process root node 402. Specifically, forecasting module 105 may develop a plurality of candidate forecasting models based on the 1000 historical demand streams in root node 402 (step 304). For example, the types of the candidate forecasting models may include a linear regression model, a neural network model, and a bootstrapping model. Forecasting module 105 may develop the candidate forecasting models by determining various variables within each candidate forecasting models. In addition, each one of the historical demand streams may include historical demand data over Year 1 through Year 4. In such case, forecasting module 105 may develop the candidate forecasting models based on the historical demand streams over Year 1 through Year 3 evaluated at appropriate time intervals within this range (e.g. days, weeks, months, or other subdivisions).
Forecasting module 105 may evaluate the overall performance of each one of the candidate forecasting models against one or more business goals (step 306). For example, forecasting module 105 may evaluate the overall performance against service level as the business goal. In such case, forecasting module 105 may calculate a plurality of individual service levels SLi each corresponding to a combination of a historical demand stream and a candidate forecasting model. In order to calculate an individual service level SLi, forecasting module 105 may calculate demands for a product that corresponds to a specific historical demand stream over Year 4 by using a candidate forecasting model, and then calculate the individual service level to be achieved in Year 4 based on the calculated demands. Forecasting module 105 may then calculate, for each candidate forecasting model, an average service level SLavg of the individual service levels SLi corresponding to the candidate forecasting model. As a result, forecasting module 105 may obtain an average service level as the overall performance of each one of the candidate forecasting models. In some embodiments, forecasting module 105 may evaluate the overall performance of each candidate forecasting model based on a difference between actual demands for each product over Year 4 and calculated demands for each product over Year 4 as calculated by using the candidate forecasting model.
After evaluating the overall performance of each one of the candidate forecasting models, forecasting module 105 may select a forecasting model that has the best overall performance to be associated with root node 402 (step 308). Referring to
Once the linear regression model is selected as the forecasting model associated with root node 402, forecasting module 105 may partition root node 402 into intermediate nodes 404 and 406 depending on different levels of performance of the linear regression model on individual demand streams as illustrated in
Once root node 402 is partitioned into intermediate nodes 404 and 406, forecasting module 105 may process each one of intermediate nodes 404 and 406 in a manner similar to steps 302 through 310, until a certain stopping criteria is satisfied. To begin with, forecasting module 105 may select one of intermediate nodes 404 and 406 to process (step 312). For example, forecasting module 105 may select intermediate node 404 for the following process steps in
In step 316, forecasting module 105 may develop a plurality of candidate forecasting models based on the historical demand streams in intermediate node 404. For example, intermediate node 404 includes 650 historical demand streams, and therefore forecasting module 105 may develop a plurality of candidate forecasting models based on the 650 historical demand streams over Year 1 through Year 3. The types of the newly developed candidate forecasting models may or may not be the same as the ones previously developed for root node 402. However, in cases where the model type in node 404 is the same as the model type in node 402, the variable values in the candidate forecasting model will be different because node 404 captures a different subsample of the data used in node 402.
Then, forecasting module 105 may evaluate the overall performance of each one of the newly developed candidate forecasting models (step 318). For example, forecasting module 105 may calculate a plurality of individual service levels each corresponding to a combination of a historical demand stream and a newly developed candidate forecasting model. Forecasting module 105 may then calculate, for each newly developed candidate forecasting model, an average service level SLavg as the overall performance of the newly developed candidate forecasting models on intermediate node 404.
After evaluating the overall performance of each one of the newly developed candidate forecasting models, forecasting module 105 may select a forecasting model that has the best overall performance among the newly developed candidate forecasting models (step 320). Referring to
Then, forecasting module 105 may determine whether the overall performance of the selected newly developed forecasting model improves over that of the previously developed forecasting model (step 322). For example, forecasting module 105 may compare the average service level of the newly developed linear regression model that is calculated in step 318 with the average service level of the previously developed linear regression model that is calculated in step 310. If the overall performance of the newly developed linear regression model does not improve by more than a specified threshold value (step 322, Yes), forecasting module 105 may determine that intermediate node 404 has been processed, and may label intermediate node 404 as a terminal node (step 328), and move on to the next intermediate node, i.e., intermediate node 406. If the overall performance of the newly developed linear regression model improves over the previously developed linear regression model by more than the threshold value (step 322, No), forecasting module 105 may continue to step 324.
In step 324, forecasting module 105 may determine if the overall performance of the selected newly developed forecasting model meets a certain quality criteria. For example, the quality criteria may be set as a service level of 90%. If the average service level of the newly developed linear regression model exceeds 90% (step 324, Yes), forecasting module 105 may determine that intermediate node 404 has been processed, and may label intermediate node 404 as a terminal node (step 328), and move on to the next intermediate node, i.e., intermediate node 406. If the average service level of the newly developed linear regression model is below 90% (step 324, No), forecasting module 105 may associate the newly developed linear regression model with intermediate node 404, and may continue to step 326.
In step 326, forecasting module 105 may partition intermediate node 404 into intermediate nodes depending on different levels of performance of the selected newly developed forecasting model on individual demand streams, as illustrated in
Afterwards, forecasting module 105 may determine if there is any unprocessed intermediate node (step 330). For example, forecasting module 105 may determine that intermediate nodes 406, 408, and 410 are unprocessed. In such case (step 330, Yes), forecasting module 105 may select one of intermediate nodes 406, 408, and 410 for processing (step 332). Then, forecasting module 105 may repeat the process for each intermediate node to generate nodes 412 through 422 as illustrated in
If all of the intermediate nodes have been processed (step 330, No), forecasting module 105 may determine that the construction of model tree 400 has been completed. Then, process 300 may stop.
Although three types of forecasting models were developed in the example of
Next, forecasting module 105 may identify a plurality of observation windows within each historical time period (step 504). For example, forecasting module 105 may identify four observation windows within each year. The four observation windows may be from January through March, from January through June, from January through September, and from January to December, respectively. In some embodiments, forecasting module 105 may identify the observation windows based on user input, and the user identities the observation windows by inspecting the historical demand streams over N number of historical time period. Alternatively, in some embodiments, forecasting module 105 may identify the observations windows by implementing a genetic algorithm to identify a preferred observation window length and starting time period.
Then, forecasting module 105 may determine, for each combination of a group of historical demand streams and a historical time period, a set of confidence intervals (or “Z scores” as known in the art) respectively corresponding to the observation windows (step 506). For example, forecasting module 105 may determine a set of Z scores for a group of historical demand streams and the (N−1)th historical time period based on sets of Z scores for the 1st through (N−2)th historical time periods. A detailed description of determining the Z scores for each group of historical demand streams will be explained with reference to
After determining the Z scores, forecasting module 105 may determine a set of average Z scores relevant to a particular observation window (step 508). Forecasting module 105 may calculate, for each observation window, an average Z score by averaging the Z scores of corresponding to the observation window for the 1st through (N−1)th historical time periods.
Finally, forecasting module 105 may forecast a future demand stream of a product at a product distribution node over (N+1)th time period based on the sets of the average Z scores and a historical demand stream of the product at the product distribution node over 1st through Nth historical time periods (step 510). Then, process 500 is completed.
Forecasting module 105 may then determine, for the entire set of historical demand streams collected in step 602, a set of Z scores for the corresponding observation windows in Year 1 based on calculated demands over the observation windows in Year 2 and actual demands over the observation windows in Year 2 (step 606). For example, forecasting module 105 may first build bootstrapping samples for each one of the observation windows in Year 1. For example, for the 3-month long observation window in Year 1, an i-th historical demand stream may include a data set of (xi(Jan), xi(Feb), xi(Mar)), wherein xi(Jan), xi(Feb), xi(Mar) respectively represent the demand quantities for a corresponding product at a corresponding product distribution center in January, February, and March of Year 1. Forecasting module 105 may build a predetermined number, e.g., 100, of bootstrapping samples by repeatedly sampling with replacement from the data sets of (x1(Jan), x1(Feb), x1(Mar)), through (xn(Jan), xn(Feb), xn(Mar)), where n represents the total number of the historical demand streams collected in step 602. For example, the resamples may include (x1(Jan), x1(Jan), x1(Feb)), (x1 (Feb), x1(Jan), x1(Mar)), (x1(Mar), x1(Mar), x1(Mar)), (x1(Feb), x1(Mar), x12), etc., and the equivalent resamples of additional historical demand streams. Forecasting module 105 may then determine a mean M(3-mon,Yr1) and a standard deviation σ(3-mon,Yr1) of the 100 bootstrapping samples built for the 3-month long observation window in Year 1 over the collection of historical demand streams. M(3-mon,Yr1) represents a mean demand for the product over the 3-month long Observation window in Year 1. σ(3-mon,Yr1) represents a standard deviation of the demand for the product over the 3-month long observation window in Year 1. Similarly, forecasting module 105 may determine M(6-mon,Yr1), M(9-mon,Yr1), M(12-mon,Yr1), and σ(6-mon,Yr1), σ(9-mon,Yr1), σ(12-mon,Yr1) of the demand for the product over the 6-, 9-, and 12-month long observation windows in Year 2.
Afterwards, forecasting module 105 may determine the Z scores for Year 1 by implementing a genetic algorithm. Forecasting module 105 may first create a population table consisting of a plurality of sets of candidate Z scores, each set including Z3(Yr1), Z6(Yr1), Z9(Yr1), and Z12(Yr1) respectively corresponds to the 3-, 6-, 9-, and 12-month long observation windows in Year 1. The initial values of the candidate Z scores may be randomly generated. Forecasting module 105 may then calculate demands for the entire set of products over the 3-, 6-, 9-, and 12-month long observation windows in Year 2 by using each set of the candidate Z scores. The calculated demands over the 3-, 6-, 9-, and 12-month long observation windows in Year 2 may be represented by:
Calculated Demand(3-mon,Yr2)=[M(3-mon,Yr1)+Z3(Yr1)*σ(3-mon,Yr1)]*3
Calculated Demand(6-mon,Yr2)=[M(6-mon,Yr1)+Z6(Yr1)*σ(6-mon,Yr1)]*6
Calculated Demand(9-mon,Yr2)=[M(9-mon,Yr1)+Z9(Yr1)*σ(9-mon,Yr1)]*6
Calculated Demand(12-mon,Yr2)=[M(12-mon,Yr1)+Z12(Yr1)*σ(12-mon,Yr1)]*12
Forecasting module 105 may evolve the plurality of sets of candidate Z scores until a convergence criterion is satisfied. The convergence criterion may be satisfied when an improvement of the performance of the candidate Z scores over that of the previous candidate Z scores falls below a threshold, or when the performance of the best set of candidate Z scores meets a certain criterion. Forecasting module 105 may evaluate the performance of each set of the candidate Z scores based on one or more business goal values to be achieved over the observation windows in Year 2 calculated by using the calculated demands over the observation windows in Year 2. When forecasting module 105 determines that the convergence criterion is satisfied, forecasting module 105 may select the best set of Z scores from the sets of candidate Z scores as the Z scores for the observation windows in Year 1. The best set of Z scores may be one that produces the highest fitness value, which may be defined as the most desirable business goal value.
Forecasting module 105 may then determine, for the entire set of historical demand streams, a set of Z scores for the corresponding observation windows in Year 2 based on calculated demands over the observation windows in Year 3 and actual demands over the observation windows in Year 3 (step 608). The calculated demands over the observation windows in Year 3 may be determined as an average of the calculated demands over the corresponding observation windows in Year 1 and Year 2. Therefore, the calculated demands over the 3-months observation window in Year 3 may be represented by:
Calculated Demand(3-mon,Yr3)={[M(3-mon,Yr1)+Z3(Yr1)*σ(3-mon,Yr1)]*3+[M(3-mon,Yr2)+Z3(Yr2)*σ(3-mon,Yr2)]*3}/2
where Z3(Yr1) represents the Z score for the 3-month long observation window in Year 1 that has been determined in step 606; Z3(Yr2) represents the Z score for the 3-month long observation window in Year 2 to be determined; M(3-mon,Yr2) represents a mean demand for the product over the 3-month long observation window in Year 2 and may be determined based on bootstrapping samples built for the 3-month long observation window in Year 2; and σ(3-mon,Yr2) represents a standard deviation of the demand for the product over the 3-month long observation window in Year 2 and may be determined based on the bootstrapping samples built for the 3-month long observation window in Year 2. The calculated demands over the 6-, 9-, and 12-month long observation window in Year 3 may be determined similarly. Forecasting module 105 may then determine the Z scores for the observation windows in Year 2 by implementing the genetic algorithm similar to step 606.
Forecasting module 105 may determine, for the entire set of historical demand streams, a set of Z scores for the corresponding observation windows in Year 3 based on calculated demands over the observation windows in Year 4 and actual demands over the observation windows in Year 4 (step 610). The calculated demands over the observation windows in Year 4 may be determined as an average of the calculated demands over the corresponding observation windows in Year 1, Year 2, and Year 3. Therefore, the calculated demands over the 3-months observation window in Year 3 may be represented by:
Calculated Demand(3-mon,Yr4)={[M(3-mon,Yr1)+Z3(Yr1)*σ(3-mon,Yr1)]*3+[M(3-mon,Yr2)+Z3(Yr2)*σ(3-mon,Yr2)]*3+[M(3-mon,Yr3)+Z3(Yr3)*σ(3-mon,Yr3)]*3}/3
where Z3(Yr1) and Z3(Yr2) represent the Z scores for the 3-month long observation window in Year 1 and Year 2 determined in steps 606 and 608, respectively; Z3(Yr3) represents the Z score for the 3-month long observation window in Year 3 to be determined; M(3-mon,Yr3) represents a mean demand for the product over the 3-month long observation window in Year 3 and may be determined based on bootstrapping samples built for the 3-month long observation window in Year 3; and σ(3-mon,Yr3) represents a standard deviation of the demand for the product over the 3-month long observation window in Year 3 and may be determined based on the bootstrapping samples built for the 3-month long observation window in Year 3. The calculated demands over the 6-, 9-, and 12-month long observation windows in Year 4 may be determined similarly. Forecasting module 105 may then determine the Z scores for the observation windows in Year 3 by implementing the genetic algorithm similar to step 606.
After forecasting module 105 determines the sets of Z scores for each of Year 1 through Year 3, forecasting module 105 may determine a set of average Z scores (step 612). For example, the average Z score Z3avg for the 3-month long observation window may be determined by an average of the Z scores for the 3-month long observation window for Year 1 through Year 3. That is,
Z3avg=[Z3(Yr1)+Z3(Yr2)+Z3(Yr3)]/3
The average Z scores Z6avg, Z9avg, and Z12avg may be determined similarly,
Finally, forecasting module 105 may forecast a future demand for a product over Year 5 over the observation windows in Year 5 based on the set of average Z scores determined for each one of Year 1 through Year 3 and a historical demand stream of the product over Year 1 through Year 4 (step 614). For example, the forecasted future demand over the 3-month observation window in Year 5 may be represented by:
Future Demand(3-mon,Yr5)={[M(3-mon,Yr1)+Z3(Yr1)*(3-mon,Yr1)]*3+[M(3-mon,Yr2)+Z3(Yr2)*σ(3-mon,Yr2)]*3+[M(3-mon,Yr3)+Z3(Yr3)*σ(3-mon,Yr3)]*3+[M(3-mon,Yr4)+Z3avg*σ(3-mon,Yr4)]*3}/4
wherein Z3(Yr1), Z3(Yr2), and Z3(Yr3) represent the scores for the 3-month long observation window in Year 1, Year 2, and Year 3 determined in steps 608 through 610, respectively; M(3-mon,Yr4) represents a mean demand for the product over the 3-month long observation window in Year 4 and may be determined based on bootstrapping samples built for the 3-month long observation window in Year 4; and σ(3-mon,Yr4) represents a standard deviation of the demand for the product over the 3-month long observation window in Year 4 and may be determined based on the bootstrapping samples built for the 3-month long observation window in Year 4.
In the described example, we have used the historic demand periods of Year 1 to Year 4, and broken these into observation windows of useful length. As will be apparent to those skilled in the art, the number of demand periods and observation windows can be tailored to suit the target application as appropriate.
Next, forecasting module 105 may develop a plurality of forecasting models based on the historical demand streams over the 1st through (N−1)th historical time periods (step 704). For example, forecasting module 105 may develop three forecasting models based on the historical demand data over Year 1 through Year 3. The three forecasting models may include a neural network model, a model tree model, and a bootstrapping model. For example, the model tree model may be the one that is developed with reference to
Then, forecasting module 105 may determine, for each one of sub periods in the Nth historical time period, a set of weighting values for the forecasting models by implementing a genetic algorithm (step 706). For example, forecasting module 105 may determine, for each month in Year 4, a set of three weighting values each corresponding to a respective one of the forecasting models. Forecasting module 105 may determine the weighting values based on historical demand data over Year 4 and calculated demand data over Year 4 calculated by using the forecasting models.
In one exemplary embodiment of determining the weighting values, forecasting module 105 may first calculate demand quantities for a product at a product distribution node over Year 4 by using each one of the plurality of forecasting models.
Forecasting module 105 may additionally create, for each one of January through December of Year 4, a population table consisting of a plurality of sets of candidate weighting values for the forecasting models.
After creating the population table, forecasting module 105 may calculate a combined demand as a weighted sum for each one of January through December of Year 4, based on each set of the candidate weighting values. As illustrated in
F′(1)=w1×F1(1)+w2×F2(1)+w3×F3(1)
wherein w1 represents the candidate weighting value for the neural network model, w2 represents the candidate weighting value for the model tree model, and w3 represents the candidate weighting value for the bootstrapping model.
Forecasting module 105 may evolve the candidate weighting values in the population table 900 based on the actual demand quantities F1(1) through F1(12) for January through December of Year 4, and the combined demand quantities F′(1) through F′(12) for January through December of Year 4. Forecasting module 105 may also evaluate the performance of each set of candidate weighting values again one or more business goals by calculating one or more business goal values in Year 4 based on the developed forecasting models and the set of candidate weighting values. Forecasting module 105 may complete the evolving of the candidate weighting values once a convergence criterion is satisfied. Then, forecasting module 105 may assert a set of weighting values that has the best performance among the plurality of sets of candidate weighting values in the population table 900.
Referring back to
While process 700 has been described in terms of weighting 3 model types to produce an aggregated forecast for a collection of historical demand streams, it will be apparent to those skilled in the art that any number of models may be combined in similar fashion.
Methods, systems, and articles of manufacture consistent with features related to the disclosed embodiments allow a system to forecast values for a product based on historical data associated with the product. These methods and systems may be applied to any tangible and/or non-physical product. In one embodiment, a product may represent a product that is manufactured, delivered, and/or maintained by a business entity, such as a manufacturer. Non-limiting examples of a product may include a vehicle, parts of a vehicle, commercial and/or residential appliances, tools, food service products, and any type of product that may be designed, developed, created, generated, manufactured, delivered, and/or stored as inventory.
Methods and systems consistent with certain embodiments implement a genetic algorithm to evolve a plurality of forecasting equations that may be used to produce forecast data for a product. Moreover, methods and systems consistent with certain embodiments implement the genetic algorithm using a fitness function that takes into account one or more business goals of a business, such as profit, RONA, service level, inventory turns, or other business goals.
It will be apparent to those skilled in the art that various modifications and variations can be made to the disclosed forecasting system. Other embodiments will be apparent to those skilled in the art from consideration of the specification and practice of the disclosed forecasting system. It is intended that the specification and examples be considered as exemplary only, with a true scope being indicated by the following claims and their equivalents.