In my experience, $\beta$ is frequently pre-selected from a priori considerations because there is a large degree of redundancy between $\beta$ and $\rho$ (both affect the vol smile in similar ways).
As for example shown on P.91 of the article Managing Smile risk from Hagan et. al in the Willmott magazine, fitting $\alpha$, $\rho$ and $\nu$ for $\beta = 0$ as well as $\beta = 1$ results in no substantial difference in the quality of the fits. The screenshot below is from the article.
The authors move on to explain that in their experience,
market smiles can be fit equally well with any specific value of β.
The article also mentions your estimation procedure if you do not want to use a priori considerations for $\beta$. One problem is the data is usually noisy and the regression results are not very robust.
Another approach
While the choice of $\beta$ may not be important for smile fitting, there are alternatives that try to minimize the hedging error. See for example On the Estimation of the SABR Model’s Beta Parameter: The Role of Hedging in
Determining the Beta Parameter. While the author works at Bloomberg, to the best of my knowledge, Bloomberg does use a hard coded value of 0.5 for their SABR implementation in VCUB
.
In the SABR model,
- $\sigma_{ATM} \approx \frac{\alpha}{f^{1-\beta}}$, where $f$ is the underlying forward price.
- $\sigma_{f} = \alpha * f^{\beta-1}$ is the volatility of the forward rate.
There are two reasons outlined why you may want to estimate $\beta$.
- Given market vol, $\beta$ determines how much of the volatility risk can be hedged by delta hedging (delta hedging eliminates the predictable vol change; $f^{\beta-1}$) and vega hedging (the stochastic vol risk; $\alpha$)
- $\beta$ controls the trace of ATM volatilities as the underlying forward changes.
$\Rightarrow$ If $\beta = 1$, $\alpha \approx \sigma_{ATM}$, implying $\sigma_{ATM}$ does not change as f changes.
$\Rightarrow$ If $\beta < 1$, $\sigma_{ATM}$ will decrease if $f$ increases because or $f^{\beta-1}$.
This relationship between $f$ and $\sigma_{ATM}$ is referred to as the backbone and the backbone's shape shows how much additional volatility the option trader will take as the forward rate moves, as shown in the following graphic, which uses Julia. I am using hypothetical parameter values and forward rates, similiar to the paper.
# load packages
using Plots, PlotThemes, Interact, LaTeXStrings
theme(:juno)
#define inputs
β, α, ρ, ν, t_ex, f1, f2, f3, t_ex = 1, 0.05, 0, 1, 1, 0.03, 0.05, 0.07, 1
K = 0.01:0.0001:0.1
#define the expression
function σ_b(β,α, ρ, ν, t_ex, f, K)
A = α /(((f*K)^((1-β)/2))*(1+((1-β)^2)/24*log(2,(f/K))+ ((1-β)^4)/1920*log(4,(f/K))))
B = 1+(((1-β)^2)/24*(α^2/(f*K)^(1-β))+(1/4)*α*β*ρ*ν/((f*K)^((1-β)/2))+(2-3*ρ^2)/24*ν^2)*t_ex
z = ν/α*(f*K)^((1-β)/2)*log(f/K)
χ_z = log((sqrt(1-2*ρ*z+z^2)+z-ρ)/(1-ρ))
atm = α/(f^(1-β))*(1+(((1-β)^2)/24*(α^2/(f*K)^(1-β))+(1/4)*α*β*ρ*ν/((f*K)^((1-β)/2))+(2-3*ρ^2)/24*ν^2)*t_ex)
cond = f==K
return cond ? atm : A*z/χ_z*B, atm
end
# define plots
plot(K,[x[1] for x in σ_b.(β,α, ρ, ν, t_ex, f1, K)], size =(800,500), margin=5Plots.mm,
title = "Backbone for SABR Model \n(β = $β, α = $α, ρ = $ρ, ν = $ν, "L"$ t_{ex}"*" = $t_ex)",
label = "f = $(round((f1*100),digits=1))%",
xlabel = "Strikes",
ylabel = "Volatility")
plot!(K,[x[1] for x in σ_b.(β,α, ρ, ν, t_ex, f2, K)], label = "f = $(round((f2*100),digits=1))%")
plot!(K,[x[1] for x in σ_b.(β,α, ρ, ν, t_ex, f3, K)], label = "f = $(round((f3*100),digits=1))%")
plot!(K, [minimum(x[2] for x in σ_b.(β,α, ρ, ν, t_ex, fwd, K)) for fwd in K], label = "Backbone",
linewidth = 3,
linestyle = :dashdot,
linealpha = 0.5)
ylims!((0,maximum(x[1] for x in σ_b.(β,α, ρ, ν, t_ex, f3, K))))
xlims!((minimum(K),maximum(K)))
Adding a few lines similar to this answer makes the chart interactive.
The entire implementation is a bit lengthy but well described in the referenced paper. In a nutshell, the authors come up with two solutions. The easier one is to use a two-step calibration;
- first step: use a pre-fixed beta to estimate the SABR parameters, which in turn are used to figure out the hedging error, based on delta and vega hedging, thereby computing the sum of squared relative hedging errors (which is a function of $\beta$) for all strikes from the option chain (the authors looked at Eurodollar futures options).
- second step: compute the optimal $\beta$ that minimizes the sum of squared relative hedging errors
The downside of the two-step approach is that you cannot make a trade-off between hedging performance and vol smile fitting. Therefore, the authors also describe a second approach, that calibrates all parameters in one step, thereby minimizing the hedging error as well as the calibration error in one go.
Edit
I simply use the definitions and notation used in the referenced paper. Volatility risk is literally the risk associated with changes in volatility. As shown above, in the SABR model, $\sigma_{f} = \alpha * f^{\beta-1}$ is the volatility of the forward rate, where $\alpha$ is the stochastic part and $f^{\beta-1}$ is the predictable part (which implicitely affects the stochastic part via $\rho$). If $\beta = 1$, only the stochastic part matters. This is in essence similar to sticky delta, because the ATM vol stays the same as $f$ moves (and the backbone is a vertical line). However, for $\beta < 1$, the predictable part can be hedged via delta hedging because it only depends on $f$. For more details, I recommend to read the paper I referenced.