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_stat_normal_scores_var (g01dc)

## Purpose

nag_stat_normal_scores_var (g01dc) computes an approximation to the variance-covariance matrix of an ordered set of independent observations from a Normal distribution with mean 0.0$0.0$ and standard deviation 1.0$1.0$.

## Syntax

[vec, ifail] = g01dc(n, exp1, exp2, sumssq)
[vec, ifail] = nag_stat_normal_scores_var(n, exp1, exp2, sumssq)

## Description

nag_stat_normal_scores_var (g01dc) is an adaptation of the Applied Statistics Algorithm AS 128, see Davis and Stephens (1978). An approximation to the variance-covariance matrix, V$V$, using a Taylor series expansion of the Normal distribution function is discussed in David and Johnson (1954).
However, convergence is slow for extreme variances and covariances. The present function uses the David–Johnson approximation to provide an initial approximation and improves upon it by use of the following identities for the matrix.
For a sample of size n$n$, let mi${m}_{i}$ be the expected value of the i$i$th largest order statistic, then:
 (a) for any i = 1,2, … ,n$i=1,2,\dots ,n$, ∑ j = 1nVij = 1$\sum _{j=1}^{n}{V}_{ij}=1$ (b) V12 = V11 + mn2 − mnmn − 1 − 1${V}_{12}={V}_{11}+{m}_{n}^{2}-{m}_{n}{m}_{n-1}-1$ (c) the trace of V$V$ is tr(V) = n − ∑ i = 1nmi2$tr\left(V\right)=n-\sum _{i=1}^{n}{m}_{i}^{2}$ (d) Vij = Vji = Vrs = Vsr${V}_{ij}={V}_{ji}={V}_{rs}={V}_{sr}$ where r = n + 1 − i$r=n+1-i$, s = n + 1 − j$s=n+1-j$ and i,j = 1,2, … ,n$i,j=1,2,\dots ,n$. Note that only the upper triangle of the matrix is calculated and returned column-wise in vector form.

## References

David F N and Johnson N L (1954) Statistical treatment of censored data, Part 1. Fundamental formulae Biometrika 41 228–240
Davis C S and Stephens M A (1978) Algorithm AS 128: approximating the covariance matrix of Normal order statistics Appl. Statist. 27 206–212

## Parameters

### Compulsory Input Parameters

1:     n – int64int32nag_int scalar
n$n$, the sample size.
Constraint: n > 0${\mathbf{n}}>0$.
2:     exp1 – double scalar
The expected value of the largest Normal order statistic, mn${m}_{n}$, from a sample of size n$n$.
3:     exp2 – double scalar
The expected value of the second largest Normal order statistic, mn1${m}_{n-1}$, from a sample of size n$n$.
4:     sumssq – double scalar
The sum of squares of the expected values of the Normal order statistics from a sample of size n$n$.

None.

None.

### Output Parameters

1:     vec(n × (n + 1) / 2${\mathbf{n}}×\left({\mathbf{n}}+1\right)/2$) – double array
The upper triangle of the n$n$ by n$n$ variance-covariance matrix packed by column. Thus element Vij${V}_{ij}$ is stored in vec(i + j × (j1) / 2)${\mathbf{vec}}\left(i+j×\left(j-1\right)/2\right)$, for 1ijn$1\le i\le j\le n$.
2:     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 < 1${\mathbf{n}}<1$.

## Accuracy

For n20$n\le 20$, where comparison with the exact values can be made, the maximum error is less than 0.0001$0.0001$.

The time taken by nag_stat_normal_scores_var (g01dc) is approximately proportional to n2${n}^{2}$.
The arguments exp1${\mathbf{exp1}}$ ( = mn$={m}_{n}$), exp2${\mathbf{exp2}}$ ( = mn1$={m}_{n-1}$) and sumssq${\mathbf{sumssq}}$ ( = j = 1nmj2$=\sum _{j=1}^{n}{m}_{j}^{2}$) may be found from the expected values of the Normal order statistics obtained from nag_stat_normal_scores_exact (g01da) (exact) or nag_stat_normal_scores_approx (g01db) (approximate).

## Example

```function nag_stat_normal_scores_var_example
n = int64(6);
exp1 = 1.267206361712849;
exp2 = 0.641755038918563;
sumssq = 4.116565238504731;
[vec, ifail] = nag_stat_normal_scores_var(n, exp1, exp2, sumssq)
```
```

vec =

0.4159
0.2085
0.2796
0.1394
0.1889
0.2462
0.1025
0.1397
0.1834
0.2462
0.0774
0.1060
0.1397
0.1889
0.2796
0.0563
0.0774
0.1025
0.1394
0.2085
0.4159

ifail =

0

```
```function g01dc_example
n = int64(6);
exp1 = 1.267206361712849;
exp2 = 0.641755038918563;
sumssq = 4.116565238504731;
[vec, ifail] = g01dc(n, exp1, exp2, sumssq)
```
```

vec =

0.4159
0.2085
0.2796
0.1394
0.1889
0.2462
0.1025
0.1397
0.1834
0.2462
0.0774
0.1060
0.1397
0.1889
0.2796
0.0563
0.0774
0.1025
0.1394
0.2085
0.4159

ifail =

0

```