Coefficiente Beta


Il coefficiente Beta (β) rappresenta il rischio sistematico di un titolo, cioè la sua sensibilità ai movimenti del mercato. È stato introdotto con il Capital Asset Pricing Model (CAPM) nel Capital Asset Prices: A Theory of Market Equilibrium under Conditions of Risk di William Sharpe (1964) - premio Nobel nel 1990 - e nel The Valuation of Risk Assets and the Selection of Risky Investments in Stock Portfolios and Capital Budgets e Security Prices, Risk, and Maximal Gains From Diversification di John Lintner (1965), un modello utilizzato per determinare un tasso di rendimento richiesto teoricamente appropriato per un'attività, al fine di prendere decisioni sull'aggiunta di attività a un portafoglio ben diversificato, tenendo conto conto della sensibilità dell'attività al rischio sistematico o rischio di mercato rappresentato da β nonché dal rendimento atteso del mercato e dal rendimento atteso di un'attività teorica priva di rischio.
CAPM offre previsioni potenti e intuitive su come misurare il rischio e la relazione tra rendimento atteso e rischio.
A differenza della volatilità, che misura quanto un titolo oscilla in assoluto, il Beta misura quanto un titolo si muove rispetto al mercato. In altre parole, il Beta risponde alla domanda: "Se il mercato sale o scende dell'1%, di quanto ci si può aspettare che salga o scenda questo titolo?"

Tenendo conto che ogni investimento è soggetto a due tipi di rischio:

il Beta misura solo il rischio sistematico. Ė il coefficiente angolare della retta \[R_i = α+βR_m+ε\] dove \(R_i\) è il rendimento del titolo, \(R_m\) è il rendimento del mercato, α è il rendimento indipendente dal mercato e ε rappresenta il rischio specifico.
Si ha \[\beta = \frac{Cov(R_i,R_m)}{Var(R_m)}.\] Secondo il CAPM \[\mathbb E(R_i​)=R_f​+β_i​(\mathbb E(R_m​)−R_f​)​\] dove \(R_f\) è il rendimento privo di rischio e \(\mathbb E(R_m)\) è il rendimento atteso del mercato.
Beta Significato
β > 1 Il titolo è più volatile del mercato (aggressive)
β = 1 Il titolo si muove come il mercato
β < 1 Il titolo è meno volatile del mercato (defensive)
β < 0 Movimento inverso al mercato (raro)
Il CAPM stabilisce quindi una relazione tra il rendimento di un titolo e la sua rischiosità, misurata tramite un unico fattore di rischio, proporzionale al Beta.

Ad esempio possiamo determinare il beta di un asset azionario rispetto all'indice di mercato FTSEMIB.

import yfinance as yf import numpy as np tickers = [ "ENI.MI", "FTSEMIB.MI"] data = yf.download( tickers, start="2018-01-01", auto_adjust=True, progress=False )["Close"] returns = data.pct_change(fill_method=None).dropna() stock = returns["ENI.MI"] market = returns["FTSEMIB.MI"] cov = np.cov(stock, market)[0,1] var = np.var(market, ddof=1) print(f"β = {cov/var:.3f}")
β = 0.855
Si può ottenere lo stesso risultato utilizzando la regressione lineare.
from sklearn.linear_model import LinearRegression import matplotlib.pyplot as plt X = market.values.reshape(-1,1) y = stock.values model = LinearRegression() model.fit(X,y) α, β = model.intercept_, model.coef_[0] plt.figure(figsize=(8,6)) plt.scatter(market, stock, s=8, alpha=0.5) x=np.linspace( market.min(), market.max(), 100) y = α + β * x plt.plot( x, y, color="red", linewidth=2) plt.xlabel("FTSE MIB") plt.ylabel("ENI") plt.title(f"Beta mediante regressione R_i={α:.2}+{β:.2}R_m") plt.grid() plt.show()

