Denoise covariance
PortfolioOptimisers.DenoiseCovariance Type
struct DenoiseCovariance{__T_ce, __T_dn, __T_pdm} <: AbstractCovarianceEstimatorA covariance estimator that applies a denoising algorithm and positive definite projection to the output of another covariance estimator. This type enables robust estimation of covariance matrices by first computing a base covariance, then applying denoising and positive definiteness corrections in sequence.
Fields
ce: Covariance estimator.dn: Matrix denoising estimator.pdm: Positive definite matrix estimator.
Constructors
DenoiseCovariance(;
ce::StatsBase.CovarianceEstimator,
dn::Denoise = Denoise(),
pdm::Option{<:Posdef} = Posdef(),
) -> DenoiseCovarianceKeywords correspond to the struct's fields.
Examples
julia> DenoiseCovariance()
DenoiseCovariance
ce ┼ Covariance
│ me ┼ SimpleExpectedReturns
│ │ w ┴ nothing
│ ce ┼ GeneralCovariance
│ │ ce ┼ StatsBase.SimpleCovariance: StatsBase.SimpleCovariance(true)
│ │ w ┴ nothing
│ alg ┴ Full()
dn ┼ Denoise
│ pdm ┼ Posdef
│ │ alg ┼ UnionAll: NearestCorrelationMatrix.Newton
│ │ kwargs ┴ @NamedTuple{}: NamedTuple()
│ alg ┼ ShrunkDenoise
│ │ alpha ┴ Float64: 0.0
│ args ┼ Tuple{}: ()
│ kwargs ┼ @NamedTuple{}: NamedTuple()
│ kernel ┼ typeof(AverageShiftedHistograms.Kernels.gaussian): AverageShiftedHistograms.Kernels.gaussian
│ m ┼ Int64: 10
│ n ┴ Int64: 1000
pdm ┼ Posdef
│ alg ┼ UnionAll: NearestCorrelationMatrix.Newton
│ kwargs ┴ @NamedTuple{}: NamedTuple()Related
sourcePortfolioOptimisers.factory Method
factory(ce::DenoiseCovariance, w::ObsWeights) -> DenoiseCovarianceReturn a new DenoiseCovariance estimator with observation weights w applied to the underlying covariance estimator.
Arguments
ce: Covariance estimator.w: Observation weights vectorobservations × 1.
Returns
ce: New covariance estimator of the same type as the argument, with the new weights applied.
Examples
julia> ce = DenoiseCovariance();
julia> ce2 = factory(ce, StatsBase.Weights([0.2, 0.3, 0.5]));
julia> ce2.ce.me.w
3-element Weights{Float64, Float64, Vector{Float64}}:
0.2
0.3
0.5Related
sourceStatistics.cov Method
Statistics.cov(ce::DenoiseCovariance, X::MatNum; dims = 1, kwargs...)Compute the denoised and positive definite projected covariance matrix for the data matrix X using the specified DenoiseCovariance estimator.
Arguments
ce: TheDenoiseCovarianceestimator specifying the base covariance estimator, denoising algorithm, and positive definite projection.X: The data matrix (observations × assets).dims: Dimension along which to perform the computation.kwargs...: Additional keyword arguments passed to the underlying covariance estimator.
Returns
sigma::MatNum: denoised covariance matrix.
Validation
dims in (1, 2).
Details
Computes the covariance matrix using the base estimator in
ce.Transposes
Xifdims == 2to ensure variables are in columns.Ensures the covariance matrix is mutable.
Applies positive definite projection using the method in
ce.pdm.Applies the denoising algorithm in
ce.dnwith the aspect ratioT/N.Returns the processed covariance matrix.
Related
sourceStatistics.cor Method
Statistics.cor(ce::DenoiseCovariance, X::MatNum; dims = 1, kwargs...)Compute the denoised and positive definite projected correlation matrix for the data matrix X using the specified DenoiseCovariance estimator.
Arguments
ce: TheDenoiseCovarianceestimator specifying the base covariance estimator, denoising algorithm, and positive definite projection.X: The data matrix (observations × assets).dims: Dimension along which to perform the computation.kwargs...: Additional keyword arguments passed to the underlying correlation estimator.
Returns
rho::MatNum: denoised correlation matrix.
Validation
dims in (1, 2).
Details
Computes the correlation matrix using the base estimator in
ce.Transposes
Xifdims == 2to ensure variables are in columns.Ensures the correlation matrix is mutable.
Applies positive definite projection using the method in
ce.pdm.Applies the denoising algorithm in
ce.dnwith the aspect ratioT/N.Returns the processed correlation matrix.
Related
sourcePortfolioOptimisers.port_opt_view Method
port_opt_view(
ce::DenoiseCovariance,
i,
args...
) -> Union{DenoiseCovariance{var"#s179", Denoise{__T_pdm, __T_alg, __T_args, __T_kwargs, __T_kernel, __T_m, __T_n}, Nothing} where {var"#s179"<:CovarianceEstimator, __T_pdm, __T_alg, __T_args, __T_kwargs, __T_kernel, __T_m, __T_n}, DenoiseCovariance{var"#s179", Denoise{__T_pdm, __T_alg, __T_args, __T_kwargs, __T_kernel, __T_m, __T_n}, Posdef{__T_alg1, __T_kwargs1}} where {var"#s179"<:CovarianceEstimator, __T_pdm, __T_alg, __T_args, __T_kwargs, __T_kernel, __T_m, __T_n, __T_alg1, __T_kwargs1}}Gets the view of the covariance estimator for the i-th element(s).
Arguments
ce: Covariance estimator.i: Index or indices to view.
Returns
ce: New covariance estimator of the same type as the argument, for the new view.
Related
source