Constructing an Eigenportfolio Using PCA
Eric Schlobohm
Problem:
I will be implementing both PCA and Kernel PCA to do both linear and non-linear component analysis on exchange-traded funds to reduce the dimensionality of these ETF's and to look for possible arbitrage opportunities in the eigenassets, or the principal components of the original assets of the ETF. While these eigenassets are not tradeable on the market, if we operate under the assumption that we can purchase any fraction on shares and are not limited to integer quantities (as in Black-Scholes and many other stock market predicting models), then these linear and non-linear combinations of assets are purchasable on the markets. I will also assume that transaction costs are zero, however this is not the case many times in the real world.
Data Set:
I
have been able to implement the Datafeed toolkit in Matlab that
provides both real-time and historic data from Yahoo! Finance as
matrices that are possible to transform for my nees. In conjunction
with this, I have needed to use the PowerShares product webpage to
download spreadsheets of the held assets in each ETF provided by
PowerShares, which I then import into Matlab after removing
unnecessary data fields. 1
Goals Achieved:
I have code that can now take any ETF that lists its holdings and collect all relevant data through the Matlab Datafeed Toolkit.
I have implemented PCA for linear component analysis that works quickly and accurately and produces very good approximate models for various ETFs.
Sample plots from the code so far are below.
Goals Remaining:
I
will look to implement Kernel PCA for the non-linear case and
determine optimal portfolios to approximate the ETFs while reducing
dimensionality as far as possible, by keeping 90-95% of the variance
of the ETF and eliminating most of the component eigenassets.
In the last week I will look over the data to see if there were any historic arbitrage opportunities that could have been capitalized on through these methods.
1http://www.invescopowershares.com/products/