Sebbene il CAPM sia uno strumento utile, per valutare i beni capitali è possibile utilizzare metodi alternativi, ciascuno con i suoi punti di forza e i suoi limiti; non esiste un approccio unico.
Ad esempio Fischer Black (1972) ha sviluppato una versione del CAPM, detta Black CAPM o CAPM zero-beta, che non presuppone l'esistenza di un asset privo di rischio sostituendolo con il rendimento di un "portafoglio zero-beta", un portafoglio che non ha alcuna correlazione con il mercato.
Il modello a tre fattori sviluppato da Eugene Fama e Kenneth French, espande il CAPM aggiungendo due ulteriori fattori all'analisi: la dimensione dell'azienda e il valore del suo patrimonio.
Si basa quindi su tre fattori principali:

Fama e French sono partiti dall’osservazione che due classi di azioni hanno avuto la tendenza a fare meglio del mercato nel suo complesso: le small cap e le azioni con un elevato rapporto book-to-market (B/P, comunemente chiamato titoli value , in contrasto con i titoli growth ). Hanno quindi aggiunto al CAPM due fattori per riflettere l'esposizione di un portafoglio a queste due classi: \[{\displaystyle r=R_{f}+\beta (R_{m}-R_{f})+β_{s}\cdot {\text {SMB}}+β_{h}\cdot {\text {HML} }+\epsilon }\] SMB sta per " S mall [capitalizzazione di mercato] M inus B ig" e HML per " High [rapporto book-to-market] M inus Low"; misurano i rendimenti storici in eccesso delle small cap rispetto alle big cap e dei titoli value rispetto ai titoli growth.
Questi fattori sono calcolati con combinazioni di portafogli composti da titoli classificati (classifica BtM, classifica Cap) e dati storici di mercato disponibili. È possibile accedere ai valori storici sulla pagina web di Kenneth French.
import pandas_datareader.data as web web.DataReader("F-F_Research_Data_Factors", "famafrench")
{0: Mkt-RF SMB HML RF Date 2021-07 1.34 -3.93 -1.79 0.00 2021-08 2.94 -0.32 -0.23 0.00 2021-09 -4.40 0.66 5.12 0.00 2021-10 6.63 -2.26 -0.53 0.00 2021-11 -1.58 -1.31 -0.37 0.00 2021-12 3.23 -1.63 3.25 0.01 2022-01 -6.16 -5.93 12.86 0.00 2022-02 -2.28 2.16 3.06 0.00 2022-03 3.08 -1.55 -1.90 0.00 2022-04 -9.41 -1.35 6.18 0.00 2022-05 -0.34 -1.84 8.44 0.03 2022-06 -8.40 2.07 -6.00 0.06 2022-07 9.57 2.84 -4.15 0.08 2022-08 -3.77 1.41 0.18 0.19 2022-09 -9.34 -0.76 0.03 0.19 2022-10 7.85 0.01 7.97 0.23 2022-11 4.65 -3.57 1.48 0.29 2022-12 -6.38 -0.76 1.34 0.33 2023-01 6.61 5.01 -3.94 0.35 2023-02 -2.57 1.05 -0.80 0.34 2023-03 2.48 -5.48 -9.05 0.36 2023-04 0.62 -3.37 -0.12 0.35 2023-05 0.34 1.60 -7.79 0.36 2023-06 6.46 1.49 -0.13 0.40 2023-07 3.21 2.05 4.06 0.45 2023-08 -2.36 -3.13 -1.15 0.45 2023-09 -5.23 -2.50 1.50 0.43 2023-10 -3.15 -3.87 0.20 0.47 2023-11 8.88 -0.10 1.67 0.44 2023-12 4.85 6.28 4.89 0.43 2024-01 0.73 -5.05 -2.38 0.47 2024-02 5.07 -0.26 -3.43 0.42 2024-03 2.84 -2.50 4.16 0.43 2024-04 -4.65 -2.38 -0.45 0.47 2024-05 4.33 0.53 -1.31 0.44 2024-06 2.80 -3.00 -3.36 0.41 2024-07 1.22 6.81 5.57 0.45 2024-08 1.60 -3.49 -1.13 0.48 2024-09 1.72 -0.13 -2.73 0.40 2024-10 -1.00 -0.95 0.91 0.39 2024-11 6.49 4.49 0.38 0.40 2024-12 -3.17 -2.70 -2.97 0.37 2025-01 2.80 -2.00 1.76 0.37 2025-02 -2.44 -5.77 4.84 0.33 2025-03 -6.39 -2.72 2.87 0.34 2025-04 -0.84 -0.57 -3.29 0.35 2025-05 6.06 0.61 -2.81 0.38 2025-06 4.86 0.71 -1.43 0.34 2025-07 1.98 0.27 -1.28 0.34 2025-08 1.84 3.81 4.44 0.38 2025-09 3.39 -1.91 -0.92 0.33 2025-10 1.96 -0.83 -2.75 0.37 2025-11 -0.13 0.52 3.62 0.30 2025-12 -0.36 -1.02 2.36 0.34 2026-01 1.03 2.13 3.82 0.30 2026-02 -1.17 0.23 2.71 0.28 2026-03 -5.18 0.42 3.41 0.29 2026-04 9.95 0.11 -1.17 0.29 2026-05 4.90 -1.69 -2.15 0.31, 1: Mkt-RF SMB HML RF Date 2021 23.87 -3.78 25.61 0.04 2022 -21.32 -7.01 25.68 1.42 2023 21.75 -3.53 -13.97 4.95 2024 19.76 -11.31 -8.44 5.26 2025 13.30 -11.01 9.23 4.25, 'DESCR': 'F-F Research Data Factors\n-------------------------\n\nThis file was created using the 202605 CRSP database. The 1-month TBill rate data until 202405 are from Ibbotson Associates. Starting from 202406, the 1-month TBill rate is from ICE BofA US 1-Month Treasury Bill Index. The annual TBill return is compounded from the monthly T-bill rates from January to December. Copyright 2026 Eugene F. Fama and Kenneth R. French\n\n 0 : (59 rows x 4 cols)\n 1 : Annual Factors: January-December (5 rows x 4 cols)'}
Una volta definiti SMB e HML, i corrispondenti coefficienti \(\beta_s,\; \beta_h\) sono determinati mediante regressioni lineari e possono assumere valori negativi così come valori positivi.
import pandas as pd import numpy as np import yfinance as yf import pandas_datareader.data as web import statsmodels.api as sm from pandas.tseries import offsets ff_factors = pd.DataFrame(web.DataReader("F-F_Research_Data_Factors", "famafrench")[0]) ff_factors.index = ff_factors.index.to_timestamp(how='end').normalize() start_download = ff_factors.index[0] end_download = ff_factors.index[-1] + offsets.DateOffset(months=1) ticker = "ENI.MI" stock_raw = yf.download(ticker,start=start_download,end=end_download,interval='1mo') stock_monthly_returns = stock_raw["Close"].pct_change() * 100 # in percentuale stock_monthly_returns.index = (pd.to_datetime(stock_monthly_returns.index) + offsets.MonthEnd(0)).normalize() # allinea i rendimenti del titolo con gli indici di ff_factors # reindex per allineare e fillna per gestire i NaN ff_factors[ticker] = stock_monthly_returns.reindex(ff_factors.index) # Rimuovi le righe con NaN (dove il titolo non ha dati) ff_factors_clean = ff_factors.dropna(subset=[ticker]) # Rendimenti in eccesso: y = rendimento_titolo - risk_free excess_returns = ff_factors_clean[ticker] - ff_factors_clean["RF"] # Variabili indipendenti X = ff_factors_clean[["Mkt-RF", "SMB", "HML"]] X = sm.add_constant(X) # Aggiunge l'intercetta (alpha) y = excess_returns model = sm.OLS(y, X) results = model.fit() #print(results.summary()) print(f"\n R_f (mensile): {results.params["const"]:.6f} ") print(f" β (Beta Mkt-RF): {results.params["Mkt-RF"]:.3f}") print(f" β_s (Beta SMB): {results.params["SMB"]:.3f}") print(f" β_h (Beta HML): {results.params["HML"]:.3f}") print(f" R²: {results.rsquared:.3f}")
R_f (mensile): 0.818951 β (Beta Mkt-RF): 0.398 β_s (Beta SMB): -0.242 β_h (Beta HML): 1.151 R²: 0.353

Riferimenti sito/bibliografici