Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
A GRAPHICAL USER INTERFACE FOR A MATHEMATICAL METHOD
Document Type and Number:
WIPO Patent Application WO/2017/077333
Kind Code:
A1
Abstract:
An apparatus for determining a future probability for a variable is disclosed; the apparatus comprising: means for receiving an upper bound value; means for receiving a lower bound value; means for receiving a start time and an end time in the future thereby defining a time window in the future; means for displaying said upper bound, lower bound and time window to a user as a prediction; means for determining the probability of said value being between said upper and lower bounds within said time window; and means for outputting said probability to a user.

Inventors:
KARSTEN PETER (GB)
Application Number:
PCT/GB2016/053459
Publication Date:
May 11, 2017
Filing Date:
November 04, 2016
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
CITY ODDS CAPITAL LTD (GB)
KARSTEN PETER (GB)
CUBOID FINTECH LTD (GB)
International Classes:
G06F3/041; G06F3/048
Foreign References:
US6901560B12005-05-31
US20130238399A12013-09-12
Other References:
ANONYMOUS: "One-click forecasting in Excel 2016 - Office Blogs", 6 October 2015 (2015-10-06), XP055349762, Retrieved from the Internet [retrieved on 20170227]
Attorney, Agent or Firm:
KRAMER, Dani (GB)
Download PDF:
Claims:
Claims

1 . An apparatus for determining a future probability for a variable; the apparatus comprising:

means for receiving an upper bound value;

means for receiving a lower bound value;

means for receiving a start time and an end time in the future thereby defining a time window in the future;

means for displaying said upper bound, lower bound and time window to a user as a prediction;

means for determining the probability of said value being between said upper and lower bounds within said time window; and

means for outputting said probability to a user.

2. An apparatus according to claim 1 comprising means for prompting the user to adjust any of said values and/or times so as to obtain a particular likelihood.

3. An apparatus according to claim 1 or 2 wherein the means for displaying comprises displaying said prediction on a value / time series.

4. An apparatus according to claim 3 wherein said prediction is displayed in the form of a region on said value / time series, preferably in the form of a box.

5. An apparatus according to claim 4 comprising means for enabling a user to adjust said prediction by way of manipulating said region on said value / time series, and preferably graphically manipulating said region.

6. An apparatus according to any of claims 3 to 5 comprising displaying multiple predictions.

7. An apparatus according to any preceding claim comprising means for adjusting one or more of said values and/or times so as to obtain a particular value for another of said values and/or times.

8. An apparatus according to claim 7 comprising means for adjusting one or more of said upper bound value, lower bound value, start time value, end time value so as to obtain a particular probability.

9. An apparatus according to any preceding claim wherein said display means is adapted to display two sections, one section displaying past activity, and another section displaying future predicted activity.

10. An apparatus according to claim 9 comprising means for adjusting the scale of the value / time axes of the two sections independently of one-another.

1 1 . An apparatus according to claim 9 or 10 wherein said section displaying past activity comprises historic predictions.

12. An apparatus according to claim 1 1 comprising means for indicating whether such historic predictions were successful or unsuccessful.

13. An apparatus according any preceding claim comprising means for displaying another user's prediction.

14. An apparatus according to claim 13 comprising means for enabling the user to replicate said other user's predictions.

15. An apparatus according to claim 13 or 14 wherein said other user's predictions comprise a combination of other users' predictions.

16. An apparatus according to claim 15 wherein said combination is displayed by way of a cloud, the density of which indicating the density of other users' predictions.

17. An apparatus according to claim 15 or 16 wherein said other users comprise a class of users.

18. A user interface for the apparatus of any preceding claim.

19. A user interface comprising:

means for receiving an upper bound value;

means for receiving a lower bound value;

means for receiving a start time and an end time in the future thereby defining a time window in the future;

means for displaying said upper bound, lower bound and time window to a user as a prediction; and

means for outputting a probability of said prediction to a user.

20. A user interface according to claim 18 or 19 wherein said receiving means comprises receiving user input via a graphical user interface.

21 . A user interface according to claim 20 wherein said graphical user interface comprises a touch screen.

22. A system comprising an apparatus according to any of claims 1 to 17 and a user interface according to any of claims 18 to 21 .

23. An apparatus for displaying multiple time series information, comprising

means for receiving a first time series;

means for receiving a second time series;

means for displaying said second time series so as to appear distally offset from said first time series whilst remaining visible; and

means for enabling a user to switch between said first and second time series.

24. An apparatus according to claim 23 comprising an apparatus of any of claims 1 to 17.

25. An apparatus according to claim 23 or 24 wherein the means for enabling a user to switch between said first and second time series comprises a drop-down menu.

26. An apparatus according to claim 23 or 24 wherein the means for enabling a user to switch between said first and second time series comprises means for zooming in and/or out from the display.

27. An apparatus according to any of claims 23 to 26 wherein said plurality of value / time series are arranged in a carousel.

28. An apparatus according to any of claims 23 to 27 wherein said first and second time series represent different variables.

29. An apparatus according to any of claims 23 to 27 wherein said first and second time series represent different user's of class or users' actions.

30. An apparatus according to any of claims 23 to 29 comprising means for enabling a user to adjust the scale of said time series.

31 . An apparatus according to claim 30 wherein said means for enabling a user to adjust the scale of said time series adjusts both time series simultaneously.

32. An apparatus according to any of claims 23 to 31 comprising means for a receiving a further time series; and means for displaying said further time series so as to appear distally offset from said second time series.

33. A user interface for the apparatus of any of claims 23 to 32.

