Abstract:
The invention provides methods and apparatus, including computer program products, for determining characteristic parameters on the basis of a series of m values, H_1, H_2, . . . , H_m, over time, the values being descriptive for a predetermined process, the series having linear characteristics, the method comprising: computing differences, denoted as Δ_i, between pairs of values of points of the historical time series, the points having a predetermined time distance to each other, denoted as p; determining the median value, denoted as Δ_i_M, of the computed differences Δ_i; computing, on the basis of the determined median value Δ_i_M, a trend parameter, denoted as T, T being defined as T=Δ_i_M/p.

Description:
BACKGROUND OF THE INVENTION  
       [0001]     1. Field  
         [0002]     This application relates to outlier correction. Outliers (or outlier values) are values in a signal which exceed a given tolerance lane with respect to a “normal” situation by far, i.e., which are outside the tolerance of the expected value of the signal. Such a signal may be represented as discrete series of values over time. For example, in a time series describing production figures of a production process in a supply chain management (SCM) application, a cause for outliers may be production interruption due to a natural disaster, or a production peak due to extraordinary advertising activities.  
         [0003]     2. Background  
         [0004]     In the art, there exists an algorithm for outlier correction in a historical time series based on an ex-post forecast algorithm. In this method, the outliers in an actual series of values are removed in order to get a series of values which represent the “normal” expected development of the process over time. This corrected series of (historical) values may then be used as a basis for a forecast of the process in the future.  
       SUMMARY OF THE INVENTION  
       [0005]     It is an object of the present invention to provide a method and apparatus for correcting outliers in a time series.  
         [0006]     In general, in one aspect, this invention provides methods and apparatus, including computer program products, for determining characteristic parameters on the basis of a series of m values, H — 1, H — 2, . . . , H_m, over time, the values being descriptive for a predetermined process, the series having linear characteristics, 
        the method comprising the following steps:     computing differences, denoted as Δ_i, between pairs of values (H_i, H_i+p) of points (t_i, t_i+p) of the historical time series, the points having a predetermined time distance to each other, denoted as p;     determining the median value, denoted as Δ_i_M, of the computed differences Δ_i;     computing, on the basis of the determined median value Δ_i_M, a trend parameter, denoted as T, T being defined as T=Δ_i_M/p.        
 
         [0011]     In a further aspect, the invention provides a method for determining characteristic parameters on the basis of a series of values over time, H — 1, H — 2, . . . , H_m, the values being descriptive for a predetermined process, the series having a plurality of cycles, each of the cycles having the same number of periods, the number of periods being denoted by p, each period representing a predetermined characteristic of the process; 
        the method comprising the following steps:     computing differences, denoted as Δ_ij, between pairs of values (H_i, H_i+n) of corresponding points of corresponding periods of consecutive pairs of cycles, the points being denoted as t_i, t_i+p, whereby i is incremented by (j−1)*p with j being the numbering of the cycle;     determining the median values, denoted as Δ_i_M, of the computed differences Δ_ij of the corresponding periods;     computing, on the basis of one of the determined median values of a predetermined one of the periods, a trend parameter, denoted as T, T being defined as 
 
 T=Δ   —   i   —   M/p;  
    computing seasonal indices, denoted as S_i, S_i being defined as 
 
 S   —   i=Δ   —   i   —   M/ ( p T ). 
       
 
         [0017]     Advantageous implementations can include one or more of the following features.  
         [0018]     The trend parameter T may be determined on the basis of the median value Δ — 1_M, which is the median value of the first period.  
         [0019]     The median value may be taken over the corresponding pairs of the corresponding periods of all the cycles in the time series.  
         [0020]     The invention further comprises methods of forecasting a process.  
         [0021]     In a further embodiment, the invention provides a method of forecasting a process on the basis of a series of values over time, H — 1, H — 2, H_m, the values representing a historical series which is descriptive for the process, the series having linear characteristics, 
        the method comprising the following steps:     Determining characteristic parameters of the process by applying the inventive method according to the first aspect as described above;     for each value of the historical series, H — 1, H — 2, . . . , H_m, computing a basic value G, the basic value representing the transition between past and presence, the basic value G being defined by G=H+t_i T, with H being the value of the historical time series at the time point −t — 1;     computing the median basic value G_M over all the computed basic values G; and     computing forecast values F, the forecast values being defined as     F=(G_M+t_i T), with t_i being the time point of the forecast value F.        
 
         [0028]     In a further embodiment, the invention provides a method of forecasting a process on the basis of a series of values over time, H — 1, H — 2, . . . , H_m, the values representing a historical series which is descriptive for the process, the series having a plurality of cycles, each of the cycles having the same number of periods, the number of periods being denoted by p, each period representing a predetermined characteristic of the process; 
        the method comprising the following steps:     Determining the characteristic parameters of the process by applying the inventive method of the second aspect as described above;     for each value of the historical series, H — 1, H — 2, . . . , H_m, computing a basic value G, the basic value representing the transition between past and presence, the basic value G being defined as G=H/S_i+t_i T, with H being a value of the historical time series, and S_i being the seasonal index of the season in which the time point −t_i lies; and     computing forecast values F, the forecast values being defined as     F=(G_M+t_i T) S—i, with t_i being the time point of the forecast value F.        
 
         [0034]     Furthermore, the invention comprises also computer systems for performing the inventive methods.  
         [0035]     Furthermore, the invention comprises computer-readable storage media comprising program code for performing the inventive methods, when loaded into a computer system. 
     
    
     BRIEF DESCRIPTION OF DRAWINGS  
       [0036]     The invention is illustrated by way of example and not by way of limitation in the figures of the accompanying drawings in which like references indicate similar elements. It should be noted that references to “an” or “one” embodiment in this disclosure are not necessarily to the same embodiment, and such references mean at least one.  
         [0037]      FIGS. 1, 2A ,  2 B illustrate a first embodiment of the present invention;  
         [0038]      FIGS. 2C, 2D  illustrate the program flow of the first embodiment according to the present invention.  
         [0039]      FIG. 3  illustrates a second embodiment of the present invention; and  
         [0040]      FIGS. 4A  to C illustrate the program flow of the second embodiment according to the present invention.  
     
    
     DETAILED DESCRIPTION  
       [0041]     A first embodiment of the invention is explained with taking reference to  FIGS. 1, 2A , and  2 B. In  FIG. 1A , a time series of values, which describe a predetermined process is shown. The horizontal axis is the time line. The vertical line represents the presence, whereas values left from the vertical line are values of the past (also denoted historical values), and values right from the vertical line are values in the future, i.e., forecast values. The values in the past are actually known values, and are denoted as H, the complete series being denoted as H — 1, H2, . . . H_m. The values of the future, i.e., the forecast values, are denoted by F.  
         [0042]     Based on the assumption that the process has ideally linear characteristics over time, i.e., the values of the time series increase with time by a constant amount, all the points of the time series lie on a straight line. Then, the differences Δ_i of the values H_i, H_i+1 of any two consecutive points t_i,t_i+1 are constant. However, the actual values may differ from the ideal values due to “abnormal” influences onto the process. In order to model the process by a straight line with constant slope, the outlier values, i.e., such values which do not lie on a straight line, must be corrected. The position and slope of the line may be computed as the median of all the computed differences Δ_i. The median value may be determined as follows. The differences Δ_i according to  FIG. 2A  are sorted in ascending order, see  FIG. 2B . Then, the median value is the value in the middle of the sorted list of  FIG. 2B . In the following, the median value of group of values Δ — 1, Δ — 2, Δ — 3, . . . , is denoted as Δ_M.  
         [0043]     Since a historical value H at the time point t_i is given by 
 
 H=G−t   —   i T,  
 
 the basic value G, which is the intercept at the transition between past and future values, see  FIG. 1 , can be determined as the median over all historical values H. It is to be noted that since G is the intercept at the transition between past and future, that is between historical data and forecast data, t_i enters with negative sign in the equation for times in the past. 
 
         [0044]     Over the sequence of basic values G, the median value is taken. This median value G_M is used for forecasting values, according to the following equation: 
 
 F=G   —   M+t   —   i T.  
 
         [0045]      FIGS. 2C, 2D  summarize the program flow of the first embodiment according to the invention in the form of a flow chart. The program begins by setting i=1. In step  30 , the difference Δ_i between the historical values of pairs of consecutive points t_i, t_i+1 are computed. As long as I is lower than the number m of historical values H, I is incremented by one, and step  30  is repeated. When I reaches m, the program proceeds to step  60 , wherein the median value over the computed differences Δ_i is determined. Then, in step  70 , the trend value T is computed. Based on the parameter T so obtained, the median basic value G_M can be obtained by determining basic values G for all historical values H. Then, forecast values F can be computed in steps  80  to  100 .  
         [0046]     A second embodiment of the present invention is described with reference to FIGS.  3  to  5 , wherein the time series has cyclic characteristics.  FIG. 3  shows a time series which has 4 cycles. Each cycle has several periods. A period is a time interval in which values have a predefined common characteristics, for example increasing or decreasing tendency. For simplifying, each such time period in a cycle is represented by one point in the time series. As can be seen from  FIG. 3 , points  1 ,  9 ,  17 , and  25  have a common characteristics, i.e., they lie on a line with positive slope. The same applies to the points  2 ,  10 ,  18 , and  26 .  
         [0047]     The following procedure is used to determine the trend parameter T, the seasonal indices S_i, and the basic value G for the time series.  
         [0048]     With 
 
