MSTRS

Computes various stress criteria in multidimensional scaling.

Required Arguments

DIST — Vector of length N containing the distances. (Input)
Missing values are not allowed in DIST.

DISP — Vector of length N containing the disparities. (Input)

A — The intercept. (Input)
If INTCEP = 0, A is not used.

B — The slope. (Input)
If ISLOPE = 0, B is not used.

POWER — Power to use in the stress function. (Input)
POWER must be greater than or equal to 1.

STRSS — The computed stress criterion. (Output)

WT — The weight used in computing the stress. (Output)
If the weight is too large, a maximum weight is used. See the Description section.

Optional Arguments

N — Number of distances and disparities. (Input)
Default: N = size (DIST,1).

INTCEP — Intercept option parameter. (Input)
If INTCEP = 0, the intercept is not used in the model. If INTCEP = 1, the intercept is used in the model.
Default: INTCEP = 1.

ISLOPE — Slope option parameter. (Input)
If ISLOPE = 0, the slope B is not used. If ISLOPE = 1, the slope is used.
Default: ISLOPE = 1.

ISTRS — Stress option parameter. (Input)
Default: ISTRS = 1.

 

ISTRS

Stress Criterion Used

0

Log stress

1

Stress weighted by the inverse of the sum of the squared disparities

2

Stress weighted by the inverse of the sum of the centered squared disparities

FORTRAN 90 Interface

Generic: CALL MSTRS (DIST, DISP, A, B, POWER, STRSS, WT [])

Specific: The specific interface names are S_MSTRS and D_MSTRS.

FORTRAN 77 Interface

Single: CALL MSTRS (N, DIST, DISP, INTCEP, A, ISLOPE, B, POWER, ISTRS, STRSS, WT)

Double: The double precision name is DMSTRS.

Description

Routine MSTRS computes the value of stress criteria commonly used in multidimensional scaling. Routine MSTRS allows transformed values of the disparities and distances to be input and will compute the stress on the transformed values. Additionally, the user can input a slope and/or an intercept to be used in the stress computations, and the stress can be computed using an arbitrary Lp norm as well as the squared error norm in which p = 2.

Let

 

denote a disparity, δi denote the corresponding distance, α denote the intercept, and let β denote the slope. If INTCEP = 0, then set α = 0. If ISLOPE = 0, then set β = 1.

Set ɛ = 0.001, and let

 

When ISTRS = 0, the stress is computed as

 

where n is the number of nonmissing disparities, and p = POWER is the power to be used. This stress formula, when optimized, can lead to to normal distribution theory maximum likelihood estimation. It can not be used in nonmetric scaling. The weight is computed as n/max(nɛ).

When ISTRS is 1, the stress is computed as

 

and the weight returned is given as

 

Takane, Young, and de Leeuw (1977) recommend using this formula when the data is not column conditional (i.e., whenever the stress is computed over one or more dissimilarity matrices rather than over one column in a single matrix). When ISTRS = 2, the stress is given by

 

where

 

is the average of the nonmissing disparities. The weight is computed as

 

Takane, Young, and de Leeuw (1977) recommend this stress for column conditional data.

Missing values (NaN) are not allowed in DIST while missing disparities in DISP are not used in the computations. If all disparities are missing, the stress criteria is set to 0, and the weight (WT) is set to missing (NaN).

In general, a single call to MSTRS would be made for each strata (“conditionality group”) in the data.

Example

The following example illustrates the computation of stress when the log of the distances and disparities are input. For this example, ISTRS is 1 and POWER is 2.

 

USE MSTRS_INT

USE UMACH_INT

USE SDOT_INT

 

IMPLICIT NONE

INTEGER INTCEP, ISLOPE, ISTRS, N

REAL A, POWER

PARAMETER (A=0.0, INTCEP=0, N=10, POWER=2.0)

!

INTEGER I, NOUT

REAL ALOG, B, DISP(N), DIST(N), STRSS, WT

INTRINSIC ALOG

!

DATA DIST/4.0, 1.5, 1.25, 3.0, 1.75, 2.0, 1.0, 3.5, 2.5, 3.75/

DATA DISP/4.0, 1.0, 1.0, 3.0, 1.0, 2.0, 1.0, 3.0, 2.0, 4.0/

! Transform the data

DO 10 I=1, N

DIST(I) = ALOG(DIST(I))

DISP(I) = ALOG(DISP(I))

10 CONTINUE

! Compute a slope

B = SDOT(N,DISP,1,DIST,1)/SDOT(N,DIST,1,DIST,1)

! Compute the stress

CALL MSTRS (DIST, DISP, A, B, POWER, STRSS, WT, INTCEP=INTCEP)

! Print results

CALL UMACH (2, NOUT)

WRITE (NOUT,99999) STRSS, WT

!

99999 FORMAT (' STRSS = ', F12.4, ' WT = ', F12.4)

END

Output

 

STRSS = 0.0720 WT = 0.1385