34. A user interface for displaying multiple time series information, comprising

means for receiving a first time series;

means for receiving a second time series;

means for displaying said second time series so as to appear distally offset from said first time series whilst remaining visible; and

means for enabling a user to switch between said first and second time series.

35. A user interface according to claim 33 or 34 wherein said means for enabling a user to switch between said first and second time series comprises a means for receiving user input via a graphical user interface.

36. A user interface according to claim 35 wherein said graphical user interface comprises a touch screen.

37. A system comprising an apparatus according to any of claims 23 to 32 and a user interface according to any of claims 33 to 36.

38. A user interface comprising:

a first section indicating a value / time series for a variable;

said first section comprising means for enabling a user to make future predictions regarding said variable; and

a second section indicating the user's relative prediction success compared to users making similar predictions thereby allowing a user to compare their prediction performance to that of other users.

39. A user interface according to claim 38 wherein the relative prediction success comprises a ranking.

40. A user interface according to claim 38 or 39 comprising means for enabling a user to select a group of users to which to compare themselves with.

41 . A user interface according to any of claims 38 to 40 wherein said first section comprises a user interface according to any of claims 18 to 21 and/or claims 33 to 36.

42. A method for providing a future probability for a variable; the method comprising: receiving an upper bound value;

receiving a lower bound value;

receiving a start time and an end time in the future thereby defining a time window in the future; and

displaying said upper bound, lower bound and time window to a user as a prediction; and

outputting a probability of said prediction to a user.

43. A method according to claim 42 further comprising determining the probability of said value being between said upper and lower bounds within said time window.

44. A method for displaying multiple time series information, comprising

receiving a first time series;

receiving a second time series;

displaying said second time series so as to appear distally offset from said first time series whilst remaining visible; and

enabling a user to switch between said first and second time series.

45. A method for predicting the probability of a variable being within a certain range at an expiration time, the method comprising:

calculating a plurality of different scenarios for the future development of the variable;

for each of said scenarios, determine whether the variable is predicted to be within said certain range at said expiration time;

determining a probability based on the proportion of scenarios which predict the variable to be within said certain range during said time expiration time; and outputting said probability to a user.

46. A method according to claim 45 wherein said scenarios are based on randomised movements of the variable in a previous time period.

47. A method according to claim 45 or 46 comprising scaling the value of a scenario at a particular time in dependence on a maximum and minimum value from said scenarios at said particular time.

48. A method according to any of claims 45 to 47 comprising storing a cache of probabilities on the user's local device.

49. A method according to claim 48 comprising periodically updating said cache.

50. A method according to any of claims 45 to 49 comprising selecting a subset of said scenarios, and determining whether the variable is predicted to be within said certain range at further expiration time, said further expiration time being further in the future to said expiration time.

51 . A method according to any of claims 45 to 50 wherein said expiry time is a time window.

52. An apparatus according to any of claims 1 to 17 or 23 to 32 adapted to carry out the method of any of claims 42 to 51 .

53. A computer program product adapted to carry out the method of any of claims 42 to 51 .

54. An apparatus substantially as described herein with reference to the accompanying drawings.

55. A user interface substantially as described herein with reference to the accompanying drawings.

56. A method substantially as described herein with reference to the accompanying drawings.

Description:
A GRAPHICAL USER INTERFACE FOR A MATHEMATICAL METHOD Field of invention

This invention relates to a user interface, apparatus, system and method. Background When monitoring a time-dependent system, it is often helpful to be able to predict, or to attempt to predict, a future value of a particular variable. Examples of where prediction is useful include:

• Industrial processes - the temperature, pressure, flow rate, pH or other variable in an industrial process may be critical to the safety or efficiency of the process. · Electricity generation - balancing supply and demand at a future point in time.

• Weather forecasts - temperature, probability of rain, pressure, wind speed and direction are variables which are usefully predicted.

In this regard, methods are provided so as to predict future values of such variables. However, the interface which allows a user to interact with the method can be inflexible. A related problem is that of the inflexibility of the prediction method itself.

An improved interface and/or prediction method is therefore required.

According to one aspect there is provided an apparatus for determining a future probability for a variable; the apparatus comprising: means for receiving an upper bound value; means for receiving a lower bound value; means for receiving a start time and an end time in the future thereby defining a time window in the future; means for displaying said upper bound, lower bound and time window to a user as a prediction; means for determining the probability of said value being between said upper and lower bounds within said time window; and means for outputting said probability to a user.

Such an apparatus providing, a straightforward way in which a user can determine the probability of a variable being between two bounds in a certain time window in the future. For improved predictions, the apparatus may comprise means for prompting the user to adjust any of said values and/or times so as to obtain a particular likelihood.

For ease of use, the means for displaying may comprise displaying said prediction on a value / time series. For ease of use, and so as to display technically useful detail; said prediction may be displayed in the form of a region on said value / time series, preferably in the form of a box. The box may be in the shape of a parallelogram, or other shape on a value / time series.

For ease of use by the user, the apparatus may comprise means for enabling a user to adjust said prediction by way of manipulating said region on said value / time series, and preferably graphically manipulating said region.

So as to aid a user in making more accurate predictions, the apparatus may comprise displaying multiple predictions.

So as to enable a user to obtain a specified value, the apparatus may comprise means for adjusting one or more of said values and/or times so as to obtain a particular value for another of said values and/or times. For example, the apparatus may comprise means for adjusting one or more of said upper bound value, lower bound value, start time value, end time value so as to obtain a particular probability.

For ease of use, said display means is adapted to display two sections, one section displaying past activity, and another section displaying future predicted activity.

