DimensionReductionRegression.COREType
CORE

CORE (covariance reduction) is a dimension reduction method for understanding the unique features of matrices within a collection of covariance matrices. The CORE result contains the projection directions proj and the optimized log-likelihood function value llf.

DimensionReductionRegression.coordinate_testMethod
coordinate_test(m, H0; resid=false, fit_kwds=(), dt_kwds=(), kwds...)

Test the null hypothesis that Hyp' * B = 0, where B is a basis for the estimated SDR subspace.

If resid is false, a method-specific chi^2 test is used, depending on the type of m. In this case, fit_kwds and dt_kwds are ignored and any additional keyword arguments are passed to the method-specific dimension test.

If resid is true, the covariates are residualized relative to H0 and a dimension test is used to assess the null hypothesis that the dimension is zero. In this case, fit_kwds specifies how the model is fit to the residualized data, and dt_kwds specifies how the dimension test is conducted.

References:

DR Cook. Testing predictor contributions in sufficient dimension reduction. Annals of Statistics (2004), 32:3. https://arxiv.org/pdf/math/0406520.pdf

Huang SH, Shedden K, Chang HW. Inference for the dimension of a regression relationship using pseudo-covariates. Biometrics. 2023 Sep;79(3):2394-2403. doi: 10.1111/biom.13812.

DimensionReductionRegression.coreMethod
core(covs, ns, ndim=1, params=Array{Float64}(0, 0), maxiter, gtol)

Given a collection of covariance matrices C1, ..., Cm, covariance reduction (CORE) finds an orthogonal matrix Q such that the reduced matrices Q'CjQ capture most of the variation among the Cj.

Arguments

  • covs::Array{Array{S, 2}} : the covariance matrices to reduce
  • ns::Array{T} : the sample size used to estimate each covariance matrix
  • ndim::Integer=1 : number of dimensions in the reduction (number of columns of Q)
  • params::Array{Float64} : starting values
  • maxiter::Integer : the maximum number of iterations in the optimization
  • gtol::Float64 : return when the gradient norm is smaller than this value

References

DR Cook, L Forzani (2008). Covariance reducing models: an alternative to spectral modeling of covariance matrices. Biometrika 95:4.

A Edelman, TA Arias, ST Smith (1998). The geometry of algorithms with orthogonality constraints. SIAM J Matrix Anal Appl. http://math.mit.edu/~edelman/publications/geometryofalgorithms.pdf

DimensionReductionRegression.dimension_testMethod
dimension_test(sir)

Test the null hypotheses that only the largest k eigenvalues are non-null.

If method is ':chisq' use the chi-square test of Li (1992). If method is ':diva' use the DIVA approach:

"Inference for the dimension of a regression relationship using pseudo‐covariates" SH Huang, K Shedden, H Chang - Biometrics, 2022.

DimensionReductionRegression.grass_optMethod
grass_opt(params, fun, grad!, maxiter, gtol) -> Tuple

Minimize a function on a Grassmann manifold using steepest descent.

Arguments

  • "params::Array{Float64, 2}" Starting value for the optimization.
  • "fun::Function" The function to be minimized.
  • "grad!::Function" The gradient of fun.
  • "maxiter::Integer" The maximum number of iterations.
  • "gtol::Float64" Convergence occurs when the gradient norm falls below this value.

The function returns a 3-tuple containing the parameter value that minimizes the function, the minimizing function value, and a Boolean indicating whether the search converged.

Reference

A Edelman, TA Arias, ST Smith (1998). The geometry of algorithms with orthogonality constraints. SIAM J Matrix Anal Appl. http://math.mit.edu/~edelman/publications/geometryofalgorithms.pdf

StatsAPI.fitMethod
fit(PrincipalHessianDirections, X, y; method="y", ndir=2)

Use Principal Hessian Directions (PHD) to estimate the effective dimension reduction (EDR) space.

StatsAPI.fitMethod
fit(SlicedAverageVarianceEstimation, X, y; nslice, ndir)

Use Sliced Average Variance Estimation (SAVE) to estimate the effective dimension reduction (EDR) space.

'y' must be sorted before calling 'fit'.

StatsAPI.fitMethod
sir(y, x; nslice, ndir)

Use Sliced Inverse Regression (SIR) to estimate the effective dimension reduction (EDR) space.

'y' must be sorted before calling 'fit'.