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:
 At Mark 22: n was made optional

## Description

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

None.

## Parameters

### Compulsory Input Parameters

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

### Optional Input Parameters

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

### Output Parameters

1:     $\mathrm{xbar}\left({\mathbf{m}}\right)$ – double array
${\mathbf{xbar}}\left(\mathit{j}\right)$ contains the mean value, ${\stackrel{-}{x}}_{\mathit{j}}$, of the $\mathit{j}$th variable, for $\mathit{j}=1,2,\dots ,m$.
2:     $\mathrm{std}\left({\mathbf{m}}\right)$ – double array
The standard deviation, ${s}_{\mathit{j}}$, of the $\mathit{j}$th variable, for $\mathit{j}=1,2,\dots ,m$.
3:     $\mathrm{sspz}\left(\mathit{ldsspz},{\mathbf{m}}\right)$ – double array
${\mathbf{sspz}}\left(\mathit{j},\mathit{k}\right)$ is the cross-product about zero, ${\stackrel{~}{S}}_{\mathit{j}\mathit{k}}$, for $\mathit{j}=1,2,\dots ,m$ and $\mathit{k}=1,2,\dots ,m$.
4:     $\mathrm{rz}\left(\mathit{ldrz},{\mathbf{m}}\right)$ – double array
${\mathbf{rz}}\left(\mathit{j},\mathit{k}\right)$ is the correlation-like coefficient, ${\stackrel{~}{R}}_{\mathit{j}\mathit{k}}$, between the $\mathit{j}$th and $\mathit{k}$th variables, for $\mathit{j}=1,2,\dots ,m$ and $\mathit{k}=1,2,\dots ,m$.
5:     $\mathrm{ifail}$int64int32nag_int scalar
${\mathbf{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:
${\mathbf{ifail}}=1$
 On entry, ${\mathbf{n}}<2$.
${\mathbf{ifail}}=2$
 On entry, ${\mathbf{m}}<2$.
${\mathbf{ifail}}=3$
 On entry, $\mathit{ldx}<{\mathbf{n}}$, or $\mathit{ldsspz}<{\mathbf{m}}$, or $\mathit{ldrz}<{\mathbf{m}}$.
${\mathbf{ifail}}=-99$
${\mathbf{ifail}}=-399$
Your licence key may have expired or may not have been installed correctly.
${\mathbf{ifail}}=-999$
Dynamic memory allocation failed.

## 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$.

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

## Example

This example reads in a set of data consisting of five observations on each of three variables. The means, standard deviations, sums of squares and cross-products about zero, and correlation-like coefficients for all three variables are then calculated and printed.
```function g02bd_example

fprintf('g02bd example results\n\n');

x = [ 2,  3, 3;
4,  6, 4;
9,  9, 0;
0, 12, 2;
12, -1, 5];
[n,m] = size(x);
fprintf('Number of variables (columns) = %d\n', m);
fprintf('Number of cases     (rows)    = %d\n\n', n);
disp('Data matrix is:-');
disp(x);

[xbar, std, sspz, rz, ifail] = ...
g02bd(x);

fprintf('Variable   Mean     St. dev.\n');
fprintf('%5d%11.4f%11.4f\n',[[1:m]' xbar std]');
fprintf('\nSums of squares and cross-products about zero\n');
disp(sspz)
fprintf('Correlation-like coefficients\n');
disp(rz);

```
```g02bd example results

Number of variables (columns) = 3
Number of cases     (rows)    = 5

Data matrix is:-
2     3     3
4     6     4
9     9     0
0    12     2
12    -1     5

Variable   Mean     St. dev.
1     5.4000     4.9800
2     5.8000     5.0695
3     2.8000     1.9235

Sums of squares and cross-products about zero
245    99    82
99   271    52
82    52    54

Correlation-like coefficients
1.0000    0.3842    0.7129
0.3842    1.0000    0.4299
0.7129    0.4299    1.0000

```