Skip to contents

Computes the feasibility violation defined as \(\sum_{t > s} |u_{t}^\top u_{s}|\) if orthogonality constraints are enforced (feasibilityConstraintType = 0) and \(\sum_{t > s} |u_{t}^\top C u_{s}|\) if zero-correlation constraints are enforced (feasibilityConstraintType = 1).

Usage

feasibility_violation_off(C, U, feasibilityConstraintType)

Arguments

C

A matrix. The correlation or covariance matrix (p x p).

U

A matrix. Each column corresponds to a p-dimensional PC.

feasibilityConstraintType

An integer. Type of feasibility constraints to be enforced. 0: orthogonality constraints; 1: uncorrelatedness constraints.

Value

A float.

Examples

TestMat <- cor(mtcars)
mspcares <- mspca(TestMat, r = 2, ks = c(4, 4), verbose = FALSE)
feasibility_violation_off(TestMat, mspcares$x_best, 0)
#> [1] 0