Linear Vacuous Mixtures

class improb.lowprev.linvac.LinVac(pspace=None, mapping=None, lprev=None, uprev=None, prev=None, lprob=None, uprob=None, prob=None, bba=None, credalset=None, number_type=None)

Bases: improb.lowprev.belfunc.BelFunc

Linear-vacuous mixture, implemented as an unconditional lower probability on singletons.

>>> from improb.lowprev.prob import Prob
>>> lpr = Prob(3, prob=['0.2', '0.3', '0.5']).get_linvac('0.1')
>>> print(lpr.get_lower([1,0,0]))
9/50
>>> print(lpr.get_lower([0,1,0]))
27/100
>>> print(lpr.get_lower([0,0,1]))
9/20
>>> print(lpr.get_lower([3,2,1]))
163/100
>>> print(lpr.get_upper([3,2,1]))
183/100
>>> lpr = Prob(4, prob=['0.42', '0.08', '0.18', '0.32']).get_linvac('0.1')
>>> print(lpr.get_lower([5,5,-5,-5]))
-1/2
>>> print(lpr.get_lower([5,5,-5,-5], set([0,2]))) # (6 - 31 * 0.1) / (3 + 2 * 0.1)
29/32
>>> print(lpr.get_lower([-5,-5,5,5], set([1,3]))) # (6 - 31 * 0.1) / (2 + 3 * 0.1) 
29/23
>>> print(lpr.get_lower([0,5,0,-5])) # -(6 + 19 * 0.1) / 5
-79/50
>>> print(lpr.get_lower([0,-5,0,5])) # (6 - 31 * 0.1) / 5
29/50
get_lower(gamble, event=True, algorithm='linvac')

Calculate the lower expectation of a gamble conditional on an event, by the following formula:

\underline{E}(f|A)=
\frac{
(1-\epsilon)\sum_{\omega\in A}p(\omega)f(\omega)
+ \epsilon\min_{\omega\in A}f(\omega)
}{
(1-\epsilon)\sum_{\omega\in A}p(\omega)
+ \epsilon
}

where \epsilon=1-\sum_{\omega}\underline{P}(\omega) and p(\omega)=\underline{P}(\omega)/(1-\epsilon). Here, \underline{P}(\omega) is simply:

self[{omega: 1}, True][0]

This method will not raise an exception, even if the assessments are incoherent (obviously, in such case, \underline{E} will be incoherent as well). It will raise an exception if not all lower probabilities on singletons are defined (if needed, extend it first).

Previous topic

Belief Functions

Next topic

Probability Measures

This Page