# Assessing Risks and Return with Probabilities of Events with Python

So far in the series about risk and return, we have looked at assessments using actual historical data. There are various situations where quants look at different scenarios of an event when making investment decisions. Running simulated scenarios is an invaluable tool for all finance/investment managers as it allows them to measure likely performance for various states.

These scenarios quants invent are normally based on probabilities of event/state occurring. It is quite normal to see three (3) states and their associated likely performance. For example: “What will be the likely performance an investment if the economy ‘booms’, ‘normalizes’ or ‘recesses’? I found an old paper Microsoft Excel exam paper and decided to use it to explain the calculation of expected returns and risk with the inclusion of probabilities.

As shown in the case pictured above, the question demands the calculation of the expected returns for each investment given the likelihood (probability) of a scenario panning out. This calculation can be done in Python by simply translating the formula for expected returns with the inclusion of probabilities.

With the expected return of each asset calculated, let’s turn our attention to the returns of a portfolio consisting of the two investments. The question supplied equal weights for the portfolio. The portfolio’s expected return is calculated using this formula:

The next step is to look at the calculation of the covariance matrix for this equally weighted portfolio. From the covariance matrix, we can easily calculate the variance and standard deviation for each investment as well as their covariance and correlation. Luckily, numpy’s cov (covariance) method accomodates the inclusion of probabilities:

If `ddof=0` the array of weights (`aweights` can be used to assign probabilities to observation vectors

We are almost there now. Let’s switch our attention to the portfolio’s variance and volatility. As covered in this post, the variance and standard deviation of a portfolio can easily be ascertained by means of a matrix multiplication sequence:

`Weights transposed * (Covariance matrix * Weights)`
`Expected Return of Investment 1 = 7.5%Expected Return of Investment 2 = 15.0%Expected Return of Portfolio = 11.25%Standard Deviation of Investment 1 = 1.77%Standard Deviation of Investment 1 = 3.54%Correlation between Returns of 1 & 2 = -1.0Risk of Portfilio = 0.88%`