CA2280595A1 - A graphical user interface for analysing data from a multiplicity of sources - Google Patents
A graphical user interface for analysing data from a multiplicity of sources Download PDFInfo
- Publication number
- CA2280595A1 CA2280595A1 CA 2280595 CA2280595A CA2280595A1 CA 2280595 A1 CA2280595 A1 CA 2280595A1 CA 2280595 CA2280595 CA 2280595 CA 2280595 A CA2280595 A CA 2280595A CA 2280595 A1 CA2280595 A1 CA 2280595A1
- Authority
- CA
- Canada
- Prior art keywords
- data
- model
- time series
- attributes
- user interface
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/04—Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/02—Banking, e.g. interest calculation or account maintenance
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Strategic Management (AREA)
- Economics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Finance (AREA)
- Accounting & Taxation (AREA)
- Marketing (AREA)
- Development Economics (AREA)
- Human Resources & Organizations (AREA)
- General Business, Economics & Management (AREA)
- Physics & Mathematics (AREA)
- Tourism & Hospitality (AREA)
- Quality & Reliability (AREA)
- Operations Research (AREA)
- Entrepreneurship & Innovation (AREA)
- Game Theory and Decision Science (AREA)
- Technology Law (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
A system and method for modeling time series data, comprising the steps of establishing a library of functions, each function having one or more attributes, the attributes determining the parameters of the function including its input and output values, representing ones of the functions and its associated attributes as icons on a graphical user interface, establishing a connection between at least one of a selected function and the time series data by a drag and drop operation performed on an attribute of the selected function, representing the connections graphically on the graphical user interface to create a model and implementing the model in a processor.
Description
A GRAPHICAL USER INTERFACE FOR ANALYSING DATA FROM A MULTIPLICITY
OF SOURCES
This invention relates generally to a system and method for analyzing time series data, and more particularly to a graphical user interface for implementing such a system.
BACKGROUND OF THE INVENTION
Many techniques are used in the analysis of time series data. Time series data can include measured data from the processes of an industrial plant, measured data of economic phenomena such as stock prices, volumes and the like. The management and analysis of time series data is critical in diverse fields ranging from business to engineering to medicine and beyond.
Depending on the data, the analysis may be used for performance monitoring as well as the prediction of physical and business systems. Various types of software have been developed to help intelligently manage time series. Such software includes accounting packages, econometric modeling tools, statistical and neural network suites as well as dedicated programming languages. However, this current software does not allow users to manage time series and models in an intuitive and easily manageable way. This is especially true for particularly complex and interrelated data.
Managing high volumes of numbers and the complex relationships between them is a difficult and demanding task. Existing software often requires people who have a comprehensive understanding of complicated programming languages, years of experience working with the various algorithms involved, as well as an in-depth understanding of the field or business that has generated the data in order to complete such a task.
Not all software requires the use of complicated programming languages. Tools such as spreadsheets are in wide use today to manage time series data. However, they are severely limited in several important aspects. First, they are unable to store the large volumes of data that are typically required and have severe limitations in their ability to handle real time streaming data. It is also a complicated process to estimate equations , use time series of different frequencies or manage complex models.
Software tools exist that can perform complicated time series manipulation.
These include programs such as Matlab~ and EPS~. However, they are intended for technical users and require learning a distinct programming language that few people are familiar with.
Unfortunately, even with these advanced tools and skilled users, these tasks are still not quick.
It is an object of the present invention to obviate or mitigate some of the aforementioned problems.
SLJwIMARY OF THE INVENTION
In accordance with this invention there is provided a method for modeling time series data, comprising the steps of (a) establishing a library of functions, each function having one or more attributes, the attributes determining the parameters of the function including its input and output values;
(b) representing ones of the functions and its associated attributes as icons on a graphical user interface;
(c) establishing a connection between at least one of a selected function and the time series data by a drag and drop operation performed on an attribute of the selected function;
(d) representing the connections graphically on the graphical user interface to create a model;
and implementing the model in a processor.
BRIEF DESCRIPTION OF THE DRAWINGS
An embodiment of the invention will now be described by way of example only, with reference to the accompanying drawings in which:
Figure 1 is schematic block diagram of a system according to an embodiment of the invention;
Figure 2 is a schematic block diagram of the functional blocks of the processing system according to an embodiment of the present invention; and Figure 3 is a schematic view of the graphical user interface.
DESCRIPTION OF THE PREFERRED EMBODIMENT
For convenience in the following description, like numerals refer to like structures in the drawings.
OF SOURCES
This invention relates generally to a system and method for analyzing time series data, and more particularly to a graphical user interface for implementing such a system.
BACKGROUND OF THE INVENTION
Many techniques are used in the analysis of time series data. Time series data can include measured data from the processes of an industrial plant, measured data of economic phenomena such as stock prices, volumes and the like. The management and analysis of time series data is critical in diverse fields ranging from business to engineering to medicine and beyond.
Depending on the data, the analysis may be used for performance monitoring as well as the prediction of physical and business systems. Various types of software have been developed to help intelligently manage time series. Such software includes accounting packages, econometric modeling tools, statistical and neural network suites as well as dedicated programming languages. However, this current software does not allow users to manage time series and models in an intuitive and easily manageable way. This is especially true for particularly complex and interrelated data.
Managing high volumes of numbers and the complex relationships between them is a difficult and demanding task. Existing software often requires people who have a comprehensive understanding of complicated programming languages, years of experience working with the various algorithms involved, as well as an in-depth understanding of the field or business that has generated the data in order to complete such a task.
Not all software requires the use of complicated programming languages. Tools such as spreadsheets are in wide use today to manage time series data. However, they are severely limited in several important aspects. First, they are unable to store the large volumes of data that are typically required and have severe limitations in their ability to handle real time streaming data. It is also a complicated process to estimate equations , use time series of different frequencies or manage complex models.
Software tools exist that can perform complicated time series manipulation.
These include programs such as Matlab~ and EPS~. However, they are intended for technical users and require learning a distinct programming language that few people are familiar with.
Unfortunately, even with these advanced tools and skilled users, these tasks are still not quick.
It is an object of the present invention to obviate or mitigate some of the aforementioned problems.
SLJwIMARY OF THE INVENTION
In accordance with this invention there is provided a method for modeling time series data, comprising the steps of (a) establishing a library of functions, each function having one or more attributes, the attributes determining the parameters of the function including its input and output values;
(b) representing ones of the functions and its associated attributes as icons on a graphical user interface;
(c) establishing a connection between at least one of a selected function and the time series data by a drag and drop operation performed on an attribute of the selected function;
(d) representing the connections graphically on the graphical user interface to create a model;
and implementing the model in a processor.
BRIEF DESCRIPTION OF THE DRAWINGS
An embodiment of the invention will now be described by way of example only, with reference to the accompanying drawings in which:
Figure 1 is schematic block diagram of a system according to an embodiment of the invention;
Figure 2 is a schematic block diagram of the functional blocks of the processing system according to an embodiment of the present invention; and Figure 3 is a schematic view of the graphical user interface.
DESCRIPTION OF THE PREFERRED EMBODIMENT
For convenience in the following description, like numerals refer to like structures in the drawings.
_~_. .._._._..__ :.; ~-, A system according to a general embodiment of the invention is shown generally in figure 1 and represented by the numeral 10. The system 10 includes a processor 12 for receiving an external data input 22 via an interface 13, a data storage 20, a graphical user interface (GUI) 14, coupled to the processor for displaying information to a user via a monitor 16 and a keyboard 18 or other input device for providing the user inputs to the system. The processor 12 includes calculation modules 24 for implementing functions which may be applied time series data and generated data, the calculation modules may be combined in a manner to be described below for establishing complex rules and relationships between various time series calculations. The input data 22 may include both real-time and non real-time time series data. The processor 12 manipulates the data 22 according to the rule set out in the arrangement of the calculation modules 24. The functions performed by the modules 24 are displayed graphically by way of icons on the monitor 16. Each function also includes a set of attributes, which are the input and output parameters of the function as well as preset values for a function. The icons provide a convenient graphical representation, which may be moved on the display screen in order to construct a variety of models. The icons provide the user with a method for selecting inputs for the modules and for direction of the subsequent output. The system provides the ability to perform calculations simultaneously on independent sets of generated models, functions and equations. It makes use of computing platforms that use multiple threads and processors. The results are stored to data storage 20 and displayed to the user via the monitor 16.
Referring to figure 2, two of the major components of the processor 12, a user interface module 30 and a calculation or data module 32, are shown. The user interface 30 manages external data feeds; transformations, models and outputs through a series of linked icons 34.
Underlying the user interface 30 is the calculation module 32 that is composed of:
1. Calculation modules 38 that each perform functions on data. These functions include simple numeric conversions to advanced analysis such as neural networks, pattern recognition and simulations. The calculation modules are normally defined by a set of attributes, which determine the inputs, outputs and other parameters of the modules. For example if one of the modules implemented a running average the attributes may be a data input, a sample period and a running average output.
2. A calculation engine controller 36 manages inputs from the external data streams 22 via the interface 13 and the flow of data between the various calculation modules 38.
Referring to figure 2, two of the major components of the processor 12, a user interface module 30 and a calculation or data module 32, are shown. The user interface 30 manages external data feeds; transformations, models and outputs through a series of linked icons 34.
Underlying the user interface 30 is the calculation module 32 that is composed of:
1. Calculation modules 38 that each perform functions on data. These functions include simple numeric conversions to advanced analysis such as neural networks, pattern recognition and simulations. The calculation modules are normally defined by a set of attributes, which determine the inputs, outputs and other parameters of the modules. For example if one of the modules implemented a running average the attributes may be a data input, a sample period and a running average output.
2. A calculation engine controller 36 manages inputs from the external data streams 22 via the interface 13 and the flow of data between the various calculation modules 38.
The icons 34 in the user interface 30 can be adapted to present a systematic characterization of time series and models. The icons may be presented as individual icons representing arrays of data, or have specific designs to distinguish among different the classes of icons. For example, functions may be represented by a triangle, time series by a square and output as a circle.
The icons 34 can be thought of as being hot-wired to an underlying complex of calculation modules 38, data sources 22 and outputs. This structure ensures that the most recent data is automatically generated and the integrity of the time series and predictions is maintained through a rigorous architecture that explicitly manages the correct sequencing of calculations and interdependence among time series.
The results of calculations in the calculation modules 38 may be stored for later use, presented to the user via the GLTI 14, or used in the calculation of another calculation module.
A more detailed description of the user interface module 30 is provided in the following paragraphs.
Figure 3 shows a screen shot 50 of the graphical user interface. When the user is building a model 51 they will have at least two windows open, the Objects in Hierarchy window 52 and the Model window 54. The Model window 54 provides an area for the user to create the model 51. It also provides access to a set of functions 56 that can be used in the model. The Objects 58 in Hierarchy window 52 provides access to all the time series data that can be used in the model.
Individual data of a time series may contain a number of attributes, or time series data. For example, the 'Intel' series 58 may contain the attributes of price 59, volume 60 and earnings 61, these attributes are displayed in a separate window 53.
The objects may also be represented in a graphical tree as shown in window 63.
The data that is displayed in the Objects in Hierarchy window 52 can be referenced by a folder 62 or by individual series 64 in the tree display window 63. If the user drags an entire folder 62 such as 'My Portfolio' 62a over to the Model window 54 then all the series 64a in that folder 62a are added to the model 51. When the series are dragged to the Model window 54, a new icon 66a called 'Time Series' appears and the series' names are displayed in the top half of the icon 66a.
The bottom half of the icon 66 displays an intersection of the attributes of the selected series 64a.
If the folder 'My Portfolio' 62a changes, the model 51 is automatically updated to reflect those changes. For example, if the Oracle stock is added to the folder marked 'My Portfolio' 62a, then the set of series 62a would have Oracle added to it automatically and Oracle would appear in the top half of the time series icon 66a.
This process is particularly useful if a ranking object is used to generate a folder with ten stocks in it. If the stocks change their order, or are added and removed from the list of ten, the model is automatically updated, as are other objects that use that model or those series.
In a similar fashion to the creation of the first time series icon 66a, a second time series icon 66b can be created for various interest scenarios. The names of the interest scenarios appear in the top half of the icon 66b, while their attributes appears in the bottom half. The interest rate for each interest scenario is its only attribute.
Once a series 64 or set of series is added to the model 51 the user can drag in functions 56 to operate on those series 64. The functions 56 are categorized by use, with the most commonly used fimctions automatically placed in a special folder. When the user drags a function 56 into the Model window 54 a function icon 68 is displayed. The function icon has inputs and outputs.
The inputs types can consist of various formats such as drop down boxes, tick boxes, date ranges or simple numbers. Inputs can also be attributes. For example, figure 3 shows a line connecting the price of the time series 66a to the input of a Percent Change fimction 68a. The connection implies that the user wants to perform a percent change calculation in the price of both Intel and nVidia that spans the previous ten days. The user via an input text box 70 specifies the number of days. The result of this calculation is a time series output. This input text box may also be used to represent the type of interpolation/extrapolation the attribute goes through before it is used in a calculation.
In this example shown in window 54 there are two time series icons 66. The first icon 66a has two series, and the second icon 66b has three. The system deals with models as if there is only one series in each of those time series objects 66. Therefore the Model window 54 needs to create six unique combinations of interest rate scenarios and stocks internally. These combinations are:
1. Intel and Interest Scenario 1;
2. nVidia and Interest Scenario 1;
3. Intel and Interest Scenario 2;
4. nVidia and Interest Scenario 2;
The icons 34 can be thought of as being hot-wired to an underlying complex of calculation modules 38, data sources 22 and outputs. This structure ensures that the most recent data is automatically generated and the integrity of the time series and predictions is maintained through a rigorous architecture that explicitly manages the correct sequencing of calculations and interdependence among time series.
The results of calculations in the calculation modules 38 may be stored for later use, presented to the user via the GLTI 14, or used in the calculation of another calculation module.
A more detailed description of the user interface module 30 is provided in the following paragraphs.
Figure 3 shows a screen shot 50 of the graphical user interface. When the user is building a model 51 they will have at least two windows open, the Objects in Hierarchy window 52 and the Model window 54. The Model window 54 provides an area for the user to create the model 51. It also provides access to a set of functions 56 that can be used in the model. The Objects 58 in Hierarchy window 52 provides access to all the time series data that can be used in the model.
Individual data of a time series may contain a number of attributes, or time series data. For example, the 'Intel' series 58 may contain the attributes of price 59, volume 60 and earnings 61, these attributes are displayed in a separate window 53.
The objects may also be represented in a graphical tree as shown in window 63.
The data that is displayed in the Objects in Hierarchy window 52 can be referenced by a folder 62 or by individual series 64 in the tree display window 63. If the user drags an entire folder 62 such as 'My Portfolio' 62a over to the Model window 54 then all the series 64a in that folder 62a are added to the model 51. When the series are dragged to the Model window 54, a new icon 66a called 'Time Series' appears and the series' names are displayed in the top half of the icon 66a.
The bottom half of the icon 66 displays an intersection of the attributes of the selected series 64a.
If the folder 'My Portfolio' 62a changes, the model 51 is automatically updated to reflect those changes. For example, if the Oracle stock is added to the folder marked 'My Portfolio' 62a, then the set of series 62a would have Oracle added to it automatically and Oracle would appear in the top half of the time series icon 66a.
This process is particularly useful if a ranking object is used to generate a folder with ten stocks in it. If the stocks change their order, or are added and removed from the list of ten, the model is automatically updated, as are other objects that use that model or those series.
In a similar fashion to the creation of the first time series icon 66a, a second time series icon 66b can be created for various interest scenarios. The names of the interest scenarios appear in the top half of the icon 66b, while their attributes appears in the bottom half. The interest rate for each interest scenario is its only attribute.
Once a series 64 or set of series is added to the model 51 the user can drag in functions 56 to operate on those series 64. The functions 56 are categorized by use, with the most commonly used fimctions automatically placed in a special folder. When the user drags a function 56 into the Model window 54 a function icon 68 is displayed. The function icon has inputs and outputs.
The inputs types can consist of various formats such as drop down boxes, tick boxes, date ranges or simple numbers. Inputs can also be attributes. For example, figure 3 shows a line connecting the price of the time series 66a to the input of a Percent Change fimction 68a. The connection implies that the user wants to perform a percent change calculation in the price of both Intel and nVidia that spans the previous ten days. The user via an input text box 70 specifies the number of days. The result of this calculation is a time series output. This input text box may also be used to represent the type of interpolation/extrapolation the attribute goes through before it is used in a calculation.
In this example shown in window 54 there are two time series icons 66. The first icon 66a has two series, and the second icon 66b has three. The system deals with models as if there is only one series in each of those time series objects 66. Therefore the Model window 54 needs to create six unique combinations of interest rate scenarios and stocks internally. These combinations are:
1. Intel and Interest Scenario 1;
2. nVidia and Interest Scenario 1;
3. Intel and Interest Scenario 2;
4. nVidia and Interest Scenario 2;
5. Intel and Interest Scenario 3; and 6. nVidia and Interest Scenario 3.
Therefore there are six unique attributes for the predicted price, each slotted into a different folder in My Portfolio Model ## in the Objects in Hierarchy window 52. The attributes for the Intel folder in My Portfolio Model ## are the predicted prices for the Intel stock with each interest scenario. Similarly, the attributes of the nVidia folder are the predicted prices for nVidia for each interest scenario. Therefore each folder has three attributes.
The attributes for the Interest Scenario 1 folder in My Portfolio Model ## are the predicted prices for each of the Intel and nVidia stocks using interest scenario 1. Similarly, the attributes of the Interest Scenario 2 and Interest Scenario 3 folders are the predicted prices for each of the Intel and nVidia stocks using interest scenarios two and three respectively. Therefore each of the interest scenario folders has two attributes.
Any attribute that is displayed in the 'Objects in Hierarchy' window can be used as an input to another model, or it can used to drive an output for the user.
Therefore, the user can build up nested layers of models that depend on each other. In this example, the user could take the predicted price for nVidia and use it in another model. If the user developed a model that used the predicted price for nVidia, and then changed the model that generated that predicted price, the new model would automatically reflect those changes. This automatic linking ensures concurrent and consistent management of time series and models and enables real time applications. The icons enable the user to build very complex, nested models without the need for coding or selecting columns and typing formulas. It also allows the user a simple view of what the model performs.
While the user interface module 30 provides the user with an easy drag and drop method for creating models, the calculation module 32 is responsible for providing the user interface 30 with all the data it requests. The calculation module 32 ensures that the data used is the most current available and that it is provided quickly and accurately. The user interface is connected to the calculation module via the Calculation Engine Interface 40 that allows it to describe precisely what calculations and models it requires. An example of how such a structure works is outlined in the example below, although other methods will be apparent to those skilled in the art.
The user builds a model in the model creation window 54. This process has already been discussed while describing the User Interface module 30. Once the model has been completed and the user is ready to make it active, the model window contacts the Calculation Engine Controller36 via the Calculation Engine Interface 40. The Model window 54 describes the calculation, data, fimctions and the relationships between that have been specified in the model 51. The Calculation Engine Controller 36 builds a set of calculation components 38 that represents the model 51 as described by the Model window 54. The calculation components perform the prescribed functions represented by the fimction icons 68.
In the example illustrated in figure 2, the attributes numbered 1 through 6 require the acquisition of external information. The attributes have several unique characteristics. They are not set to any specific frequency and can deal with incoming data at random, changing frequencies. Also, the frequencies between attributes may differ. The time series represented by the attributes do not need to be contiguous. For example, if an attribute represents the Toronto Stock Exchange (TSE) price, it would only contain valid data for the hours that the exchange was open.
Since attributes typically do not have similar or even constant frequencies, an attribute set is required. The attribute set interpolates or extrapolates the attribute to a common, although not necessarily regular, frequency so that the calculation components 38 can operate on them. Since the technology is frequency independent the user does not need to be concerned with the fact that the data used for the same calculation may be updated daily or monthly.
To ensure that interpolation or extrapolation errors are not carried too far, the concept of a rollback is introduced. If two attributes are collected at different frequencies, the value of the less frequent attribute is extrapolated so in order to perform the required calculations. An example of this may be see in figure 4a. However, since its value is only an estimate, it may adversely affect the predictions of future values as shown in figure 4b.
Therefore, as soon as the true value for the less frequent attribute arnves, the calculations are rolled backed to the last received value and recalculated to ensure accuracy as shown in figure 4c.
The calculation components 38 perform calculations using the attributes that are linked to them and they output other attributes. The output attributes can be used either as inputs to other functions or passed to the User Interface module for display and user interaction.
When the user wants to display a chart, a chart object asks the Calculation Engine Controller for a particular attribute. The Calculation Engine Controller provides an output cache where which the chart object can read and write data. It then copies all the data from the attribute into the output cache. The Controller then calculates any changes in the data that have occurred since the last time the attribute was viewed.
When calculating a desired output, the Calculation Engine Controller 34 first determines what attributes from an outside source are required to perform the calculation. Once attributes that require external data are determined, the Calculation Engine Controller 36 triggers the Data Stream Object to start grabbing data from the data server. The data is gathered starting from the most recently collected data point of the attribute. The system is capable of running in real time with a fully abstracted data layer. The data may be retrieved and refreshed at any frequency including real time. Therefore, the user does not have to adjust input sources or press a 'refresh' button to update the system. Rather, while the system is operative, the most recent data is provided as soon as it becomes available. When the Data Stream Object adds a new data point to the attribute, the Calculation Engine Controller is informed. The Calculation Engine Controller then recalculates all the attributes that depend on the attribute that was updated.
The Calculation Engine Controller 36 also controls the order of calculation.
In the above example it is necessary to calculate Function 1 before it calculating Function 2, since Function 2 relies on the output of Function 1. It may occur that the are several functions that can be calculated simultaneously, that is if their inputs are independent of each other's output. This allows the Calculation Module to take advantage of the multithreading capabilities of the machine it is running on. When attribute number 9 is calculated, the Calculation Engine Controller 36 moves the new data into the output cache and alerts the chart object that there is new data. This process is repeated when the Data Stream Object tells the Calculation Engine Controller that new data was added to one or more of the attributes that attribute number 9 requires for its calculation.
This process is real time, with both historical and new data being fed to the Data Stream Object. Also, nothing is calculated unless it is needed for the model S 1 specified in the User Interface Module 30.
This process continues until the User Interface tells the Calculation Engine Controller that it no longer needs a particular attribute. The Calculation Engine Controller stops the Data Stream Object from grabbing data for those attributes that are no longer needed for any calculations.
_g_ It may be seen that the present invention provides a simple automated tool for implementing and analyzing numerous data driven applications. These may include engineering applications to manage, analyze and model the behavior or performance of dynamic systems including applications such as communications, chemical processes and other physical systems;
business intelligence applications to analyze time series and accounting data to monitor both internal and external business environments and/or predict future business conditions; business modeling such as scheduling and strategic planning where arrays or data are managed in conjunction with linked statistical or mathematical models. In such applications a custom user interface may also be implemented.
Although the invention has been described with reference to certain specific embodiments, various modifications thereof will be apparent to those skilled in the art without departing from the spirit and scope of the invention as outlined in the claims appended hereto.
Therefore there are six unique attributes for the predicted price, each slotted into a different folder in My Portfolio Model ## in the Objects in Hierarchy window 52. The attributes for the Intel folder in My Portfolio Model ## are the predicted prices for the Intel stock with each interest scenario. Similarly, the attributes of the nVidia folder are the predicted prices for nVidia for each interest scenario. Therefore each folder has three attributes.
The attributes for the Interest Scenario 1 folder in My Portfolio Model ## are the predicted prices for each of the Intel and nVidia stocks using interest scenario 1. Similarly, the attributes of the Interest Scenario 2 and Interest Scenario 3 folders are the predicted prices for each of the Intel and nVidia stocks using interest scenarios two and three respectively. Therefore each of the interest scenario folders has two attributes.
Any attribute that is displayed in the 'Objects in Hierarchy' window can be used as an input to another model, or it can used to drive an output for the user.
Therefore, the user can build up nested layers of models that depend on each other. In this example, the user could take the predicted price for nVidia and use it in another model. If the user developed a model that used the predicted price for nVidia, and then changed the model that generated that predicted price, the new model would automatically reflect those changes. This automatic linking ensures concurrent and consistent management of time series and models and enables real time applications. The icons enable the user to build very complex, nested models without the need for coding or selecting columns and typing formulas. It also allows the user a simple view of what the model performs.
While the user interface module 30 provides the user with an easy drag and drop method for creating models, the calculation module 32 is responsible for providing the user interface 30 with all the data it requests. The calculation module 32 ensures that the data used is the most current available and that it is provided quickly and accurately. The user interface is connected to the calculation module via the Calculation Engine Interface 40 that allows it to describe precisely what calculations and models it requires. An example of how such a structure works is outlined in the example below, although other methods will be apparent to those skilled in the art.
The user builds a model in the model creation window 54. This process has already been discussed while describing the User Interface module 30. Once the model has been completed and the user is ready to make it active, the model window contacts the Calculation Engine Controller36 via the Calculation Engine Interface 40. The Model window 54 describes the calculation, data, fimctions and the relationships between that have been specified in the model 51. The Calculation Engine Controller 36 builds a set of calculation components 38 that represents the model 51 as described by the Model window 54. The calculation components perform the prescribed functions represented by the fimction icons 68.
In the example illustrated in figure 2, the attributes numbered 1 through 6 require the acquisition of external information. The attributes have several unique characteristics. They are not set to any specific frequency and can deal with incoming data at random, changing frequencies. Also, the frequencies between attributes may differ. The time series represented by the attributes do not need to be contiguous. For example, if an attribute represents the Toronto Stock Exchange (TSE) price, it would only contain valid data for the hours that the exchange was open.
Since attributes typically do not have similar or even constant frequencies, an attribute set is required. The attribute set interpolates or extrapolates the attribute to a common, although not necessarily regular, frequency so that the calculation components 38 can operate on them. Since the technology is frequency independent the user does not need to be concerned with the fact that the data used for the same calculation may be updated daily or monthly.
To ensure that interpolation or extrapolation errors are not carried too far, the concept of a rollback is introduced. If two attributes are collected at different frequencies, the value of the less frequent attribute is extrapolated so in order to perform the required calculations. An example of this may be see in figure 4a. However, since its value is only an estimate, it may adversely affect the predictions of future values as shown in figure 4b.
Therefore, as soon as the true value for the less frequent attribute arnves, the calculations are rolled backed to the last received value and recalculated to ensure accuracy as shown in figure 4c.
The calculation components 38 perform calculations using the attributes that are linked to them and they output other attributes. The output attributes can be used either as inputs to other functions or passed to the User Interface module for display and user interaction.
When the user wants to display a chart, a chart object asks the Calculation Engine Controller for a particular attribute. The Calculation Engine Controller provides an output cache where which the chart object can read and write data. It then copies all the data from the attribute into the output cache. The Controller then calculates any changes in the data that have occurred since the last time the attribute was viewed.
When calculating a desired output, the Calculation Engine Controller 34 first determines what attributes from an outside source are required to perform the calculation. Once attributes that require external data are determined, the Calculation Engine Controller 36 triggers the Data Stream Object to start grabbing data from the data server. The data is gathered starting from the most recently collected data point of the attribute. The system is capable of running in real time with a fully abstracted data layer. The data may be retrieved and refreshed at any frequency including real time. Therefore, the user does not have to adjust input sources or press a 'refresh' button to update the system. Rather, while the system is operative, the most recent data is provided as soon as it becomes available. When the Data Stream Object adds a new data point to the attribute, the Calculation Engine Controller is informed. The Calculation Engine Controller then recalculates all the attributes that depend on the attribute that was updated.
The Calculation Engine Controller 36 also controls the order of calculation.
In the above example it is necessary to calculate Function 1 before it calculating Function 2, since Function 2 relies on the output of Function 1. It may occur that the are several functions that can be calculated simultaneously, that is if their inputs are independent of each other's output. This allows the Calculation Module to take advantage of the multithreading capabilities of the machine it is running on. When attribute number 9 is calculated, the Calculation Engine Controller 36 moves the new data into the output cache and alerts the chart object that there is new data. This process is repeated when the Data Stream Object tells the Calculation Engine Controller that new data was added to one or more of the attributes that attribute number 9 requires for its calculation.
This process is real time, with both historical and new data being fed to the Data Stream Object. Also, nothing is calculated unless it is needed for the model S 1 specified in the User Interface Module 30.
This process continues until the User Interface tells the Calculation Engine Controller that it no longer needs a particular attribute. The Calculation Engine Controller stops the Data Stream Object from grabbing data for those attributes that are no longer needed for any calculations.
_g_ It may be seen that the present invention provides a simple automated tool for implementing and analyzing numerous data driven applications. These may include engineering applications to manage, analyze and model the behavior or performance of dynamic systems including applications such as communications, chemical processes and other physical systems;
business intelligence applications to analyze time series and accounting data to monitor both internal and external business environments and/or predict future business conditions; business modeling such as scheduling and strategic planning where arrays or data are managed in conjunction with linked statistical or mathematical models. In such applications a custom user interface may also be implemented.
Although the invention has been described with reference to certain specific embodiments, various modifications thereof will be apparent to those skilled in the art without departing from the spirit and scope of the invention as outlined in the claims appended hereto.
Claims (6)
1. A method for modeling time series data, comprising the steps of:
(e) establishing a library of functions, each function having one or more attributes, the attributes determining the parameters of the function including its input and output values;
(f) representing ones of said functions and its associated attributes as icons on a graphical user interface;
(g) establishing a connection between at least one of a selected function and said time series data by a drag and drop operation performed on an attribute of said selected function;
(h) representing said connections graphically on said graphical user interface to create a model; and (i) implementing said model in a processor.
(e) establishing a library of functions, each function having one or more attributes, the attributes determining the parameters of the function including its input and output values;
(f) representing ones of said functions and its associated attributes as icons on a graphical user interface;
(g) establishing a connection between at least one of a selected function and said time series data by a drag and drop operation performed on an attribute of said selected function;
(h) representing said connections graphically on said graphical user interface to create a model; and (i) implementing said model in a processor.
2. A method as defined in claim 1, said time series data including real-time data.
3. A method as defined in claim 1, said time series data including non real-time data.
4. A method as defined in claim 1, said time series data including data generated by said model.
5. A method as defined in claim 1, said model being a financial trading system for both real-time and other data to analyze, model or transact financial operations including foreign exchange, equity, debt and derivatives instruments.
6. A method as defined in claim 1, said graphical user interface being incorporated in a web browser.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CA 2280595 CA2280595A1 (en) | 1999-08-20 | 1999-08-20 | A graphical user interface for analysing data from a multiplicity of sources |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CA 2280595 CA2280595A1 (en) | 1999-08-20 | 1999-08-20 | A graphical user interface for analysing data from a multiplicity of sources |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CA2280595A1 true CA2280595A1 (en) | 2001-02-20 |
Family
ID=4164013
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CA 2280595 Abandoned CA2280595A1 (en) | 1999-08-20 | 1999-08-20 | A graphical user interface for analysing data from a multiplicity of sources |
Country Status (1)
| Country | Link |
|---|---|
| CA (1) | CA2280595A1 (en) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7530025B2 (en) * | 2005-05-09 | 2009-05-05 | Sas Institute Inc. | Systems and methods for handling time-stamped data |
| US7865835B2 (en) | 2007-10-25 | 2011-01-04 | Aquatic Informatics Inc. | System and method for hydrological analysis |
-
1999
- 1999-08-20 CA CA 2280595 patent/CA2280595A1/en not_active Abandoned
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7530025B2 (en) * | 2005-05-09 | 2009-05-05 | Sas Institute Inc. | Systems and methods for handling time-stamped data |
| US7865835B2 (en) | 2007-10-25 | 2011-01-04 | Aquatic Informatics Inc. | System and method for hydrological analysis |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11460977B2 (en) | Data preparation user interface with conglomerate heterogeneous process flow elements | |
| US7389211B2 (en) | System and method of predictive modeling for managing decisions for business enterprises | |
| US10740548B2 (en) | Dynamic report building using a heterogeneous combination of filtering criteria | |
| US20060111931A1 (en) | Method for the use of and interaction with business system transfer functions | |
| US20030167265A1 (en) | Computer method and user interface for decision analysis and for global system optimization | |
| US20130238399A1 (en) | Computer-Implemented Systems and Methods for Scenario Analysis | |
| US20070156479A1 (en) | Multivariate statistical forecasting system, method and software | |
| KR20110113629A (en) | Computer-implemented methods and systems for displaying summary tables and computer-readable media | |
| US20090070158A1 (en) | Method apparatus and system for visualization of probabilistic models | |
| US20080065510A1 (en) | Chart based real time investment monitoring, analyzing, and trading system | |
| US10402727B2 (en) | Methods for evaluating and simulating data | |
| US7912809B2 (en) | Data management system for manufacturing enterprise and related methods | |
| US20020198811A1 (en) | System and method for monitoring the status of analyses performed on a portfolio of financial instruments | |
| Jiang et al. | An optimization framework for worker allocation in aircraft final assembly lines based on simulation alternative modelling and historical data | |
| WO2002017125A1 (en) | Method for processing time series data | |
| CA2280595A1 (en) | A graphical user interface for analysing data from a multiplicity of sources | |
| Mahdavi et al. | Modeling an e-based real-time quality control information system in distributed manufacturing shops | |
| Aehnelt et al. | Towards a contextualized visual analysis of heterogeneous manufacturing data | |
| Paluszczyszyn et al. | A tool for practical simplification of water networks models | |
| Zherlitsyn | Financial Data Analysis Using Python | |
| Rachansa et al. | Integrated Multi-Income Stream Performance Dashboard: a Japanese Corporate Banking Case | |
| US20250139167A1 (en) | Graphical System to Reduce Cognitive Costs of Outstanding Subportfolio Discovery | |
| Lakhe et al. | Regression analysis based linear model for predicting stock prices | |
| Barua et al. | A Brief Review on Financial, Security and Business Visualization | |
| Schön | IT Support |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| FZDE | Dead |