I would like to define and use the Choquet integral in Mathematica.

I think the first step should be to define a representation of a non-additive (normalized) measure $\nu:\Omega \rightarrow [0,1]$. Thus, I tried to define some sort of distribution function $F_\nu(x)$ that represents the measure of the sets $(- \infty, x]$. A so-called distorted measure $\nu = h \circ P$, where $h:[0,1] \rightarrow [0,1]$ is an increasing function and $P$ a probability measure would do the job.

For instance, letting $h:[0,1] \rightarrow [0,1]$ be $h(x)=x^2$ and using the continuous uniform distribution for the sake of simplicity:

h[x_] = x^2
F[x_] = CDF[\[ProbabilityDistribution[{"CDF", \[CDF[UniformDistribution[], t]]}, {t, -∞, ∞}]], x]

But here I got stuck since I do not know how I need to tell Matheatica to evaluate something like $\int{\nu(\{\omega \in \Omega| f(\omega) \geq x\}) dx}$.

Any ideas to get this running (maybe there is a much more elegant solution)?

  • $\begingroup$ F[x_] = CDF[\[ProbabilityDistribution[{"CDF", \[CDF[UniformDistribution[], t]]}, {t, -∞, ∞}]], x] is an ill-fromed expression and will not evaluate. What is the real definition of F in your Mathematica notebook? $\endgroup$ – m_goldberg Jul 9 '17 at 17:19
  • $\begingroup$ @m_goldberg .Thanks for the hint. First I define the function $h$ by h[x_]=x^2. Then I define the prob distribution by setting [ScriptCapitalD] = ProbabilityDistribution[{"CDF", h[CDF[UniformDistribution[], t]]}, {t, -[Infinity], [Infinity]}]. Finally I put F[x_] = CDF[[ScriptCapitalD], x] . $\endgroup$ – user11937 Jul 21 '17 at 7:10


ChoquetIntegral[h_, dist_] := NIntegrate[InverseCDF[dist, x] h'[x], {x, 0, 1}]

For your example:

ChoquetIntegral[#^2&, UniformDistribution[]]


  • $\begingroup$ First of all, sorry for the late response and thanks a lot for your support. Could you shortly outline how you came to this proposal? If I calculate the Choquet integral of $f(x)=x$ with respect to the measure $\nu = h \circ P$ (as defined above) then I come to the same result. $\endgroup$ – user11937 Jul 21 '17 at 7:04
  • $\begingroup$ I just used the alternate representation from your Wikipedia reference $\endgroup$ – Carl Woll Jul 21 '17 at 7:06

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.