Δ_ij=p T S_i, 
 
 wherein i denotes the period, j, denotes the season, and p denotes the number of points (i.e., the length) of a season, the differences of pairs of points of the same periods of pairs of consecutive seasons are computed. The differences of the same periods over all the seasons form one group, respectively. Since the differences in one group vary from each other, a mean value over these differences in one group is taken. As operation to determine the mean value, the median of these values is computed. The median value over the i-th group of differences (i.e., Δ_i1, Δ_i2, Δ_i3, Δ_i4) is denoted as Δ_i_M. 
 
         [0049]     Setting one of the seasonal indices S_i to a predetermined value, for example the first seasonal index, S — 1, to unity, 
 
S — 1=1, 
 
         [0050]     the trend parameter T is given directly from the group of differences Δ — 1 from the first period (i=1) by taking the median value of Δ — 11, Δ — 12, Δ — 13, Δ — 14, 
 
 T=Δ   — 1 —   M/p.  
 
         [0051]     The seasonal indices S_i of the other periods (i&gt;1) can be determined based on the respective groups of differences: 
 
 S   —   i=Δ   —   i   —   M/ ( p T ), 
 
 where Δ_i_M is the median value over the i-th group of differences AΔi1, Δ_i2, Δ_i3, Δ_i4. 
 
         [0052]     Since a historical value H at the time point t_i is given by 
 
 H =( G−t   —   i T )  S   —   i,  
 
 with S_i being the seasonal index of the season in which the time point t_i lies, the basic value G, which is the intercept at the transition between past and future values, see  FIG. 1 , can be determined as the median over all historical values H. It is to be noted that since G is the intercept at the transition between past and future, that is between historical data and forecast data, t_i enters with negative sign in the equation for times in the past. 
 
         [0053]     Over the sequence of basic values G, the median value is taken. This median value G_M is used for forecasting values, according to the following equation: 
 
 F =( G   —   M+t   —   i T )  S   —   i.  
 
         [0054]      FIGS. 4A  to C display a flow diagram of the processing. The processing begins with step  10  in  FIG. 4A . At step  20 , the variable i denoting the period is initialized. At step  30 , the variable j denoting the cycle is initialized. Then, in loop  40  to  60 , the differences between pairs of values of corresponding points of corresponding periods are computed. This procedure is repeated for all the periods of the time series, see steps  70 ,  80 .  
         [0055]     Over the computed differences, the median values are taken, see step  90  in  FIG. 4B . With these median values, the trend parameter T is computed in step  100 , and the seasonal indices are computed in step  110 .  
         [0056]     Based on the parameters S_i, T so obtained, forecast values F can be computed, see steps  120 , 125 , and  130  in  FIG. 4C .  
         [0057]     The present techniques can be implemented in digital electronic circuitry, or in computer hardware, firmware, software, or in combinations of them. Apparatus of the invention can be implemented in a computer program product tangibly embodied in a machine-readable storage device for execution by a programmable processor. Method steps according to the invention can be performed by a programmable processor executing a program of instructions to perform functions of the invention by operating on the basis of input data, and by generating output data. The invention may be implemented in one or several computer programs that are executable in a programmable system, which includes at least one programmable processor coupled to receive data from, and transmit data to, a storage system, at least one input device, and at least one output device, respectively. Computer programs may be implemented in a high-level or object-oriented programming language, and/or in assembly or machine code. The language or code can be a compiled or interpreted language or code. Processors may include general and special purpose microprocessors. A processor receives instructions and data from memories, in particular from read-only memories and/or random access memories. A computer may include one or more mass storage devices for storing data; such devices may include magnetic disks, such as internal hard disks and removable disks; magneto-optical disks; and optical disks. Storage devices suitable for tangibly embodying computer program instructions and data include all forms of non-volatile memory, including by way of example semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM disks. Any of the foregoing can be supplemented by or incorporated in ASICs (application-specific integrated circuits).  
         [0058]     The computer systems or distributed computer networks as mentioned above may be used, for example, for producing goods, delivering parts for assembling products, controlling technical or economical processes, or implementing telecommunication activities.  
         [0059]     To provide for interaction with a user, the invention can be implemented on a computer system having a display device such as a monitor or LCD screen for displaying information to the user and a keyboard and a pointing device such as a mouse or a trackball by which the user can provide input to the computer system. The computer system can be programmed to provide a graphical or text user interface through which computer programs interact with users.  
         [0060]     A computer may include a processor, memory coupled to the processor, a hard drive controller, a video controller and an input/output controller coupled to the processor by a processor bus. The hard drive controller is coupled to a hard disk drive suitable for storing executable computer programs, including programs embodying the present technique. The I/O controller is coupled by means of an I/O bus to an I/O interface. The I/O interface receives and transmits in analogue or digital form over at least one communication link. Such a communication link may be a serial link, a parallel link, local area network, or wireless link (e.g. an RF communication link). A display is coupled to an interface, which is coupled to an I/O bus. A keyboard and pointing device are also coupled to the I/O bus. Alternatively, separate buses may be used for the keyboard pointing device and I/O interface.  
         [0061]     Other embodiments are in the scope of the following claims.