ICA Procedure

PROC ICA Statement

  • PROC ICA <options>;

The PROC ICA statement invokes the ICA procedure. Table 1 summarizes the options available in the PROC ICA statement.

Table 1: PROC ICA Statement Options

Option Description
Basic Options
DATA= Specifies the input data table
Analysis Options
EIGTHRESH= Specifies the threshold for the proportion of variance explained by eigenvalues
GFUNCTION= Specifies the nonquadratic function to be used in the approximation of negentropy
METHOD= Specifies the independent component extraction method to be used
N= Specifies the number of independent components to be computed
NOCENTER Suppresses centering of the numeric variables to be analyzed
NOSCALE Suppresses scaling of the numeric variables to be analyzed
PREFIX= Specifies a prefix for naming the independent components
SEED= Specifies the seed value for pseudorandom number generation
WHITEPREFIX= Specifies a prefix for naming the whitened variables


The following list provides details about these options.

DATA=libref.data-table

names the input data table for PROC ICA to use. The default is the most recently created data table. libref.data-table is a two-level name, where

libref

refers to a collection of information that is defined in the LIBNAME statement and includes the library, which includes a path to the data. For more information about libref, see the section Using SAS Viya Workbench.

data-table

specifies the name of the input data table.

EIGTHRESH=p
EIGENTHRESHOLD=p

specifies the threshold for the proportion of variance explained by eigenvalues, where . If the proportion of variance that an eigenvalue explains is less than the threshold, the eigenvalue is discarded in the analysis. You can use this option to reduce the dimensionality of the input data. For more information, see the section Whitening and Dimension Reduction. By default, EIGTHRESH=0.

GFUNCTION=EXP | LOGCOSH
GFUNC=EXP | LOGCOSH

specifies the nonquadratic function to be used in the approximation of negentropy. You can specify the following function types:

EXP

uses the exponential function, .

LOGCOSH

uses the function, .

By default, GFUNCTION=LOGCOSH.

METHOD=method<(options)>

specifies the independent component extraction method to be used. You can specify the following methods:

DEFLATION<(options)>

requests the deflationary decorrelation method. You can specify the following options:

MAXITER=n

specifies the maximum number of iterations to perform. By default, MAXITER=500.

TOL=n

specifies the convergence criterion. By default, TOL=1E–4.

GEODESIC<(options)>

requests the geodesic InfoMax method. You can specify the following options:

EXTENDED=0 | 1 | 2

specifies the extended option to use. All the sources are assumed to be super-Gaussians for option 0 and sub-Gaussians for option 2. For option 1, the types of sources are estimated. By default, EXTENDED=1.

LRATE=n

specifies the learning rate to use. By default, LRATE=0.1.

MAXITER=n

specifies the maximum number of iterations to perform. By default, MAXITER=500.

TOL=n

specifies the convergence criterion. By default, TOL=1E–4.

SYMMETRIC<(options)>

requests the symmetric decorrelation method. You can specify the following options:

MAXITER=n

specifies the maximum number of iterations to perform. By default, MAXITER=500.

TOL=n

specifies the convergence criterion. By default, TOL=1E–4.

SYMMORTH<(options)>

requests the symmorth InfoMax method. You can specify the following options:

EXTENDED=0 | 1 | 2

specifies the extended option to use. All the sources are assumed to be super-Gaussians for option 0 and sub-Gaussians for option 2. For option 1, the types of sources are estimated. By default, EXTENDED=1.

LRATE=n

specifies the learning rate to use. By default, LRATE=0.1.

MAXITER=n

specifies the maximum number of iterations to perform. By default, MAXITER=500.

TOL=n

specifies the convergence criterion. By default, TOL=1E–4.

UNCONSTRAINED<(options)>

requests the unconstrained InfoMax method. You can specify the following options:

EXTENDED=0 | 1 | 2

specifies the extended option to use. All the sources are assumed to be super-Gaussians for option 0 and sub-Gaussians for option 2. For option 1, the types of sources are estimated. By default, EXTENDED=1.

LRATE=n

specifies the learning rate to use. By default, LRATE=0.1.

MAXITER=n

specifies the maximum number of iterations to perform. By default, MAXITER=500.

TOL=n

specifies the convergence criterion. By default, TOL=1E–4.

By default, METHOD=SYMMETRIC.

N=number

specifies the number of independent components to be computed. The default is the number of numeric variables to be analyzed. The number must be an integer greater than or equal to 0. If N=0, the default is used.

NOCENTER

suppresses centering of the numeric variables to be analyzed. This option is useful if the analysis variables are already centered and scaled.

NOSCALE

suppresses scaling of the numeric variables to be analyzed. This option is useful if the analysis variables are already centered and scaled.

PREFIX=name

specifies a prefix for naming the independent components. By default, the names are Comp1, Comp2, …, Compn. If you specify PREFIX=Abc, the components are named Abc1, Abc2, Abc3, and so on. The number of characters in the prefix plus the number of digits required to designate the variables should not exceed the current name length that is defined by the VALIDVARNAME= system option.

SEED=number

specifies an integer as the seed value for pseudorandom number generation. PROC ICA uses random values to initialize the demixing matrix. Changing the seed value changes the initial demixing matrix, resulting in a different estimated demixing matrix. If you do not specify this option or if number is less than or equal to 0, the seed is generated by reading the time of day from the computer’s clock. By default, SEED=0.

WHITEPREFIX=name
WPREFIX=name

specifies a prefix for naming the whitened variables. By default, the names are White1, White2, …, Whiten. If you specify WHITEPREFIX=Abc, the components are named Abc1, Abc2, Abc3, and so on. The number of characters in the prefix plus the number of digits required to designate the variables should not exceed the current name length that is defined by the VALIDVARNAME= system option.

Last updated: May 14, 2026