For ease and/or flexibility of use, the apparatus may comprise means for adjusting the scale of the value / time axes of the two sections independently of one-another.

So as to enable viewing of previous predictions, said section displaying past activity comprises historic predictions. So as to assist a user in making future predictions, the apparatus may comprise means for indicating whether such historic predictions were successful or unsuccessful. So as to assist a user in making future predictions, the apparatus may comprise means for displaying another user's prediction. For example, enabling the user to replicate said other user's predictions.

So as to show a greater amount of detail, said other user's predictions may comprise a combination of other users' predictions. For ease of comprehension by a user, said combination may be displayed by way of a cloud, the density of which indicating the density of other users' predictions. Said other users may comprise a class of users.

According to another aspect there is provided a user interface for the apparatus as described herein. According to another aspect there is provided a user interface comprising: means for receiving an upper bound value; means for receiving a lower bound value; means for receiving a start time and an end time in the future thereby defining a time window in the future; means for displaying said upper bound, lower bound and time window to a user as a prediction; and means for outputting a probability of said prediction to a user. In such a way, a user is able to view a prediction made in the future and the associated probability of that prediction.

For ease of use by the user, said receiving means may comprise receiving user input via a graphical user interface; for example a touch screen.

According to another aspect there is provided a system comprising an apparatus and a user interface as described herein.

According to another aspect there is provided an apparatus for displaying multiple time series information, comprising means for receiving a first time series; means for receiving a second time series; means for displaying said second time series so as to appear distally offset from said first time series whilst remaining visible; and means for enabling a user to switch between said first and second time series.

Such an apparatus allows a user to easily and intuitively view multiple value / time series. So as to enable a user to view multiple past and/or future predictions said value / time series may comprise past and/or future predictions as described herein.

For ease of use, the means for enabling a user to switch between said first and second time series may comprise a drop-down menu.

For ease of use (especially when using a touchscreen) the means for enabling a user to switch between said first and second time series may comprise means for zooming in and/or out from the display.

For simplicity and/or ease of use, said plurality of value / time series may be arranged in a carousel.

So as to enable simultaneous viewing of different variables, said first and second time series may represent different variables.

So as to enable simultaneous viewing of different user actions, said first and second time series may represent different user's of class or users' actions.

For flexibility, the apparatus may comprise means for enabling a user to adjust the scale of said time series.

For ease of use, said means for enabling a user to adjust the scale of said time series may adjust both time series simultaneously.

So as to provide additional value / time series, the apparatus may comprise means for a receiving a further time series; and means for displaying said further time series so as to appear distally offset from said second time series.

According to another aspect there is provide a user interface for displaying multiple time series information, comprising means for receiving a first time series; means for receiving a second time series; means for displaying said second time series so as to appear distally offset from said first time series whilst remaining visible; and means for enabling a user to switch between said first and second time series. Such a user interface allows a user to easily compare and switch between multiple value / time series.

For ease of use, said means for enabling a user to switch between said first and second time series comprises a means for receiving user input via a graphical user interface; for example a touch screen.

According to another aspect there is provided a user interface comprising: a first section indicating a value / time series for a variable; said first section comprising means for enabling a user to make future predictions regarding said variable; and a second section indicating the user's relative prediction success compared to users making similar predictions thereby allowing a user to compare their prediction performance to that of other users.

Such a user interface allows a user to simultaneously view predictions for a variable and their relative performance to other users.

For comparison, the relative prediction success may comprise a ranking.

So as to provide relevant comparisons, the user interface may comprise means for enabling a user to select a group of users to which to compare themselves with.

Preferably, said first section of the user interface comprises a user interface as described herein.

According to another aspect there is provided a method for providing a future probability for a variable; the method comprising: receiving an upper bound value; receiving a lower bound value; receiving a start time and an end time in the future thereby defining a time window in the future; and displaying said upper bound, lower bound and time window to a user as a prediction; and outputting a probability of said prediction to a user.

Such a method provides a fast, efficient way of providing a probability prediction to a user. So as to provide a probability of interest to a user, the method may comprise determining the probability of said value being between said upper and lower bounds within said time window.

According to another aspect there is provide a method for displaying multiple time series information, comprising receiving a first time series; receiving a second time series; displaying said second time series so as to appear distally offset from said first time series whilst remaining visible; and enabling a user to switch between said first and second time series.

Such a user interface allows a user to easily and intuitively view multiple value / time series.

According to another aspect there is provided a method for predicting the probability of a variable being within a certain range at an expiration time, the method comprising: calculating a plurality of different scenarios for the future development of the variable; for each of said scenarios, determine whether the variable is predicted to be within said certain range at said expiration time; determining a probability based on the proportion of scenarios which predict the variable to be within said certain range during said time expiration time; and outputting said probability to a user.

Such a method provides a fast and efficient method of predicting the probability of a value. For speed and/or efficiency said scenarios are based on randomised movements of the variable in a previous time period.

For a consistent user experience, the method may comprise scaling the value of a scenario at a particular time in dependence on a maximum and minimum value from said scenarios at said particular time. For speed and/or efficiency the method may comprise storing a cache of probabilities on the user's local device; and preferably periodically updating said cache. For processor efficient calculation of probabilities further in the future, the method may comprise selecting a subset of said scenarios, and determining whether the variable is predicted to be within said certain range at further expiration time, said further expiration time being further in the future to said expiration time. So as to provide an improved probability, said expiry time may be a time window.

According to another aspect there is provided an apparatus adapted to carry out the method as described herein.

