## What will we cover?

In this lesson we will learn about market **Beta** with S&P 500 index, how to calculate it, and comparison of calculations from last lesson.

The objective of the tutorial is:

- Understand what market
**Beta**tells you. - How to calculate the market (S&P 500)
**Beta**. - See how
**Beta**is related with**Linear Regression**.

## Step 1: What is BETA and how to interpret the value

**Beta** is a measure of a stock’s volatility in relation to the overall market (S&P 500). The S&P 500 index has **Beta** 1.

High-beta stocks are supposed to be riskier but provide higher potential return. While, low-beta stocks pose less risk but also lower returns.

**Interpretation**

**Beta**above 1: stock is more**volatile**than the market, but expects higher return.**Beta**below 1: stock with lower**volatility**, and expects less return.

The formula for **Beta** is **Covariance** divided by **variance**.

This sound more scary than it is.

The Beta on financial pages, like **Yahoo! Finance**, are calculated on the monthly price.

## Step 2: Get some historic stock prices with Pandas Datareader

Let’s make an example here.

```
import numpy as np
import pandas_datareader as pdr
import datetime as dt
import pandas as pd
from sklearn.linear_model import LinearRegression
tickers = ['AAPL', 'MSFT', 'TWTR', 'IBM', '^GSPC']
start = dt.datetime(2015, 12, 1)
end = dt.datetime(2021, 1, 1)
data = pdr.get_data_yahoo(tickers, start, end, interval="m")
data = data['Adj Close']
log_returns = np.log(data/data.shift())
```

Where we notice that we read data on **interval=”m”**, which gives the monthly data.

## Step 3: Calculate the BETA

Then the **Beta** is calculated as follows.

```
cov = log_returns.cov()
var = log_returns['^GSPC'].var()
cov.loc['AAPL', '^GSPC']/var
```

For Apple, it was 1.25.

If you wonder if it is related to the **Beta** value from **Linear** **Regression**. Let’s check it out.

```
X = log_returns['^GSPC'].iloc[1:].to_numpy().reshape(-1, 1)
Y = log_returns['AAPL'].iloc[1:].to_numpy().reshape(-1, 1)
lin_regr = LinearRegression()
lin_regr.fit(X, Y)
lin_regr.coef_[0, 0]
```

Also giving 1.25. Hence, it is the same calculation behind it.

## Want more?

This is part of a 2.5 hours in 8 lessons video course about Risk and Return.