RAMAS® Risk Calc 4.0
Risk Calc makes new methods available for conducting distribution-free or nonparametric risk analyses. You decide what information or assumptions should be used, and the software calculates bounding estimates of risks. Often these bounds can be shown to be the best possible. Using Risk Calc, you can do quality assurance reviews for probabilistic risk and safety assessments. It supports probability bounds analysis, standard fuzzy arithmetic, and classicalinterval analysis. Its applications are like those of Monte Carlo packages such as @Risk or Crystal Ball, but Risk Calc does not require you to specify precise details of statistical distributions and their dependency relationships when empirical data are lacking.
Without perfect knowledge, we can never be sure about the exact values of numbers used as input. Virtually all real-world calculations harbor some uncertainty. RAMAS Risk Calc 4.0 uses
traditional methods such as probability theory and interval analysis,
the newest techniques such as probability bounds analysis,
fuzzy arithmetic to represent uncertainty.
It provides a convenient environment for computing with numbers in which all uncertainties are carried forward automatically. Risk Calc for Microsoft Windows brings sophisticated methods of uncertainty analysis into reach of anyone who can do arithmetic on a calculator.
RAMAS Risk Calc 4.0 runs under Microsoft Windows and is distributed with demonstration programs that run in DOS boxes. Risk Calc computes with scalars, intervals, fuzzy numbers, probability distributions, and interval bounds on probability distributions. It carries all the uncertainties through calculations automatically. You can enter numbers directly and perform calculations immediately, or you can create files with sequences of calculations, and run these files like programs.
Features of RAMAS Risk Calc 4.0
Risk Calc makes new methods available for conducting distribution-free or nonparametric risk analyses using
Probabilistic arithmetic (30 distributions)
Probability bounds analysis
Naive interval arithmetic
Other features include
Dimensional checking and units conversions
Standard arithmetic functions supported for intervals and distributions,
Accounts for arbitrary correlations,
Conservative results when dependencies are not known
Magnitude comparisons between uncertain numbers,
Envelopes, intersections and stochastic mixtures
Uncertainty characterization (width, breadth, etc.)
Pinching functions (middle, spanning, leftside, dispersive, etc.)
Backcalculation functions (decon, core, etc.)
Histograms that account for sampling uncertainty
Converts Excel spreadheet to Risk Calc
Imports data from Excel
Exports uncertain numbers and their graphs to Excel
Over 70 example scripts and function libraries
Recursive syntax wizard
Variable list editor
Automatic first and second moment propagation
Color coded graphical displays
Easy graphs to capture and print
Checks for logical variables
Fuzzy logic consistent with probability theory
Hybrid methods to combine probabilistic and fuzzy numbers
Editor for standard risk assessment tables
Programming (for, if, else, blocking, user-defined functions, comments, arrays, etc.)
Extensive documentation and help files,
Demonstration version software
Compatible with Windows XP and newer.
This software will let you specify probability boxes interactively. Software is now available that will accept the empirical information you may have about a parameter, including constraints, moments, order statistics, percentiles, shape or distribution family, modality, symmetry, etc., and synthesize bounds on the probability distribution. You can specify whatever empirical information is known, and can even draw constraints on the parameter graphically with a mouse. The software solves the implied cascade of inequalities to construct bounds on the parameter. In many cases, the resulting bounds will be best-possible expressions of the state of knowledge.
Q. Can you calculate with uncertain numbers?
Sure, you just need the right methods. Risk Calc supports both traditional interval analysis and classical probabilistic arithmetic. It also provides comprehensive implementations of fuzzy arithmetic and probability bounds analysis. These methods are especially useful when empirical data are of mixed quality and when uncertainty encompasses both variability and incertitude.
Q. How is uncertainty defined?
Risk Calc allows you to specify uncertainty in several ways. You can enter variables as scalars with no uncertainty, such as A = 5, or with ranges as interval uncertainty, such as B = [2,6]. Alternatively, you can represent uncertainty as a range along with a single best estimate, such as C = [2,3,6], or as a range along with a best estimate expressed as a range, such as D = [2,2.5,3,6], or something more complex. You can also specify a probability distribution like E = normal(5,1) or bounds on one when parameters are uncertain like F = pareto([60,80], [15,25]), or even distribution-free bounds like G = minmaxmean (0,1,0.3) which represents all possible distributions whose range is [0,1] and whose mean is 0.3. You can also specify units to accompany any of these numeric quantities, for example, density=[1,2,4] g per cm² or length=[8 ft, 6 m].
Q. What can Risk Calc do?
Risk Calc computes with scalars, intervals, fuzzy numbers, probability distributions, and interval bounds on probability distributions. It carries all the uncertainties through calculations automatically. You can enter numbers directly and perform calculations immediately, or you can create files with sequences of calculations, and run these files like programs.
Risk Calc supports standard arithmetic operations (+ , - , ×, ÷), mathematical functions (exp, log, min, max, sqrt, etc.), comparison operations (<, ≤, >, ≥, =, ¹), basic logical connectives (or, and, not, xor), several deconvolution operators, and string manipulation. Risk Calc also has many functions to characterize the features of uncertain numbers.
You can freely mix
Probability bounds in calculations.
Scalars, intervals and fuzzy numbers can also be be freely combined (fuzzy numbers and probabilistic numbers can be mixed together with special operations).
Risk Calc also accepts units that accompany numbers, checks that units entered balance dimensionally, and automatically handles unit conversions when necessary. In Risk Calc you can define variables, and you can automate complex expressions using loops, conditional statements, user-defined functions and procedures and other programming constructs. Risk Calc can also import and export data to disk files and Excel spreadsheets.
Q. What is probability bounds analysis?
Probability bounds analysis is a marriage of probability theory and interval analysis that handles uncertainty and variability more comprehensively than either one can alone. Risk Calc supports over 30 named distributions (normal, lognormal, binomial, Poisson, Weibull, Pareto, etc.). But with Risk Calc you can also describe distributions using whatever information is available even if it’s insufficient to specify any standard distribution precisely. Risk Calc lets you do calculations with these probability bounds without making any assumption about the shape of the distribution. If your inputs are independent, Risk Calc will get you a result faster than Monte Carlo methods, and it’s guaranteed to be accurate since it doesn’t involve random sampling. If they’re not independent—or if you’re worried about assuming they are without empirical evidence—Risk Calc will compute bounds on the result (usually mathematically the best possible) that circumscribe all possibilities. With Risk Calc you can use whatever information and assumptions you trust to get the best answer possible, instead of being forced to make assumptions and specifications you don’t believe just to get any answer at all.
Q. What is probabilistic arithmetic?
Probabilistic arithmetic lets you make calculations with probability distributions as conveniently as with ordinary numbers. For instance, if you know body weights are lognormally distributed and intake rates are uniformly distributed, what is the distribution of doses (intake/body weight)? Such problems are usually solved with Monte Carlo methods, but Risk Calc uses faster, semi-analytic algorithms to get the answers without random sampling. It can add, subtract, multiply, and divide distributions. If you tell it the distributions are independent of one another, it’ll use that information to get the best estimates possible. If you don’t want to make this assumption, it will get bounds that are guaranteed to enclose the true answer. The software can also do a variety of other operations like take powers, logarithms, etc. Risk Calc knows these distributions:
Q. What’s the difference between probability bounds analysis and Monte Carlo?
The following table synoptically contrasts probability bounds analysis with Monte Carlo simulation for uncertainty propagation.
Q. What is interval analysis?
The simplest method for propagating uncertainty through arithmetic calculations is to use interval (range) analysis. For example, suppose we want to add two numbers whose values we’re unsure about. If we know that the first number, say A, has a value somewhere between 4 and 6, and the other number, B, is between 8 and 10, then the result of A+B is between 12 and 16, as shown at left. The difference between these numbers, B-A, is the interval [2,6]. Risk Calc makes it easy to compute with intervals and it supports popular conventions for specifying intervals. You can enter intervals as [12.5± 0.5], as [2,3], or you can let Risk Calc interpret significant digits to create intervals automatically from your input. For example, [5.0] will be interpreted by Risk Calc as [4.95,5.05], and [5.00] will be interpreted as [4.995, 5.005].
Q. What is fuzzy arithmetic?
Fuzzy arithmetic is a generalization of interval analysis that treats uncertainty far more comprehensively. Instead of representing a number with a single interval, it uses a ‘fuzzy number’, a family of intervals stacked atop one another which together represent our estimate of the number for each of infinitely many levels of conservativism and optimism about uncertainty. Fuzzy arithmetic is a simple and potentially very useful way to propagate uncertainty through the cascade of calculations that forecasting and risk analysis typically involve because it yields both ‘worst case’ results and ‘best estimates’ at the same time.
Fuzzy arithmetic is based on a theory with less stringent axioms than probability theory uses so it is applicable in a wider array of circumstances with different kinds of uncertainty. For instance, it is appropriate for handling non-statistical uncertainty including that due to inability to make accurate measurements. The methodology is logically consistent, computationally inexpensive and does not require extensive empirical sampling. Fuzzy numbers can be specified directly to reflect your subjective impression of uncertainty or may be estimated as the consensus of opinions of diverse observers. There are several advantages(but also disadvantages) to using fuzzy arithmetic rather than Monte Carlo simulation in risk assessments.
Fuzzy arithmetic risk analysis does not always yield conservative answers in the face of uncertainty about dependencies. RAMAS Risk Calc supports all the basic arithmetic operations and standard mathematical functions (including trigonometric) for fuzzy numbers as well as other functions needed for characterizing uncertainty, backcalculations, etc.
Q. What’s the difference between fuzzy arithmetic and fuzzy logic?
There are several related ideas that have arisen from Zadeh’s theory of fuzzy sets. Fuzzy arithmetic is a formalism for making calculations with numerical quantities that are imprecisely known. These quantites are known as fuzzy numbers and are defined as fuzzy sets on the real numbers having a unimodal distribution that reaches unity for some value or values. They include ordinary scalar numbers and intervals as special cases. Fuzzy logic is the generalization of ordinary logic and allows truth values other than absolute truth and utter falsity. It’s fair to say that fuzzy logic is comparable to fuzzy arithmetic in the same way that logic is comparable to arithmetic. In other words, they don’t have much in common in terms of the kinds of problems they’re used to address. Fuzzy set theory is also used in other areas of science and engineering, including, for instance, fuzzy cluster analysis and fuzzy control theory. In particular, fuzzy arithmetic is a proper subset of possibility theory which handles general fuzzy sets of the real numbers (which could be multimodal or might not reach unity) called possibility distributions.
Q. When is fuzzy arithmetic better than analogous Monte Carlo methods?
There are several reasons why one might be interested in using fuzzy methods. Consider the following list.
Reasons to use fuzzy arithmetic.
Fuzzy arithmetic requires less data. The following table indicates the requirements for various methods of uncertainty propagation.
Fuzzy arithmetic is applicable to all kinds of uncertainty, no matter what its source or nature. Although probability theory makes a similar claim, one is required to adopt a subjectivist interpretation of probability to get this generality. I believe that a subjectivist interpretation is inappropriate for public health risk assessments. No matter how well trained and nobly motivated an analyst is, I don’t want his or her feelings or beliefs to be incorporated into the assessment without hard empirical support. If you disallow subjectivism, then Monte Carlo methods cannot be used on all forms of uncertainty and using them anyway can lead to non-protective conclusions. Fuzzy arithmetic is more general because it is a weaker theory.
Like Monte Carlo methods, fuzzy arithmetic provides a comprehensive distribution that characterizes results of all possible magnitudes, rather than just specifying upper or lower bounds. For this reason it should be preferred over worst case or interval analysis.
Fuzzy methods are fast and easy to compute. The following table gives the relative calculation speeds where M=[20,100] and N=[100,50000].
Fuzzy arithmetic is more conservative than Monte Carlo simulations that assume independence. Although many analysts seem to believe it is okay to assume all the input variables are independent of one another, it is easy to show this is false and can have a substantial effect on the results of a risk assessment. Although there are Monte Carlo methods that can be used when correlations are known, such empirical information is often unavailable.
Although conservative, fuzzy arithmetic is not hyperconservative like worst case or interval analysis. In this sense, fuzzy arithmetic is in between worst case and probability theory.
In fuzzy arithmetic, deconvolutions (which are required for back-calculations and remediation planning) are easy to solve. Deconvolutions are generally pretty difficult or even impossible with Monte Carlo methods.
Fuzzy arithmetic is easy to explain to lay people. Well, easier than probability theory anyway. It is just interval analysis done at many levels of confidence about uncertainty.
Reasons not to use fuzzy arithmetic
Despite its several advantages in a risk analysis, fuzzy arithmetic may not be appropriate for routine applications. The following are serious concerns about using the method.
Fuzzy methods are controversial. Many probabilists insist that they are errant or incorrect. Although some of this criticism seems to misunderstand that the approach is based a consistent axiomatic system that is different from that used in probability theory, assessments based on fuzzy methods will often engender mindless criticisms (in addition to the thoughtful criticisms it deserves).
Fuzzy arithmetic is certainly not optimal for risk analysis when there’re a lot of data that could be used to inform a Monte Carlo analysis.
The alpha levels which index fuzziness may not be comparable for different variables. It makes sense that my best estimate of A at, say, the top of a triangular fuzzy number ought be arithmetically combined with my best estimate of B. It also seems to make some sense that my most conservative estimates of A and B, at the bottoms of the fuzzy numbers, should be combined together. What doesn’t always seem to make sense is that as the possibilistic level of presumption [alpha] ranges from 1 to 0 for A, it exactly corresponds to the change in the level of presumption for B. What if the two fuzzy numbers were measured by different people who had different opinions about uncertainty? I can’t see any way to tie the two scales together except by an arbitrary convention. Fuzzy arithmetic insists on this and I don’t really have a defensible justification for it.
Fuzzy arithmetic does not yield conservative results when the dependencies among variables are unknown.
Fuzzy arithmetic cannot make use of knowledge about correlations among input variables to tighten bounds on risk estimates (although there has been some promising recent research in this area).
As in interval analysis and probability methods not implemented with Monte Carlo sampling, repeated variables in risk expressions make calculations cumbersome. The results are guaranteed to enclose the true answer, but they may not be as tight as possible. If they aren’t, they overestimate uncertainty.
Q. What about model uncertainty?
In the past, when people disagreed about which model should be used, or differed widely about which assumptions should go into it, you’d probably end up repeating the analysis for every possible combination of model choices and wading through the mountain of results. Risk Calc is the first software environment to provide comprehensive tools for handling model uncertainty, including uncertainty about the input distributions and their interrelationships. It provides consensus, envelope and imposition functions to synthesize several opinions into a single estimate. Risk Calc lets you account for a diversity of opinions in a way that doesn’t average incompatible opinions together.
Q. Can I work with arrays of numbers in Risk Calc?
Yes, but the structure is a compound variable rather than an array. A compound variable is just two variable names joined together with a period, or a variable and a constant joined together with a period. For instance, entering
a.2 = 4
i = 2
prints the answer 4. Compound variables do much of the work arrays do, such as in this code fragment.
for i = 1 to 4 do stem.i = i * 3
for i = 0 to 5 do print stem.i
The following 6 lines are the output from this little program:
where the first and last illustrate that the default value of a variable is its own name.
In principle, the second part of a compound variable could evaluate to a real number or even a string rather than an integer, so compound variables are actually even more flexible than arrays. Two- or higher-dimensional compounding is possible by using multiple periods (e.g., stem.i.j). Formal parameter references can also be compounded so, for instance, you can refer to $1.i inside a function or procedure.
Q. Why are logical and set operators different?
Logical and set-theoretic operations are not always compatible in the realm of uncertain numbers the way they are for real numbers. For example, set-theoretical union and logical disjunction are two formally distinct operations. It is only in special cases that they can be identified with each other. These special cases become rarer when we go from real numbers to uncertain numbers. In Risk Calc, the operators
or | || |||
and & && |&|
denote logical operators. These logical operators act on truth values, not sets or arbitrary numerical values. For instance, the expression
x | y
asks Risk Calc to evaluate the truth value of a disjunction. The arguments of this disjunction are presumed to be truth values themselves. Under ordinary logic, the arguments could only have values of zero (false) or one (true). In traditional fuzzy logic and probability theory, they could have values anywhere on the unit interval (between zero and one) representing graded degrees of falsity and truth, or frequency. In Risk Calc, truth values may be any kind of certain or uncertain number, so long as it is dimensionless and lies entirely within the unit interval [0,1].
Classical Boolean logic defines the truth value of a disjunction to be the greater of the truth values of the two arguments, so if at least one of the arguments is true, the disjunction is too. Traditional fuzzy logic defines the truth value of a disjunction to be the maximum of the truth values of the two terms so that fuzzy logic subsumes classical logic as a special case when the arguments are Boolean (i.e., either zero or one). In Risk Calc, we generalize traditional fuzzy logic to be compatible with probabilistic logic defined by the Fréchet inequalities. Risk Calc also provides the set-theoretic functions to compute unions and intersections of intervals.
For instance, when you enter the expression
union( [0.4, 2], [1, 3])
you’ll get the answer [0.4, 3]. There are also set-theoretic functions provided for computing widths of intervals, whether intervals overlap each other, membership and containment. Complementation, however, is not defined.
Q. How do the units help me?
Risk Calc knows about 600 units in 60 dimensions used in science and engineering. It knows how to convert among them automatically to get answers without your bothering to look up conversion parameters or worrying about handling them correctly. For instance, if you enter the expression
normal(5 kg, 2 g) * [8 ft, 3 m] / [2.3 seconds] ^ 2 + 2 newtons
Risk Calc will give you the right answer (which is 4 to 5 newtons). And it gives this answer immediately without any extra work on your part. What may be even more useful is that it traps unit and dimensional errors for you. For example, if you’d entered
normal(5 kg, 2 cm) * [3 m, 8 ft] / [2.3 seconds] + 2 newtons
Risk Calc will tell you that such an expression is meaningless. It recognizes all three errors:
The standard deviation of the normal distribution cannot be in centimeters if the mean is in kilograms
8 feet is shorter than 3 meters, so the interval is inverted
The divisor must be in squared time units if the first term is to be added to something in newtons. If you’d left out the units, or used other software to make the calculations, you’d get a completely different answer and might have never noticed it was gibberish.
Probability bounds analysis
Second-order Monte Carlo
ranges or distributions
distributions and dependencies