According to another aspect there is provided a computer program product adapted to carry out the method as described herein. The invention extends to any novel aspects or features described and/or illustrated herein. Further features of the invention are characterised by the other independent and dependent claims

Any feature in one aspect of the invention may be applied to other aspects of the invention, in any appropriate combination. In particular, method aspects may be applied to apparatus aspects, and vice versa.

Furthermore, features implemented in hardware may be implemented in software, and vice versa. Any reference to software and hardware features herein should be construed accordingly.

Any apparatus feature as described herein may also be provided as a method feature, and vice versa. As used herein, means plus function features may be expressed alternatively in terms of their corresponding structure, such as a suitably programmed processor and associated memory.

It should also be appreciated that particular combinations of the various features described and defined in any aspects of the invention can be implemented and/or supplied and/or used independently. The invention also provides a computer program and a computer program product comprising software code adapted, when executed on a data processing apparatus, to perform any of the methods described herein, including any or all of their component steps. The invention also provides a computer program and a computer program product comprising software code which, when executed on a data processing apparatus, comprises any of the apparatus features described herein.

The invention also provides a computer program and a computer program product having an operating system which supports a computer program for carrying out any of the methods described herein and/or for embodying any of the apparatus features described herein.

The invention also provides a computer readable medium having stored thereon the computer program as aforesaid.

The invention also provides a signal carrying the computer program as aforesaid, and a method of transmitting such a signal.

The invention extends to methods and/or apparatus substantially as herein described with reference to the accompanying drawings.

The invention will now be described by way of example, with references to the accompanying drawings in which: Figure 1 shows an example interface including a prediction region;

Figure 2 shows an example toolbar for use in the interface of Figure 1 ;

Figure 3 shows example cases where time has elapsed and the validity of a prediction can be determined;

Figure 4 shows the interface of Figure 1 showing predictions in the past;

Figure 5(a) shows a schematic view of a 3D interface;

Figure 5(b) shows an example 3D interface as perceived by a user;

Figure 6 shows a competitive prediction interface;

Figure 7 shows an apparatus adapted to generate a user interface; Figure 8 shows a system including the apparatus of Figure 7 and a plurality of connected users;

Figure 9 shows an example probability calculation method;

Figure 10 shows a more detailed probability calculation method;

Figure 1 1 shows an example time series for use in populating a queue;

Figure 12 shows a final step of an example probability calculation method; and

Figure 13 shows an alternative probability calculation method for an extended time period.

Detailed description

Interface In overview, an interface as illustrated in Figure 1 shows a value/time plot. The plot is split in two sections separated by a line 15 which represents the current time. The right hand side of the plot indicates time in the future, and the left hand indicates the historical value of a variable 1 . A user can '2D zoom' to change the y-axis 5 scale of the variable being considered without changing the scale of the historical graph. Similarly, a user may change the time axis 5 of either the left hand side or right hand side independently of one-another and independently of the y-axis 10.

The right hand side (future) contains a 'box' 20 defining an region of the plot. The box represents a certain length of time (the x axis) and a certain range of values for the variable (the y axis). The box has therefore four parameters:

1 . A start time 40;

2. An end time 30;

3. A lower variable bound 35; and

4. An upper variable bound 25. Each of these parameters may be modified by a user so as to create a prediction of a region of interest to them. In one example, the 'box' may be a parallelogram, or other shape where one or more of the above parameters are not constant. In one example, the user may be interested in the probability of the variable in question remaining between an upper 25 and lower bound 35 between a start 40 and end time 30 (referred to as an 'in' prediction). This may be, for example, the temperature remaining between -5°C and +5°C when they will be skiing, or the pH of a brewing vessel remaining within a certain range during fermentation.

