equinor / equinor/prisma-decision-api

risk adjusted utility for risk analysis

Open
#440 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
C#
Stars
3
Forks
3
Avg merge
2d 13m
Merged PRs (30d)
27

Description

The problem statement I was talking about is that in a problem the odds are weighted in your favor, play it right and you will come out on top. The example is the Korean stock market where people took out dept to buy stocks because the EU was higher than not taking the dept and got wiped out by the leverage. Meanwhile the people that just bought with their own money because they are more risk averse have instead on the whole made money.

The simple example I have is a weighted coin, you will win 60% of the time. you start with 100$ and you have to bet either all the money you have gained or half of it. To keep things simple we toss the coin only twice.

The decision tree shows that the max EU is to go all in twice. This gives you a 36% at 400$ and 64% at exactly 0$,
This is not betting smartly. The smart option if you are risk averse is to just bet half both times and you will gain money at the end, it's not a gamble, it's a gift!
The method to fix this is to include risk adjusted utility.
There are multiple formulas for this, but for this example lets use U(x) = 1 - exp(-x / R)
where x is the utility value (in the utility table) and R is the risk tolerance <0, inf]
where inf means you are risk neutral.
then we can apply x = -R * ln(1 - U(x)) to the MEU to get back a risk adjusted utility

when applying this with an R of 500 (very risk averse), this changes the decisions to bet half and then half again.

While this is interesting on it's own it gets really useful when viewing as a graf of what are the optimal decisions given R risk tolerance.
So intead of having to figure out your exact risk tolerance you can see that if you are not risk seeking you should take option x

Image

Image

Contributor guide

Open the contributing guide

Research direction

The issue proposes adding risk-adjusted utility and visualizing optimal decisions by risk tolerance, but it names no files, tests, or entry points. Start by locating the existing expected-utility decision logic and its tests, then clarify the supported formulas, API shape, and acceptance criteria before implementation.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
backend-api-design
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.