---
title: "Shrunk Correlation Matrix"
method: POST
path: "/assets/correlation/matrix/shrunk"
tags: ["Assets / Correlation Matrix"]
---

# Shrunk Correlation Matrix

`POST /assets/correlation/matrix/shrunk`

Compute an asset correlation matrix as a convex linear combination of an asset correlation matrix and a target correlation matrix, the target correlation matrix being either:  
 * An equicorrelation matrix made of 1s
 * An equicorrelation matrix made of 0s
 * An equicorrelation matrix made of -1/(n-1), with n the number of assets
 * An equicorrelation matrix made of the average correlation of the elements of the asset correlation matrix
 * The correlation matrix obtained after truncating the eigendecomposition of the asset correlation matrix, as described in the 3rd reference
 * A provided correlation matrix
 
 References
 * [Steiner, Andreas, Manipulating Valid Correlation Matrices](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=1878165)
 * [Kwan, Clarence C. Y. (2017) Shrinkage of the Sample Correlation Matrix of Returns Towards a Constant Correlation Target: A Pedagogic Illustration Based on Dow Jones Stock Returns, Spreadsheets in Education (eJSiE): Vol. 10: Iss. 1, Article 3.](http://epublications.bond.edu.au/ejsie/vol10/iss1/3)
 * [Jose Menchero and Lei Ji, Advances in Estimating Covariance Matrices, Vol. 19, No. 3, (2021), pp. 60–80](https://joim.com/article/advances-in-estimating-covariance-matrices/)

## Request body

- union
  - object
    - `assets` integer, required
    - `assetsCorrelationMatrix` array[], required — assetsCorrelationMatrix[i][j] is the correlation between the asset i and the asset j
      - number[]
    - `shrinkageTargetCorrelationMatrix` 'minimumEquicorrelationMatrix' | 'zeroEquicorrelationMatrix' | 'constantEquicorrelationMatrix' | 'maximumEquicorrelationMatrix' | 'pcaCorrelationMatrix', required — The shrinkage target correlation matrix
    - `shrinkageIntensity` number, required — The shrinkage intensity
    - `pcaCorrelationMatrixEigenvectors` object
      - `eigenvectorsRetained` integer — The number of eigenvectors to retain in the eigendecomposition of the asset correlation matrix assetsCorrelationMatrix in case shrinkageTargetCorrelationMatrix is equal to 'pcaCorrelationMatrix'; defaults to 1
  - object
    - `assets` integer, required
    - `assetsCorrelationMatrix` array[], required — assetsCorrelationMatrix[i][j] is the correlation between the asset i and the asset j
      - number[]
    - `shrinkageTargetCorrelationMatrix` array[], required — shrinkageTargetCorrelationMatrix[i][j] is the target correlation between the asset i and the asset j
      - number[]
    - `shrinkageIntensity` number, required — The shrinkage intensity

## Response `200`

OK

- object
  - `assetsCorrelationMatrix` array[], required — assetsCorrelationMatrix[i][j] is the correlation between the asset i and the asset j
    - number[]

---

[API](https://skmtc.dev/portfoliooptimizer/apis/portfolio-optimizer.md) · [All operations](https://skmtc.dev/portfoliooptimizer/apis/portfolio-optimizer/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/portfoliooptimizer/portfolio-optimizer/revisions/d047148d28bd/schema)