Conversely, the user may be interested in the probability of the variable in question remaining outside an upper 25 and lower bound 35 between a start 40 and end time 30 (referred to as an Out' prediction). This may be, for example, wind speed being outside the operational bounds for electricity generation of a wind turbine, and therefore providing an indication of the likelihood of alternative sources needing to be utilised. It should be appreciated that the Out' prediction may be related to the 'in' prediction by one being Ί minus' the other (if ignoring uncertainty which may be factored into the predictions).

The prediction method in question then determines this probability (an example prediction method is described in more detail below with reference to Figures 9 to 13) and outputs it to the user. The value output represents the probability of interest to the user in a single calculation.

The user may then adjust the parameters of the prediction and/or other parameters under his control (for example, parameters relating to an industrial process) so as to obtain a satisfactory probability. This interface therefore provides a straightforward way in which a user can determine the probability of a variable being between two bounds in a certain time window in the future. Such an interface readily provides technically useful information in a single interface without further intervention of the user. The manner in which a user is able to set the region of interest and quickly receive a probability corresponding to this reduces the number of calculations and 'clicks' the user may otherwise be required to perform, thereby increasing the accuracy of the prediction and efficiency of the process as seen by the user.

The user may set and/or adjust the parameters of the box 20 by 'dragging' one or more of the sides of the box to the value of interest. In one example, a user may perform this via a touchscreen. A toolbar 50 on the interface, as shown by Figure 2 displays the variable 55 in question, the value of each of the parameters, and the resulting probability of the variable remaining in the box. The user may change the variable 55 being viewed by way of the drop-down menu 60. Alternatively, this may be performed by 'zooming in', as described with reference to Figures 5(a) and (b) below.

Each of the parameters of the box 20 may be adjusted by the user and the corresponding change occurring to the box 20, or vice versa. The user may perform a 'goal seek' by amending the probability and indicating which parameter should be changed so as to obtain that probability.

A user may set a number of boxes 20 at various points in the future which may or may not overlap with one-another. An example of where multiple boxes may be useful would be where two conflicting requirements are desired - such as low electricity output at night, but high output during the day. By placing two boxes 20 at different positions in the future, the user can adjust various process parameters so as to maximise the possibility of both requirements being met (or indeed prioritise one over the other). This may be, for example, adjusting the time a power station is brought online so that it does not produce power during the night, but is fully operational when peak demand is expected. Such an interface allows a user to quickly and easily determine what adjustments would maximise the efficiency of the process in question. This may be preferable to an automated system as a human operator may be able to better weigh up the merits of increasing one probability in favour of another. Figure 3 illustrates a number of examples where time has elapsed and the box 20 is now at in the past. These figures show cases where:

(a) the variable was not within the upper and lower bound at the start time, so the prediction 'failed'.

(b) the variable was within the upper and lower bound at the start time, but not at the end time, so the prediction failed.

(c) the variable was within the upper and lower bound at the start time and at the end time, but departed from the upper and lower bounds in the intervening time, so the prediction failed.

(d) the variable was within the upper and lower bound for the entire time between the start and end time, so the prediction succeeded. Figure 4 shows the interface shown in Figure 1 but including boxes which are now in the past. Such boxes may be indicated as having been successful or not by their colour (e.g. green (solid line) boxes 24 indicating successful predictions and red (dashed line) boxes 22 indicating unsuccessful predictions). Indicating the success of past predictions on the same interface as the one in which a future prediction is entered may aid a user in making more accurate predictions. Such past predictions may have been made by other users, and in such a case, this may be used as a training exercise for a user to learn from a more experienced user.

In a similar vein, in order to assist a user in making predictions which are useful and/or accurate, the boxes placed by other users may be displayed on the interface. These may be predictions of more experienced users, or, continuing the electricity generation example above, these may be predictions based on users in other regions, or users controlling other electricity generation facilities. A user may duplicate such predictions, or modify their own predictions based on such other users' predictions. Rather than displaying boxes corresponding to actual other users, the interface may display boxes representing typical predictions taken by certain classes of users. This may, for example, be an average prediction for users who are known to make accurate and/or useful predictions. These average or typical predictions may be displayed as one or more boxes, or as a 'cloud' indicating the area in which predictions are common. The density of the colour of the cloud may indicate the density of predictions in that area. Different coloured clouds and/or boxes may be used to illustrate different classes of users. Such an arrangement would reduce the total number of boxes being displayed, whilst maintaining the general trend information.

3D Interface In the examples described above, there would likely be a number of different variables a user would usefully like to be able to predict, and predictions made on one variable may impact upon predictions made on another variable. For example, a high probability of being in the correct temperature range at a given time may mean a lower probability of the pressure being within a certain acceptable range. It is therefore beneficial for a user to be able to view a number of different variables at the same time so as to effectively manage multiple variables simultaneously. Additionally, further user interfaces may be useful so as to review the same variable, but superimposed with another user's (or class of users') activity. Figure 5(a) shows a schematic of a '3D interface' whereby multiple 2D interfaces 90, 95, 100, as described above, are viewable in one view.

As shown in Figure 5(a), each 2D interface 90, 95, 100, is in its own layer distally offset from each other respective layer, and the user is able to zoom in and out so as to switch primary focus between the different 2D interfaces 90, 95, 100.

Figure 5(b) shows the interface as seen by a user. The information relating to the primary interface is shown in solid lines 1 , whereas the interface in the layer behind is shown by dotted lines 101 . In practice, this may be represented as being fainter and/or smaller, so as to give the impression of depth to the interface. Further interfaces may be shown in yet fainter detail and/or smaller indicating that they are at yet 'deeper' layers.

In one example, the time series 1 and 101 may represent related variables, such as 'temperature' and 'pressure'. As can be seen in Figure 5(b), a user is able to determine that the two variables correlated with one-another historically and thus would be able to adjust their relative predictions 20, 120 accordingly. Such an interface allows simple comparison between variables which could lead to improved predictions.

In one example, a toolbar is superimposed over the interface and shows information relating to the primary 2D interface, and the relative position of the primary 2D interface to other 2D interfaces.

The 3D interface may be in a 'carousel' format, so if the user were to continuously 'zoom in', they would eventually return to their initial view.

A user may wish to alter the scale of the y axis and/or x axis, such a scale change may occur across a number of different 'layers' so that the correlation can still be seen. Alternatively, a user may wish to view one layer at a different time period to another, for example view the predictions made by a certain user 24 hours ago as compared to the predictions made by another user 48 hours ago. As described above, the scale of the right (future) and left (past) sections of the interface may be adjusted independently of one-another.

Such an interface thereby allows a user to simultaneously view and interact with multiple time series. Comparative interface

An alternative / complementary interface is shown in Figure 6 where the interface is split into an upper interface showing the value of a variable, predictions for the future, and past predictions (as described above); and a lower interface indicating a comparison to other users making comparable predictions relating to an identical (or sufficiently similar) variable.

Such an interface allows a user to compare their predictions to those of other users; in such a way, a user is able to rate their performance relative to other users rather than in an absolute sense. This means that if the variable is particularly hard to predict, the user may be disheartened were they not to be informed that other users were finding it similarly difficult to predict. Conversely, the user may be motivated to improve on their performance that they otherwise would have thought would be acceptable if informed that other users are outperforming them.

