The subject matter of this invention relates to risk models and more particularly to a system and method of building and utilizing a risk model for long range risks.
Many enterprises face long range risks involving years or decades. Unfortunately, it is extremely difficult to evaluate such risks in decision-making and planning. For short-term events involving a time frame of a few days to months, prediction models based on well-known statistical and machine learning models can be built if there is sufficient relevant data. There is often no data however that can be leveraged for modeling risks over a long horizon. Therefore, planners must often rely almost exclusively on the judgments of human beings in the form of assessments.
An example of this occurs in the oil and gas industry. The discovery of new sources of hydrocarbons and development of current sources is of key importance in today's economy. The largest investment and most critical decisions are associated with the early phases of exploration, appraisal and development. Uncertainty about the geology setting of the reservoir, oil price, supply and demand, and complex political scenarios make these investment decisions very challenging. Therefore, a good understanding of these uncertainties could lead to better management of different types of risks, which could be critical to achieving profitability.
A significant amount of effort is expended in the industry on characterizing and modeling the uncertainty about under-the-ground uncertainties (e.g., reservoir properties), referred to as technical risks. However, there has been a more recent and growing recognition that other kinds of risks, such as the weather patterns, environmental regulations, wars and disputes, labor strikes, etc., can have a significant impact on a given enterprise. As such, these risks should be taken into consideration for decisions about acquisition or field development. These uncertainties are referred to as above-the-ground risks or non-technical risks (NTRs). The industry would benefit greatly from having sophisticated tools to help build quantitative models for non-technical risks, so they can be used in conjunction with models for technical risks in a reservoir's life cycle.
Aspects of the disclosure provide a system and method of building and utilizing risk models for long range risks (such as NTRs in the oil and gas industry). This disclosed solution provides an analyst or multiple analysts with tools to construct risk models for long-range risks. It involves a risk model representation, a risk model builder and risk model engine/simulator. The risk model representation is a network of risk event nodes, risk factor nodes, and impact nodes plus parameters defining discrete and continuous probability distributions. Risk factors are modeled as discrete nodes, and dynamism in the model is generated through the risk event and impact nodes. This representation is designed to achieve a balance between expressivity and practicality, or in other words, the model can capture a wide range of situations and certain aspects of temporality without requiring an excessive number of parameters. The risk model builder helps construct models consistent with this representation and the risk model engine helps compute over the models by enabling forward simulations that provides samples of the probability distribution of potential impacts.
A first aspect discloses a risk system for analyzing long-term risks, comprising: a risk knowledgebase that includes risk information associated with at least one domain; a risk model builder that builds a representation of a risk model based on inputs from a user interface and the risk knowledgebase, wherein the risk model includes risk factor nodes, risk event nodes and impact nodes; and a risk simulation engine that processes the representation and computes predicted outcomes.
A second aspect discloses a computer program product stored on a computer readable storage medium, which when executed by a computing system, analyzes long-term risks, the program product comprising: program code that accesses risk information associated with at least one domain from a risk knowledgebase; program code that builds a representation of a risk model based on inputs from a user interface and the risk knowledgebase, wherein the risk model includes risk factor nodes, risk event nodes and impact nodes; and program code that processes the representation and computes predicted outcomes.
A third aspect discloses a computerized method for analyzing long-term risks, comprising: providing risk information associated with at least one domain from a risk knowledgebase; building a representation of a risk model based on inputs from a user interface and the risk knowledgebase, wherein the risk model includes risk factor nodes, risk event nodes and impact nodes; and simulating the representation and computing predicted outcomes for a set of parameters.
These and other features of this invention will be more readily understood from the following detailed description of the various aspects of the invention taken in conjunction with the accompanying drawings in which:
The drawings are not necessarily to scale. The drawings are merely schematic representations, not intended to portray specific parameters of the invention. The drawings are intended to depict only typical embodiments of the invention, and therefore should not be considered as limiting the scope of the invention. In the drawings, like numbering represents like elements.
Referring now to the drawings,
As shown in
Risk events or simply “risks” 42 (e.g., R1, R2, R3, R4) are hierarchical children of the risk factors 40 and generally comprise potential events that might occur as a result of the risk factors 40. Risk events 42 may be represented as discrete-state probabilities conditioned on risk factor probabilities and/or continuous distributions that represent the onset of an event (e.g., single-event or recurring), time/frequency of occurrence, and duration. For example, a risk event 42 associate with a “political unrest” risk factor 40 may be “civil war”. Risk events 42 can only have risk factors 40 as parent nodes. Risk events 42 have a defined frequency, either single-event or recurring, depending on how many events could occur in the time period of interest.
Impacts 44 (e.g., I1, I2) are potential consequences of a given risk event 42. Impacts 44 are generally represented as variables with continuous states and therefore continuous probability distributions. Examples of impacts 44 associated with a “civil war” risk include, e.g., partial shutdown of facilities, monetary compensation or fines, loss of life or quality of life, etc. Impacts 44 can only have risk event nodes as parents and must have at least one parent.
Each risk event 42 may be further represented as a super-node 43 in the risk model representation, which effectively represents vector-valued variables that are associated with properties of node, including, e.g., a type, frequency and duration. The network representation on the right side of
When building a risk model representation 26, the analyst must define a discrete set of states for each risk factor node and assess a marginal probability for each state. In this case, the analyst might define two states for political unrest: ‘low’ and ‘high’, with probabilities 0.75 and 0.25 respectively. The analyst must also define a discrete set of states for each risk event node, and assess the appropriate conditional probabilities. In this case, the analyst might define states of “type” of civil war as “major” and “minor,” and assess the conditional probabilities for war to be “major” as 0.8 if political unrest is “high” and 0.1 if political unrest is “low” (from which it can be derived that the conditional probabilities for war to be “minor” are 0.2 if political unrest is “high” and 0.9 if political unrest is “low”). The analyst must also provide characterizations of the “frequency” and “duration” of the risk events, conditioned upon the type. For example, in this case, the analyst might assess the frequency of events to be Poisson distributed with rate 0:01 per year if the type is “minor” and 0:1 per year if the type is “major.” Furthermore, the analyst could assume that whenever a risk event 42 occurs, the duration of the event (the time period during which the risk event is active). For example, the risk event may be assumed to be uniformly distributed from 1 to 3 years regardless of whether the type is major or minor. The analyst must also assess the impact of risk events over their duration. For example, in this case the analyst may determine that facilities are completely shut down when the risk event is active and 100% operational otherwise. Alternatively, the analyst might posit that over the duration of a war the facility will be between 0% and 50% operational, with the degree of closure generated according to a uniform distribution.
As an example, the following is a JSON representation of a risk model representation 26 pertaining to nationalization. The main features include:
If and when nationalization occurs, two impacts 44 ensue from that event. First, the fraction of wells that remain in operation is 100% if nationalization does not occur, and 0% if it does. Second, there will be monetary compensation from the government of an amount given by a triangular probability distribution running from a minimum of $5M to a maximum of $25M with a peak at $15M.
As noted in
The JSON example provided above is an example of output that might be generated by RMB 24. RMB 24 utilizes a user interface 22 and query system 32 that elicits from the user 30 various details needed to build a risk model representation 26. RMB 24 creates a bridge between concepts and beliefs of the user 30 and those required by the risk model representation 26. To achieve this, RMB 24 presents meaningful questions to the user via the query system 30 to extract details needed for a precise representation of the risk model 27.
An example of the risk model building process is illustrated in the flow diagram of
Next, at S3, an assessment of the risk event occurrence, i.e., onset, is constructed. The assessment may be expressed as conditional probabilities involving relationships among risks and risk factors.
At S4, the user is queried (or the system evaluates) whether the assessment is satisfactory. In other words, is there enough information or understanding of the risk event to adequately capture the likelihood of an event onset. If the assessment is not deemed satisfactory at S4, then potential risk factors can be identified and assessed at S9. Existing risk factors for a risk event may be stored/retrieved from risk knowledgebase 34 by querying the user. In the examples provided herein, risk factors include, e.g. political unrest, resource nationalism sentiment, resource expropriation acts in neighboring countries, etc.
Once the assessment is deemed satisfactory at S4, then potential impacts are identified at S5, including probabilistic characterizations of the severity, duration and impact of a risk event. Impacts for a risk event may likewise be stored/retrieved from risk knowledgebase 34.
At S6, a determination is made whether all risk events have been studied, and if not, the process loops back to S2. If yes at S6, then RMB process ends at S7 and the risk model representation 26 is generated and outputted.
The sequence of questions to be asked by the risk model builder GUI can be defined as a graph, where each node is an abstraction of the page that would be presented to a user, containing questions, dropdown menus, dialog boxes into which responses can be input, etc. For flexibility, the graph (and hence the UI) may be defined in JSON. The RMB 24 reads the JSON and interprets it into a UI that elicits the structure and parameters of the risk model representation 26 from the user 30. As an example, below is a JSON snippet that represents just a first node of the graph, which defines a panel that might be presented to a user to elicit which type of risk event the user wants to consider. Note that the children substructure indicates that the user will next be directed to additional nodes that represent other panels that elicit parameters having to do with the onset and duration of the risk event, as well as its impact.
Here is an example of the JSON description for eliciting onset information for a risk event node (one of the children of the Risk Event Root JSON above—onset.RiskEventOnset); each node is a point in the decision tree in RiskModelBuilderEventOffset:
Here is an example of the JSON describing elicitation of duration information (duration.RiskEventDuration mentioned in Risk Event Root above):
Finally, here is an example of the JSON describing elicitation of impact parameters (impact.RiskEventImpact in the Risk Event Root JSON described above):
In the above example, the user interface 22 is rendered automatically from JSON which drives the user 30 through the querying process.
Two of the main types of queries that are helpful in this context are:
1. statistics of risk factors most frequently associated with a given region; and
2. documents that are most relevant to a given region and risk type from which a user might be able to infer risk model parameters.
Once the process is complete, the risk model representation 26 may be stored in a database, from whence it can be retrieved by any other element of the risk system 18 that may wish to use it, such as the risk simulation engine 28 (
Once the risk model representation 26 is completely specified, it can be analyzed by any of a number of inference techniques. In one embodiment, a risk simulation engine 28 performs such an analysis as follows. First, the risk simulation engine 28 receives a request to generate a requested number of risk impact realizations (i.e., simulations) for a specified risk model 26. Next, the risk simulation engine 28 retrieves the specified risk model representation 26 and uses forward sampling simulation techniques to generate the requested number of realizations that represent a probability distribution of the impacts over a time period of interest.
In a second embodiment, the request is received instead by a risk simulation manager 29, which either retrieves realizations previously computed by the risk simulation engine 28 from a database, or (if none satisfying the request have been pre-computed) risk simulation manager 29 passes the request to the risk simulation engine 28, which performs as described in the first embodiment and returns its results to the risk simulation manager 29, which returns them to the caller and stores them in a database for possible future use.
Upon receiving a request to compute n instances of a specified type of impact (e.g. well downtime wd, cost c, or compensation m) for a given risk model representation r, the risk simulation manager 29 either retrieves these instances from a local database, or arranges for them to be computed by the risk simulation engine 28. If a computation is necessary, risk simulation manager 29 contacts a profile manager to obtain a JSON expression of the risk model representation labeled r and sends the JSON along with a number of instances n to the risk simulation engine 28.
The risk simulation engine 28 generates n instances of whatever subset of wd(t), c(t) and m(t) are specified by the model r. Of note is that the risk model representation 26 itself may contain a specified start and end date that indicates the time span over which the risk model representation 26 is valid. When the risk simulation manager 29 is called, the caller can also specify a date range (which may be contained within the risk model's range of validity). This allows the generated risk simulation to mesh with the needs of the caller.
It is understood that risk system 18 (
Computer readable program instructions described herein can be downloaded to respective computing/processing devices from a computer readable storage medium or to an external computer or external storage device via a network, for example, the Internet, a local area network, a wide area network and/or a wireless network. The network may comprise copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers and/or edge servers. A network adapter card or network interface in each computing/processing device receives computer readable program instructions from the network and forwards the computer readable program instructions for storage in a computer readable storage medium within the respective computing/processing device.
Computer readable program instructions for carrying out operations of the present invention may be assembler instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state-setting data, or either source code or object code written in any combination of one or more programming languages, including an object oriented programming language such as Java, Python, Smalltalk, C++ or the like, and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The computer readable program instructions may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider). In some embodiments, electronic circuitry including, for example, programmable logic circuitry, field-programmable gate arrays (FPGA), or programmable logic arrays (PLA) may execute the computer readable program instructions by utilizing state information of the computer readable program instructions to personalize the electronic circuitry, in order to perform aspects of the present invention.
Aspects of the present invention are described herein with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer readable program instructions.
These computer readable program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks. These computer readable program instructions may also be stored in a computer readable storage medium that can direct a computer, a programmable data processing apparatus, and/or other devices to function in a particular manner, such that the computer readable storage medium having instructions stored therein comprises an article of manufacture including instructions which implement aspects of the function/act specified in the flowchart and/or block diagram block or blocks.
The computer readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus or other device to produce a computer implemented process, such that the instructions which execute on the computer, other programmable apparatus, or other device implement the functions/acts specified in the flowchart and/or block diagram block or blocks.
The flowchart and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified logical function(s). In some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts or carry out combinations of special purpose hardware and computer instructions.
Computing system 10 that may comprise any type of computing device and for example includes at least one processor 12, memory 20, an input/output (I/O) 14 (e.g., one or more I/O interfaces and/or devices), and a communications pathway 16. In general, processor(s) 12 execute program code which is at least partially fixed in memory 20. While executing program code, processor(s) 12 can process data, which can result in reading and/or writing transformed data from/to memory and/or I/O 14 for further processing. The pathway 16 provides a communications link between each of the components in computing system 10. I/O 14 can comprise one or more human I/O devices, which enable a user to interact with computing system 10. Computing system 10 may also be implemented in a distributed manner such that different components reside in different physical locations.
Furthermore, it is understood that the risk system 18 or relevant components thereof (such as an API component, agents, etc.) may also be automatically or semi-automatically deployed into a computer system by sending the components to a central server or a group of central servers. The components are then downloaded into a target computer that will execute the components. The components are then either detached to a directory or loaded into a directory that executes a program that detaches the components into a directory. Another alternative is to send the components directly to a directory on a client computer hard drive. When there are proxy servers, the process will select the proxy server code, determine on which computers to place the proxy servers' code, transmit the proxy server code, then install the proxy server code on the proxy computer. The components will be transmitted to the proxy server and then it will be stored on the proxy server.
The foregoing description of various aspects of the invention has been presented for purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise form disclosed, and obviously, many modifications and variations are possible. Such modifications and variations that may be apparent to an individual in the art are included within the scope of the invention as defined by the accompanying claims.
Number | Date | Country | Kind |
---|---|---|---|
18382303.8 | May 2018 | EP | regional |