Integer type:  int32  int64  nag_int  show int32  show int32  show int64  show int64  show nag_int  show nag_int

Chapter Contents
Chapter Introduction
NAG Toolbox

# NAG Toolbox: nag_correg_coeffs_zero (g02bd)

## Purpose

nag_correg_coeffs_zero (g02bd) computes means and standard deviations of variables, sums of squares and cross-products about zero, and correlation-like coefficients for a set of data.

## Syntax

[xbar, std, sspz, rz, ifail] = g02bd(x, 'n', n, 'm', m)
[xbar, std, sspz, rz, ifail] = nag_correg_coeffs_zero(x, 'n', n, 'm', m)
Note: the interface to this routine has changed since earlier releases of the toolbox:
Mark 22: n has been made optional
.

## Description

The input data consists of n$n$ observations for each of m$m$ variables, given as an array
 [xij],  i = 1,2, … ,n(n ≥ 2) ,  j = 1,2, … ,m (m ≥ 2), $[xij], i=1,2,…,n(n≥2) , j=1,2,…,m (m≥2),$
where xij${x}_{ij}$ is the i$i$th observation on the j$j$th variable.
The quantities calculated are:
(a) Means:
 n xj = 1/n ∑ xij,  j = 1,2, … ,m. i = 1
$x-j=1n∑i=1nxij, j=1,2,…,m.$
(b) Standard deviations:
 sj = sqrt(1/(n − 1) ∑ i = 1n(xij − xj)2),   j = 1,2, … ,m. $sj=1n- 1 ∑i= 1n (xij-x-j) 2, j= 1,2,…,m.$
(c) Sums of squares and cross-products about zero:
 n S̃jk = ∑ xijxik,  j,k = 1,2, … ,m. i = 1
$S~jk=∑i=1nxijxik, j,k=1,2,…,m.$
(d) Correlation-like coefficients:
 R̃jk = (S̃jk)/(sqrt(S̃jjS̃kk)),   j,k = 1,2, … ,m. $R~jk=S~jkS~jjS~kk , j,k= 1,2,…,m.$
If jj${\stackrel{~}{S}}_{jj}$ or kk${\stackrel{~}{S}}_{kk}$ is zero, jk${\stackrel{~}{R}}_{jk}$ is set to zero.

None.

## Parameters

### Compulsory Input Parameters

1:     x(ldx,m) – double array
ldx, the first dimension of the array, must satisfy the constraint ldxn$\mathit{ldx}\ge {\mathbf{n}}$.
x(i,j)${\mathbf{x}}\left(\mathit{i},\mathit{j}\right)$ must be set to the value of xij${x}_{\mathit{i}\mathit{j}}$, the i$\mathit{i}$th observation on the j$\mathit{j}$th variable, for i = 1,2,,n$\mathit{i}=1,2,\dots ,n$ and j = 1,2,,m$\mathit{j}=1,2,\dots ,m$.

### Optional Input Parameters

1:     n – int64int32nag_int scalar
Default: The first dimension of the array x.
n$n$, the number of observations or cases.
Constraint: n2${\mathbf{n}}\ge 2$.
2:     m – int64int32nag_int scalar
Default: The second dimension of the array x.
m$m$, the number of variables.
Constraint: m2${\mathbf{m}}\ge 2$.

ldx ldsspz ldrz

### Output Parameters

1:     xbar(m) – double array
xbar(j)${\mathbf{xbar}}\left(\mathit{j}\right)$ contains the mean value, xj${\stackrel{-}{x}}_{\mathit{j}}$, of the j$\mathit{j}$th variable, for j = 1,2,,m$\mathit{j}=1,2,\dots ,m$.
2:     std(m) – double array
The standard deviation, sj${s}_{\mathit{j}}$, of the j$\mathit{j}$th variable, for j = 1,2,,m$\mathit{j}=1,2,\dots ,m$.
3:     sspz(ldsspz,m) – double array
ldsspzm$\mathit{ldsspz}\ge {\mathbf{m}}$.
sspz(j,k)${\mathbf{sspz}}\left(\mathit{j},\mathit{k}\right)$ is the cross-product about zero, jk${\stackrel{~}{S}}_{\mathit{j}\mathit{k}}$, for j = 1,2,,m$\mathit{j}=1,2,\dots ,m$ and k = 1,2,,m$\mathit{k}=1,2,\dots ,m$.
4:     rz(ldrz,m) – double array
ldrzm$\mathit{ldrz}\ge {\mathbf{m}}$.
rz(j,k)${\mathbf{rz}}\left(\mathit{j},\mathit{k}\right)$ is the correlation-like coefficient, jk${\stackrel{~}{R}}_{\mathit{j}\mathit{k}}$, between the j$\mathit{j}$th and k$\mathit{k}$th variables, for j = 1,2,,m$\mathit{j}=1,2,\dots ,m$ and k = 1,2,,m$\mathit{k}=1,2,\dots ,m$.
5:     ifail – int64int32nag_int scalar
${\mathrm{ifail}}={\mathbf{0}}$ unless the function detects an error (see [Error Indicators and Warnings]).

## Error Indicators and Warnings

Errors or warnings detected by the function:
ifail = 1${\mathbf{ifail}}=1$
 On entry, n < 2${\mathbf{n}}<2$.
ifail = 2${\mathbf{ifail}}=2$
 On entry, m < 2${\mathbf{m}}<2$.
ifail = 3${\mathbf{ifail}}=3$
 On entry, ldx < n$\mathit{ldx}<{\mathbf{n}}$, or ldsspz < m$\mathit{ldsspz}<{\mathbf{m}}$, or ldrz < m$\mathit{ldrz}<{\mathbf{m}}$.

## Accuracy

nag_correg_coeffs_zero (g02bd) does not use additional precision arithmetic for the accumulation of scalar products, so there may be a loss of significant figures for large n$n$.

The time taken by nag_correg_coeffs_zero (g02bd) depends on n$n$ and m$m$.
The function uses a two-pass algorithm.

## Example

```function nag_correg_coeffs_zero_example
x = [2, 3, 3;
4, 6, 4;
9, 9, 0;
0, 12, 2;
12, -1, 5];
[xbar, std, sspz, rz, ifail] = nag_correg_coeffs_zero(x)
```
```

xbar =

5.4000
5.8000
2.8000

std =

4.9800
5.0695
1.9235

sspz =

245    99    82
99   271    52
82    52    54

rz =

1.0000    0.3842    0.7129
0.3842    1.0000    0.4299
0.7129    0.4299    1.0000

ifail =

0

```
```function g02bd_example
x = [2, 3, 3;
4, 6, 4;
9, 9, 0;
0, 12, 2;
12, -1, 5];
[xbar, std, sspz, rz, ifail] = g02bd(x)
```
```

xbar =

5.4000
5.8000
2.8000

std =

4.9800
5.0695
1.9235

sspz =

245    99    82
99   271    52
82    52    54

rz =

1.0000    0.3842    0.7129
0.3842    1.0000    0.4299
0.7129    0.4299    1.0000

ifail =

0

```