The comparison may take the form of a ranking system whereby users are ranked on the basis of the frequency of accurate predictions. Such a ranking system may require a certain number or frequency of predictions, and certain qualifiers as to the type of prediction. For example, a user may receive more credit for correctly predicting an event which had a 1 % probability of occurring at the time of prediction compared to one which has a 99% probability of occurring at the time of prediction. Such a user interface thereby retains the user's interest in the prediction process thereby encouraging them to improve their performance, and consequently producing more efficient or useful performance and/or output.

An example where a comparison with another user would be beneficial is where two users predict energy demand. Whilst one user may be consistently getting correct predictions, another user may be ranked higher than that user due to the other user accurately predicting more unlikely events (for example, a tighter range of demands). This may encourage a user to tighten their predictions. The consequence of tight, accurate predictions in the demand for energy may enable to source the correct amount of energy to be placed on standby whilst minimising wastage. In another example, the comparison with other users may be competitive. Figure 6 shows an interface where a competition or 'tournament' is in progress. The user selects a "table" with characteristics which match characteristics of the predictions they wish to make, and waits for the competition to commence after the table is full. Once the table is full, each user is required to obtain a certain amount of credit in a certain time period by making predictions on the variable, or set of variables as defined for the table. Credit can be accrued by predicting particularly unlikely events, or consistently accurately predicting relatively likely events, or a mixture of both.

A time limit may be imposed so as to disqualify users who have not reached a certain level of credit - in such a way the number of users in the competition is reduced as time goes on, eventually resulting in one user (or group of users) being declared the winner.

Such a competitive element to prediction may be undertaken in parallel to a user's normal activity. For example, a user may typically be predicting the weather for South East England, and they may wish to enter one or more competitions so as to bring an additional level of interest to their usual activity. This would likely increase the user's engagement with the prediction interface and encourage them to participate more frequently and for longer periods. This creates additional information, leading to crowd sourced improved predictions and the potential to empirically adjust prediction methods (for example). Figure 7 shows a schematic of an apparatus in the form of a server 200 adapted to generate the user interface as described above. The server comprises a processor 202 in communication with a number of modules. These include a user input module 204 for receiving user inputs, such as the parameters of a prediction; a display output module 206 for outputting a display to a user device, for example, a graphical user interface displaying a region corresponding to the user's prediction; a data input module 208 for receiving data relating to the variable value; and a memory 210 for storing information relating to past and predicted variable values. Such a server is shown as a single apparatus, but may be split into a number of suitably connected servers.

Figure 8 shows the interaction between the server 200 and a plurality of users 214. Each user 214 may send and receive data to or from the server 200 via the internet 212. This may be via a wired or wireless link. In one example, each user possesses a device with an application (app) on which data can be sent and received. The devices may be smartphones, tablets, or personal computers, optionally with a touchscreen interface. Prediction method

So as to enable more accurate, faster and more efficient predictions, at least the following factors should be taken into account:

The performance achieved by algorithms (speed, repeatability, accuracy) is not necessarily uniform, which means that some algorithms will perform better than others under some circumstances.

Prediction often happens in the near future, and there needs to be some provision for the risks associated with long-term trends.

A very fast response is often required.

It may not be known if there will be a trend up or down in the future, and one may not be able to rely on past positive or negative trends .

Calculating every probability afresh every time requires significant processing power. A method of calculating the probability of the prediction being accurate (i.e. that a variable will remain between the specified upper and lower bounds at a future date) is to simulate a number of predictions (termed 'traces') and determine the percentage of these simulations that satisfy the conditions. The different simulations may be based on different prediction algorithms, or use marginally different initial conditions. In non-linear systems (such as weather forecasting) a small variation in initial conditions (e.g. a rounding error in a recorded temperature) can have a large effect on the future state of the system.

Over time, it may be determined that a certain algorithm (or class of algorithms) tends to be more accurate than others, so such algorithms may be given more weight in subsequent probability calculations.

Figure 9 shows in overview the method of calculating a probability of a variable being within a certain bound at a point in the future described above:

51 . Determine a plurality of future scenarios (traces);

52. For each trace, determine whether they are within a specified upper and lower bound at a point in the future; 53. Determine the percentage of traces which within a specified upper and lower bound at a point in the future; and

54. Output a probability to a user. If the prediction is a 'box' prediction as described above, the traces are determined whether they are within a specified upper and lower bound over the specified time window in the future (i.e. the prediction 'succeeding' as shown by trace (d) in Figure 3).

A method of generating a series of 'traces' is now described with reference to Figure 10. Solid lines showing the route of a single trace, and the dashed lines indication the processing undertaken to calculate that trace.

1 . Aggregate 1 second value steps up/down from historical data (Queue). This may be from (for example) the previous 24 hours.

2. Starting from the current value 302 (via the variable value feed 300), randomly pick steps from the Queue 306 to show 1 ,000 possible value changes 304 over 24 hours with 1 second increments. This random selection is termed calculates a trace 308 and is stored in a trace array 310.

3. For each second, scale 312 the value-axis based on maximum and minimum values for that second using a one-dimensional scale vector.

4. Create a scale table 314 over the next 24 hours, with 1 second increments, with values that have a 1 ,000 value axis resolution for each step, where each step is scaled based on the value-axis scale vector.

5. Populate the table with the number of traces that pass through each cell of the table. This is stored in a probability array 316.

6. The number of traces through a cell = the 0/00 probability of it happening.

7. Select a value range, total the probabilities in the range and determine 318 the probability of that range happening.

8. Output said probability to the user 214. A further optional step may be to add an uncertainty factor (or margin).

This process occurs continuously so that the most recent data is used.

It should be appreciated that the process in use is likely to be user driven - insofar as a user requests the probability of a certain scenario and the calculation is performed.

