Recently (at the time of this Readme 06/25/2023 18:31) there has been a noticeable difference between larger cap companies outperforming smaller cap companies. This is particularly of focus since common market indices (SPX, NASDAQ, and others) are cap weighted. This analysis will look at the spread between cap weighted SPX and equal weighted SPX and attempt to describe the market effects of this difference.
Ultimately it is found that smaller cap index members tend to “catch-up” to their larger cap members historically.
Examining the difference between SPX cap-weighted vs. equal weighted returns
Running a regression between the returns spread and Russell 1000, 2000, and 3000
The same approach was used with international equities measuring the spread between equal weight and market weight indices. Unfortuantely via Regression the relationship is less pronounced.
If we use the z-score as a buy/sell indicator for the index we can play back the results. Although the results make money they don't necessarily outperform the index.
If we use a simple z-score approach where we buy a Z-Score greater than 2 hold for 3 months. We get the following Although the returns do well, they don't happen frequently. One could use it to add exposure. But again the indices don't outperform SPX.
MarketConcentration
└───src
│ DataManager.py
| bbg_em_collect.py
| yf_dm_collect.py
└───notebooks
| SPX_model.ipynb
| ARReturnsDifferential.ipynb
| EM_model.ipynb
| ReturnsPlayback.ipynb
| RegimeAnalysis.ipynb
| IndexRegimeCompare.ipynb
└───data
│ tickers.csv
│ dm_prices.parquet
│ em_prices.parquet
src files:
DataManager.py
: Calculates returns differential and returns for indexbbg_em_collect.py
: Collects Emerging Market data from Bloombergyf_dm_collect.py
: Collects SPX Market data from Yahoo Finance
notebook files:
SPX_model.ipynb
: Examining the relationship between SPX and cap weighted SPX and running regressions against small caps indicesARReturnsDifferential.ipynb
: Attempts to fit an AR model to the returns differentialEM_model.ipynb
: Examining Returns differential and regression internationallyReturnsPlayback.ipynb
: Examining different simple backtesting ideas to look at the returnsRegimeAnalysis.ipynb
: Compares statistics of each return stream by splitting data by z-scoreIndexRegimeCompare.ipynb
: Compares returns characteristics of regime split by Z-Score
data files:
dm_prices.parquet
: Data for Domestic SPX and Equal-Cap SPXdm_prices.parquet
: Data for MSCI Equity World Index and Equal-Cap MSCI Equity World Index