Abstract:
The method provides a visualization technique for rendering multidimensional data points as 2D curves on a 3D plot with the third dimension representing their order in the multidimensional data set. The technique uses colour palettes to render individual data curves, which enables visual analysis of the entire dataset based on the colour characteristics of the resulting image. The method also suggests a technique for: a) visualizing a distance between multidimensional data points; c) showing a linear segment between two multidimensional data points; d) displaying a colour map of an individual multidimensional point or data set; e) displaying a multidimensional data interval.

Description:
CROSS-RELATED APPLICATIONS 
       [0001]    This application claims benefit of provisional patent application 61/041,901, filed on Apr. 2, 2008. 
     
    
     OTHER REFERENCES 
       [0002]    1. Chernoff, Herman, “The Use of Faces to Represent Points in k-Dimensional Space Graphically,” Journal of the American Statistical Association, v. 68, 1973, pp 361-368. 
         [0003]    2. Beshers, C. and Feiner, S. “AutoVisual: Rule-based design of interactive multivariate visualizations,” IEEE Computer Graphics and Applications, 13(4), July 1993, 41-49. 
         [0004]    3. Embrechts, P. and Herzberg A. “Variations of Andrews&#39; Plots,”  International Statistical Review/Revue Internationale de Statistique,  Vol. 59, No. 2. (August 1991), pp. 175-194. 
       TECHNICAL FIELD AND INDUSTRIAL APPLICABILITY OF THE INVENTION 
       [0005]    This invention relates to visualization and graphical analysis of sets of data points from multidimensional domain. It can be applied to any experiment or research process that involves gathering and analysis of observations with multiple parameters. 
       DESCRIPTION OF THE PRIOR ART 
       [0006]    Any research involving analysis of data observations with one or more dimensions becomes more efficient if it utilizes visualization techniques that help to quickly understand data structure. Superior ability of the human eye to catch visual patterns allows data visualization to be a powerful tool in finding hidden trends and relationships between individual observations in a multidimensional data set. 
         [0007]    For data sets with up to three dimensions standard visualization methods of presenting observations as data points on a 2D or 3D scatter plot diagram can be used. In cases when there is more than three dimensions some kind of transformation is required before the image can be presented for analysis. 
         [0008]    A number of prior art techniques for visualization of high dimensional data exist today. For example, many visualization methods revolve around a method, where values of individual data variables are embodied in specific parts of colored glyphs, as described in H. Chernoff, “The Use of Faces to Represent Points in k-Dimensional Space Graphically”, Journal of the American Statistical Association, v. 68, 1973, pp 361-368, or as rays of star objects in a star diagram. In both cases the methods allow for visual comparison of individual observations but are limited in the number of dimensions they can represent without cluttering the image, and become very hard to derive behavioral patterns from for data sets with high number of observations. 
         [0009]    Other methods suggest projecting multidimensional data sets on a two-dimensional or pseudo three-dimensional plane, as described in C. Beshers, S. Feiner, “AutoVisual: Rule-based design of interactive multivariate visualizations,” IEEE Computer Graphics and Applications, 13(4), July 1993, 41-49. This approach requires tremendous analysis effort in finding the best plane or combination of planes that would present the most useful information about the structure or behavior of the original data set. 
         [0010]    The method described in Embrechts, P. and Herzberg A. “Variations of Andrews&#39; Plots,”  International Statistical Review/Revue Internationale de Statistique,  Vol. 59, No. 2. (August 1991), pp. 175-194 transforms each N-dimensional data point into a Fourier series function and renders it as a plot in a 2D space. This allows to compare individual data points by visually comparing the shapes of their 2D plots, but the resulting image would not visualize the behaviour of an ordered data set, and will become very cluttered as more 2D plots are added to show more data points from the same data set. 
         [0011]    Thus, there remains a need for a method to produce a diagram that can visualize structural and behavioral patterns in a multidimensional data set without making the image too difficult to comprehend, especially for data sets with high number of observations. 
       SUMMARY OF THE INVENTION 
       [0012]    One object of the invention is to transform each multidimensional data point into a 2D plot and render it in 3D space. This gives the ability to visualize the distance between individual data points and show the structure of each data cluster formed by adjacent 2D plots. Another object is to show linear transitions between individual data points in an ordered data set, visualizing behavior of a dynamic multidimensional process represented by this data set. A further object is to facilitate comparison of individual data points or trends of the entire data process by visualizing distribution of colors from a multicolor palette according to the shapes of their 2D plots. Yet another object of the invention is to visualize multidimensional data interval for easy identification of data anomalies. 
         [0013]    Other features and advantages of the present invention will become apparent from the following description taken in conjunction with the accompanying drawings. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0014]    The objects and advantages of the present invention, as well as additional objects and advantages thereof, will be more fully understood hereinafter as a result of a detailed description of a preferred embodiment when taken in conjunction with the following drawings in which: 
           [0015]      FIG. 1  shows a 2D plot of a multidimensional data point. 
           [0016]      FIG. 2A  represents a 3D image of a multidimensional data set and Z-axis. 
           [0017]      FIG. 2B  shows all axes in the 3D Euclid space containing the image in  FIG. 2A . 
           [0018]      FIG. 3  shows the F(Z) projection of the image in  FIG. 2B . 
           [0019]      FIG. 4  shows spectrum bars of individual data points. 
           [0020]      FIG. 5  shows a multidimensional data segment. 
           [0021]      FIG. 6  shows the Z(t) view of a continuous data process with applied color mapping. 
           [0022]      FIG. 7  illustrates the F(t) projection of the multidimensional data interval. 
       
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 
       [0023]    The present invention transforms multidimensional data points into a set of 2D plots arranged along a third dimension according to their order in the multidimensional data set. It does so by converting each record into a 2D Fourier series function and rendering it on an imaginary plane oriented perpendicular to the axis of this dimension, placed at a distance proportional to the calculated order value of the corresponding data point. 
         [0024]    The method of visualizing a multidimensional data set is comprised of the following steps: 
         [0025]    1) A data point A=(a 1 , a 2 , . . . , a N ) in an N-dimensional space is transformed into a Fourier series function and rendered as a 2D plot using the formula 
         [0000]    
       
         
           
             
               
                 F 
                  
                 
                   ( 
                   t 
                   ) 
                 
               
               = 
               
                 
                   ∑ 
                   
                     i 
                     = 
                     1 
                   
                   N 
                 
                  
                 
                     
                 
                  
                 
                   
                     
                       a 
                       i 
                     
                     * 
                   
                    
                   
                     
                       P 
                       i 
                     
                      
                     
                       ( 
                       t 
                       ) 
                     
                   
                    
                   
                     ( 
                     
                       see 
                        
                       
                           
                       
                        
                       
                         Fig 
                         . 
                         
                             
                         
                          
                         1 
                       
                        
                       
                           
                       
                        
                       for 
                        
                       
                           
                       
                        
                       an 
                        
                       
                         
                             
                         
                          
                         
                             
                         
                       
                        
                       example 
                     
                     ) 
                   
                 
               
             
             , 
           
         
       
     
         [0000]    wherein: 
         [0026]    t varies in the interval [0, 1], 
         [0027]    a i  is the value of the i-th dimension, 
         [0028]    P i (t) is any orthogonal polynomial of degree i, e.g. Legendre polynomial. 
         [0029]    2) Each N-dimensional data point A i  in a data set D={A 1 , A 2 , . . . , A M ) is assigned a value Z i  that identifies an order of the data point in data set D, like a moment of time the observation represented by point A i  was taken in a time-dependant dynamic process, or Euclid distance of a data point in an N-dimensional space. 
         [0030]    3) Each imaginary plane containing a 2D plot from step 1 is re-oriented in 3D space and placed perpendicular to an axis on the 3D image, at a distance from the origin proportional to the Z-value of its data point assigned in step 2. 
         [0031]      FIG. 2A  shows the 3D image of a sample data set, where each 2D plot is marked as a little tick on the Z-axis. As shown in  FIG. 2B , if the axes used to render 2D plots on the imaginary planes in step 1 are also visualized on this image, then the entire diagram will be viewed as a graph in a three-dimensional Euclid space with the following mutually orthogonal axes: 
         [0032]    t-axis for a parameter varying in the interval [0, 1]. 
         [0033]    F-axis for values of Fourier series functions built for each 2D plot. 
         [0034]    Z-axis for Z-values assigned to each data point in step 2. 
         [0035]    As illustrated in  FIG. 3 , in the F(Z) projection, or “side” view, of the Euclid space defined above all 2D plots are seen as vertical lines located as close to each other as the Z-values assigned to their data points in step 2. The resulting image can be used to see clusters of related data points for the specified Z-order. 
         [0036]    All information about a multidimensional data point is encoded in the shape of its 2D plot, and hence the ability to compare it with other plots is important. The invention allows seeing the differences between multiple data points by mapping a color lookup table to altitudes of their 2D plots calculated as values of the Fourier series function F(t) in step 1. 
         [0037]    A k-color lookup table, or color palette, consists of a set of pairs P={(E 1 , C 1 ), (E 2 , C 2 ), . . . , (E k , C k )}, wherein: 
         [0038]    each pair (E i , C i ) is an element (Elevation, Color) with the i-th lowest elevation value, 
         [0039]    elevations E vary in the interval [0, 1], with E 1  equal to 0 and E k  equal to 1, 
         [0040]    C is a color component representing an ARGB (alpha, red, green, blue) color. 
         [0041]    The color mapping for a data set with M data points is applied using the following algorithm: 
         [0042]    1) The minimum out of all values of the Fourier series functions 
         [0000]    
       
         
           
             
               min 
               
                 1 
                 ≤ 
                 m 
                 ≤ 
                 M 
               
             
              
             
               ( 
               
                 
                   F 
                   m 
                 
                  
                 
                   ( 
                   t 
                   ) 
                 
               
               ) 
             
           
         
       
     
         [0000]    is matched with the elevation E 1  and rendered with the color C 1 . 
         [0043]    2) The maximum out of all values of the Fourier series functions 
         [0000]    
       
         
           
             
               max 
               
                 1 
                 ≤ 
                 m 
                 ≤ 
                 M 
               
             
              
             
               ( 
               
                 
                   F 
                   m 
                 
                  
                 
                   ( 
                   t 
                   ) 
                 
               
               ) 
             
           
         
       
     
         [0000]    is matched with the elevation E k  and rendered with the color C k . 
         [0044]    3) All other values of the Fourier series functions F m (t)* are scaled proportionally to the interval [0, 1] and rendered using color C* that is derived from the following formula:
       If E i =F m (t)* the color C (or ARGB*) of the elevation F m (t)* is set to C i .   If E i ≦F m (t)*&lt;E i+1  the color C* (or ARGB*) of the elevation F m (t)* is calculated as:       
 
         [0000]        C*=C   i +( C   i+1   −C   i )( F   m ( t )*− E   i )/( E   i+1   −E   i ),       or more specifically         
         [0000]        A*=A   i +( A   i+1   −A   i )( F   m ( t )*− E   i )/( E   i+1   −E   i ) 
         [0000]        R*=R   i +( R   i+1   −R   i )( F   m ( t )*− E   i )/( E   i+1   −E   i ) 
         [0000]        G*=G   i +( G   i+1   −G   i )( F   m ( t )*− E   i )/( E   i+1   −E   i ) 
         [0000]        B*=B   i +( B   i+1   −B   i )( F   m ( t )*− E   i )/( E   i+1   −E   i ). 
         [0048]    If every point on a 2D plot is stretched along the Z-axis and the resulting image is viewed in the Z(t) projection, or “top” view, the data point will be seen as a spectrum bar with palette colors representing the curvature of its 2D plot. As illustrated in  FIG. 4 , by performing the same graphical operation for several different data points and viewing them together on the same image it is easy to see how similar or different they are based on the color characteristics of their spectrum bars. 
         [0049]    If A=(a 1 , a 2 , . . . , a N ) and B=(b 1 , b 2 , . . . , b N ) are two data points in an N-dimensional space, then the linear segment  AB  can be defined as a Fourier series function F x (t, λ)=F a (t)+λ(F b (t)−F a (t)), wherein: 
         [0050]    F a (t) is a Fourier series function representing data point A, 
         [0051]    F b (t) is a Fourier series function representing data point B, 
         [0052]    λ varies in the interval [0,1]. 
         [0053]    In the three-dimensional Euclid space described in this invention the multidimensional segment defined by function F x (t, λ) can be rendered as a continuous surface connecting 2D plots F a (t) and F b (t) as illustrated in  FIG. 5 . 
         [0054]    The color mapping can be applied to the surface using the above algorithm based on the elevation values of function F x (t, λ). As shown in  FIG. 6  by looking at the resulting image from the “top”, or in the Z(t) projection view, the entire data set will appear as a color bar, on which deviations from the normal data pattern are presented as color fluctuations. 
         [0055]    In the cases where each parameter in an N-dimensional space is confined by an interval of minimum and maximum limits within which its values are allowed to vary, it is often beneficial to see the 2D plots of a multidimensional data set contained within an area representing a multidimensional data interval for this data set. The current invention allows to visualize such an area using the following steps: 
         [0056]    1) For each parameter a i  in an N-dimensional space and the interval of values [a i   min , a i   max ] defined for this parameter two new 2D plots F p   min (t) and F p   max (t) are defined for a multidimensional data set to represent the following two data points: 
         [0000]        P   min =( a   1   min   , a   2   min   , . . . , a   N   min ) 
         [0000]        P   max =( a   1   max   , a   2   max   , . . . , a   N   max ) 
         [0057]    2) In addition to plots F p   min (t) and F p   max (t) the data set is also defined N new 2D plots F p     i   (t) for each 1≦i≦N to represent data points P i =(a 1   min , a 2   min , . . . , a i   max , . . . , a N   min ). 
         [0058]    3) The minimum and maximum boundaries of the data interval area are first built in the F(t) projection, or “perspective” view, by connecting graphically the following points for each t in the interval [0, 1]: 
         [0000]    
       
         
           
             
               
                 F 
                 min 
               
                
               
                 ( 
                 t 
                 ) 
               
             
             = 
             
               
                 min 
                 
                   1 
                   ≤ 
                   i 
                   ≤ 
                   N 
                 
               
                
               
                 ( 
                 
                   
                     
                       F 
                       p 
                       min 
                     
                      
                     
                       ( 
                       t 
                       ) 
                     
                   
                   , 
                   
                     
                       F 
                       
                         p 
                         i 
                       
                     
                      
                     
                       ( 
                       t 
                       ) 
                     
                   
                 
                 ) 
               
             
           
         
       
       
         
           
             
               
                 F 
                 max 
               
                
               
                 ( 
                 t 
                 ) 
               
             
             = 
             
               
                 max 
                 
                   1 
                   ≤ 
                   i 
                   ≤ 
                   N 
                 
               
                
               
                 ( 
                 
                   
                     
                       F 
                       p 
                       max 
                     
                      
                     
                       ( 
                       t 
                       ) 
                     
                   
                   , 
                   
                     
                       F 
                       
                         p 
                         i 
                       
                     
                      
                     
                       ( 
                       t 
                       ) 
                     
                   
                 
                 ) 
               
             
           
         
       
     
         [0059]    4) To visualize the data interval area on the 3D image the minimum and maximum boundary curves are built using steps 1, 2 and 3 within the planes corresponding to minimum and maximum Z-values and graphically connected with a linear surface using the F x (t, λ) function described above. 
         [0060]    As illustrated in  FIG. 7 , the area obtained in step 3 will fully embrace 2D plots of all points with values within the specified data interval, whereas 2D plots of data points that lie outside of this interval in at least one dimension will extend past the area&#39;s boundaries in some parts of the image. 
         [0061]    The invention has been described with reference to the preferred embodiment. Obviously, modifications and alterations will occur to others upon reading and understanding of this specification. It is intended to include all such modifications and alterations insofar as they come within the scope of the appended claims or the equivalents thereof.