In such a way, the method is fast, efficient and easily adjustable. By using stored tables of values, the client app can give immediate response based on cached data, with a full probability quotation replacing the cached response as soon as is available.

It should be appreciated that greater or fewer than 1 ,000 traces may be appropriate depending on the context, i.e. if a greater resolution is required, more than 1 ,000 traces may be appropriate, or if speed is important, fewer than 1 ,000 traces may be appropriate. The various stages of the process described with reference to Figure 9 are described in turn below.

Queue refresh - 306

The first step is to create and maintain an infinite (circular) list of possible variable value increases and decreases.

Figure 1 1 shows the steps up (green - indicated as single hashed) and down (red - indicated as cross-hashed) during a time period. The Queue matrix contains 1 ,000 such steps in a continuously updated matrix.

This process maintains a Queue with 1 ,000 values batch(m), batch(m+1 ), ... Each batch(m) is the sum of the value changes during 1 second.

The method begins with 1 ,000 values in Queue since the last session.

Variable value frequency is the same frequency as observed on the previous day. For example, 10ms.

T = Predictions / second = 1 / variable value frequency = (e.g. 100)

m=0

Queue = 1 ,000 deep circular queue filled with historical T-delta value sums (defined below).

Predictions (values) begin to come in. QUEUE REFRESH: Collect next T predictions

from Predictions_collected to Predictions_collected + T

Comment: this takes the next T predictions, and sums all value changes

The predictions are prediction(n) with 0<=n<=T

Discard every prediction(n) where the Value (prediction(n)) = Value (prediction(n-

1 ))

Comment: this gets rid of oversampling / non-data points

With remaining predictions:

Batch (m) = sum all (prediction(n)-prediction(n-l ))

Randomly multiply batch(m) by +1 or -1 to kill trends

Push Batch(m) into Queue and dequeue Batch(m-1 ,000) Comment: Replace oldest queue item with new queue item If m>1 ,000, m=0, else m = m+1

Go back to QUEUE REFRESH

Trace - 310

Trace shows 1 ,000 lines of possible random future value developments, starting from the current variable value.

A 1 second resolution over a 24h period, means 86,400 time slots. A 60 second resolution over a 60 day period has the same number of time slots. There is therefore a trade-off between resolution and time period for a given number of time slots. It will be appreciated that such a trade-off will be context-driven.

An array is created with 86,400 columns (corresponding to each time slot) and 1 ,000 lines (corresponding to each trace). This array provides the variables offsets from the current value.

Each line in Trace represents one opinion of the future value developments of the variable. There are 1 ,000 lines, meaning 1 ,000 different opinions about what the future value development will be.

Each element in Trace contains a value. Starting each line with the value 0 to indicate the offset from the starting value (= 0 in the beginning), each line is incremented or decremented by random steps moving from left to right, for example: Column 1 Column 2 Column 3 Column 4 Column 5

Line 1 4 3 4 6 8

Line 2 -3 5 7 6 9

Line 3 2 5 -7 -9 -6

TRACE

tline = 0

tcolumn = 0

TLINE:

Trace (tline, tcolumn) = value

Comment: The current value from the data feed

While column < 86,400

t = random number such that 0<=t<=1 ,000

Trace (tline, tcolumn+1 ) = Trace(line, column) + batch(t)

tcolumn = tcolumn + 1

If t>1 ,000, t=0 else t = t + 1

End while

tcolumn = 0

If tline <= 1 ,000, go back to TLINE

Go back to TRACE

Using the method described above, an array is created with 1 ,000 lines of probability data, with a resolution of 86,400 steps over a 24h period, and is continually updated. The last values in each line are the ending values = Trace(any_line, 86400)

Separate workers can cascade from the ending values to generate Traces for time periods beyond 24h. Each such Trace is called Trace24_line_xxxx (e.g. Trace24_line_0123), and contains 1 ,000 new lines of data.

To avoid 1 ,000 x 1 ,000 = 1 million lines or data in Trace during the time period 24h - 48h, Trace24/48 may only select one random line from each Trace24_line_xxxx.

This gives a Trace24/48 with 1 ,000 lines of data and 86,400 columns. A separate worker can then continue the cascade. Such a method is described in more detail below with reference to Figure 13. It should be appreciated that if processor power / time allows, the time period may be greater than 24 hours, or more than 1 ,000 lines of data are created.

Scale - 314

The goal with Scale is to have 1 ,000 steps from min to max for any column. The result is a similar user experience when selecting ranges, regardless of column.

Increasing the number of lines covered by a prediction increases the probability of success by similar amounts. PScale is an array with 86,400 columns and 1 line which contains the maximum absolute value offsets for each column in Trace.

In an example where four traces start from the same point and then diverge increasingly over time; PScale has small values on the left (small offset from the starting value) and larger values on the right (larger offsets from the starting value). Scale is an array with 86,400 columns and 1 line which contains the y-axis step lengths for each second over a 24h period, because we need higher resolution for 60 second users than for 24h users.

If users want to predict close to the current time, the divergence of offsets will be small and the user will still want to predict with reasonable resolution. Conversely, if the user predicts far from the current time, the divergence of offsets will be large.

Scale provides the step sizes needed from zero offset to the maximum offset foreseen using 1 ,000 random steps by 1 ,000 random traces.

PSCALE-LINE

pscale_temp=0

psline = 0

pscolumn = 0

While pscolumn < 86,400

PSCALE-COLUMN

While psline <1 ,000 If the absolute value of Trace(sline,scolumn) > pscalejemp, pscalejemp = Trace(sline, scolumn)

