PCA Eigenportfolios Are Historical Analysis, Not Reliable Growth Signals
Summary
The document asks why a principal component analysis of currency returns does not produce an eigenportfolio resembling a steadily rising chart shown in an external example. The question describes synchronizing asset prices, converting them to returns, computing PCA eigenvalues and eigenvectors, and plotting a portfolio formed from a selected eigenvector. It does not provide enough data or a reproducible calculation to diagnose the chart discrepancy.
The response notes that the example used equity and real estate funds, which may behave differently from currency pairs. It emphasizes that PCA describes covariance patterns in the sample rather than identifying a dependable investment strategy. A component with a relatively small eigenvalue may be sensitive to small in-sample changes, and its apparent historical trend can fail out of sample. The discussion gives no empirical comparison or detailed implementation guidance; its key caution is to understand the PCA mathematics and avoid treating a visually attractive component as predictive evidence.
Key ideas
- PCA eigenportfolios summarize patterns in the historical input data.
- Results from equity and real estate funds may not carry over to foreign exchange markets.
- A component with a small eigenvalue can be sensitive to small changes in the sample.
- An upward historical eigenportfolio chart does not establish that the pattern will persist out of sample.
Tags
Full text
# How to get permanently growing chart within PCA # How to get permanently growing chart within PCA I looked onto different questions and answers about application of PCA on this site and found this interesting article : http://systematicedge.wordpress.com/2013/06/02/principal-component-analysis-in-portfolio-management/ It shows that after application of the PCA it is possible to get Eigen Portfolio that is permanently growing like almost straight line going up. I am using AlgLib to apply PCA to the list of currency timeseries and looking at the charts i am almost sure that it is applied correctly at least because it correctly identifies the currency pair that adds the most variance to the portfolio. Unfortunately, neither eigenportfolio in my case look like the one displayed on this screenshot (PC4) : What i need is : This is what i usually get for MIN variance : This is what i usually get for MAX variance : Question : how can i get the chart that would look like the one marked as PC4 on the screenshot above? Update # 1 : There are a lot of code and it is not well-formed so i will display only meaningful calculations with the following terms : - Prices = Returns - iOrder = K = number of assets, currency pairs - iDepth = N = number of observations, prices for each currency pair - Period = Time Frame e.g. 1 Day = in this example it means that 1 observation = 1 daily price - iSeries = Matrix K x N = source matrix that contains data synchronized by time - iCharts = Matrix K x N = matrix that contains correctly scaled returns e.g. log(returns) - Synthetics = plot that mimics open position on portfolio 1) Synchronize(iPrices, Period, iOrder, iDepth) - synchronize assets by date and time 2) GetEquityMatrix(iSeries, iCharts, iOrder, iDepth) - measure every currency in USD (i can use Log(Prices) here instead) 3) CAlglib::PCABuildBasis(iCharts, iDepth, iOrder, result, iEigenValues, iEigenVectors) - actual calculation of eigen values and eigen vectors 4) Synthetics[N] = Sum(iCharts[0...K][N] x iEigenVectors[0...K][IndexOfVectorWithNeededVariance e.g. 0]) - calculation of N-th value on the chart ## Answer by Richi Wa (score 1, accepted) https://quant.stackexchange.com/a/14026 Trying to answer: - in the blog post that you mention the author looks at three equity funds and one REIT fund. One could say that these markets are different to FX markets (for various reasons but let's start with the question whether there is a risk premium in FX markets). - what he does is the usual PCA analysis on the data. You find various questions in this forum and more links there. Look e.g. here: Calculating Variance Explained from PCA Loadings. - when you have understood the math (you can't go on without understanding the math) then you see that PCA is an analysis tool for what has happened. Apparently there is a principle portfolio that looks like an upward sloping trend. Just recall that the eigenvalue attached to PC 4 is rather small compared to the eigenvalues of 1-3. Thus if in-sample small changes could change the picture in-sample (!). Out-of-sample things can go totally different.
Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)
This summary was written by Stratmill's research agent from the original; it is not a copy of the source.