Volatility Metrics#
Volatility metrics measure the stability and smoothness of the index. We will demonstrate how to calculate and visualize volatility metrics.
Basic Setup#
First, we will import the necessary modules, load some sales data, and create an index:
>>> from hpipy.datasets import load_seattle_sales
>>> from hpipy.price_index import RepeatTransactionIndex
>>> df = load_seattle_sales()
>>> hpi = RepeatTransactionIndex.create_index(
... trans_data=df,
... prop_id="pinx",
... trans_id="sale_id",
... price="sale_price",
... date="sale_date",
... periodicity="M",
... estimator="robust",
... log_dep=True,
... smooth=True,
... )
Calculating Volatility#
To calculate the volatility of the index, you can use the volatility
function:
>>> from hpipy.utils.metrics import volatility
>>> from hpipy.utils.plotting import plot_index_volatility
>>> vol = volatility(hpi)
>>> vol.round(5).head()
roll mean median
1 0.02474 0.01721 0.01652
2 0.02751 0.01721 0.01652
3 0.02336 0.01721 0.01652
4 0.01585 0.01721 0.01652
5 0.00476 0.01721 0.01652
>>> plot_index_volatility(vol).properties(title="Volatility Metrics")
alt.LayerChart(...)
Rolling Window Analysis#
You can also analyze volatility over different time windows:
>>> rolling_vol = volatility(hpi, window=12)
>>> rolling_vol.round(5).head()
roll mean median
6 0.01655 0.01799 0.01739
7 0.02159 0.01799 0.01739
8 0.02078 0.01799 0.01739
9 0.01927 0.01799 0.01739
10 0.01837 0.01799 0.01739
The window parameter specifies the number of periods to use for the rolling calculation.