psline = psline + 1

End while

pscale(sline) = pscale_temp

scale(psline) = (2/1 ,000) * pscale(psline)

pscalejemp = 0

pscolumn = pscolumn + 1

Go to PSCALE-COLUMN

Odds (probability - 316)

Odds allows the calculation of the probability of a variable value being in a range at a future time (the expiry time).

Odds is an array with 86,400 columns and 1 ,000 lines. Each "pixel" in the Odds array shows the probability of that micro-value-range happening, based on how many lines in Trace that go through that value range.

The sum of all values in a column in Odds = 1 ,000 for every column, because Trace shows 1 ,000 lines of possible random future value developments.

Odds may be symmetric around value, (i.e. Odds(+value, column) = Odds(-value, column).

ODDS

oline = 0

ocolumn = 0

Comment: Let's first take care of the top edge cases

MAXLINE

While ocolumn < 86,400

j = 0

While oline =< 1 ,000

Range_min = value + 500 * scale(oline)

If Trace(oline, ocolumn) > Range_min, j = j + 1 oline = oline + 1

Odds(oline, ocolumn) = j

Odds(-oline, ocolumn) = j End while

End while

CELLS

oline = oline + 1

While ocolumn < 86,400

j = 0

While oline < 1 ,000

Range_max = value +(500-oline+1 ) * scale(oline)

Range_min = value + (500-oline) * scale(oline)

If Range_max >= Trace(oline, ocolumn) > Range_min, j = j + 1 oline = oline + 1

End while

Odds(oline, ocolumn) = j

Odds (-oline, column) = j

End while

Go back to ODDS

How to use Odds

Figure 12 shows an example calculation to determine the probability of a value range being accurate at an expiry time.

System output: Probability (%)

Inputs: Max value

Min value

Expiry time (seconds from now)

Dilution (optional) Method:

From t = min value to t = max_value with step scale(Expiry time)

Total = Odds(t, Expiry time) t = t + scale(Expiry time)

While t <= max_value

t = t + scale(Expiry time)

Total = Total + Odds(t, Expiry time)

End while

Comment: Total is now the probability of the value being in the range min value to max_value at the Expiry time. Total is expressed in 1/000ths.

Possible_outcomes = 1 ,000

Dilution = <manual input, such as 50>

This step is optional, used where there is a need for the total probability to be greater than 1 so as to (for example) reduce the efficacy of users gaming the system.

Total_outcomes = Possible_outcomes + Dilution

User success = count from Odds at the Expiry time from Min value to Max value

User chance = User success / Total outcomes

Kaizen chance = (Total_outcomes - Positives)/Total_outcomes

Kaizen margin = Dilution / Total outcomes

CreditjTiultiple = Possible_outcomes / User success

If the user value at the expiry time is in the range, the user is credited an amount weighted by the CreditjTiultiple.

Operation

The above calculation can be quite processor intensive and as such is preferably performed server-side as opposed to on the client side. However, there is a requirement for a high-speed, responsive user interface when changing value selections which may conflict with server-side calculations.

A solution is to utilise a data hierarchy.

The immediately available data is stored in the client, and consists of an old subset of the Odds table. This method provides a fast user interface which gives information that would under usual conditions be of a suitable accuracy. Only very rapidly changing prices would be significantly affected by the use of slightly old data. As the user configures and thinks, the server updates the top priority parts of the client database and calculates exact quotes for real predictions.

There are two cases where the server may decide not to accept a prediction made, but rather submit a re-quote (hoping the user will press CONFIRM again with the new probability):

When the user presses CONFIRM when client data only is displayed (before Odds data from the server has been made available).

When the user presses CONFIRM when the data presented to the user is too old. Beyond the first 24h in increments

Figure 13 illustrates an example method for calculating probabilities further in the future. As discussed above, this may not represent beyond 24 hours, rather beyond the time period which is specified as a trade-off with the resolution. The further into the future one looks, the less time critical the data. For each subsequent period, one layer of Trace and Scale calculation is added, yielding one more layer of Odds. This is preferably performed using only a subset of the 1 ,000 traces, and the subsequent trace calculation may be at a lower resolution to the first calculation.

As a consequence, the further into the future one looks, the slower the required refresh rate. This is so as to manage processing power.

Alternatively, the same Odds table may be re-used by initiating the trace program again for each trace, starting from the respective end values for the initial time period. This increases the processing power required linearly (as opposed to non-linearly if creating multiple traces from each starting point) and thus can provide fast predictions for time periods further into the future, albeit potentially at the expense of resolution and / or accuracy.

Multiple algorithms

Multiple algorithms can be used at the same time, where the performance of each algorithm can be measured using ever-increasing historical data. By calculating the Odds table, and then scaling the Odds table as exemplified below, the required maximum of 1 ,000 possible outcomes per column can be maintained.

Sum Sum Sum Sum Sum Sum 81.73 85.82 102.76 72.28 70.09 93.91 Scale Scale Scale Scale Scale Scale 12.24 11.65 9.73 13.84 14.27 10.65

Sum Sum Sum Sum Sum Sum

1000.00 1000.00 1000.00 1000.00 1000.00 1000.00 Alternatives and modifications

Various other modifications will be apparent to those skilled in the art for example the region may not be a rectangular 'box', but one or more of the sides may be sloped or curved. In particular, the upper and lower bounds may be time-dependent, for example following a downward or upward trend.

It will be understood that the present invention has been described above purely by way of example, and modifications of detail can be made within the scope of the invention.

Reference numerals appearing in the claims are by way of illustration only and shall have no limiting effect on the scope of the claims.