NAG Library Routine Document G02BUF.1

Similar documents
NAG Library Routine Document G02BXF.1

NAG Library Routine Document G02BGF.1

NAG Library Routine Document G02CFF.1

NAG Library Routine Document F04MCF.1

NAG Fortran Library Routine Document G01ADF.1

NAG Fortran Library Routine Document G02HKF.1

NAG Library Routine Document G01ABF.1

NAG Library Routine Document G02GPF.1

NAG Library Routine Document F04JAF.1

NAG Fortran Library Routine Document G05RAF.1

NAG Library Routine Document G02DAF.1

NAG Library Routine Document G02DDF.1

NAG Fortran Library Routine Document F04JAF.1

NAG Library Routine Document F04BEF.1

NAG Fortran Library Routine Document F01CWF.1

NAG Library Routine Document G13DMF.1

NAG Fortran Library Routine Document F01CTF.1

NAG Fortran Library Routine Document F11ZPF.1

NAG Library Routine Document G05RGF.1

NAG Library Routine Document G05REF.1

NAG Library Function Document nag_sum_sqs_update (g02btc)

NAG Fortran Library Routine Document F04BJF.1

NAG Library Routine Document G05PZF.1

NAG Library Routine Document G05PZF.1

NAG Fortran Library Routine Document F04JGF.1

NAG Fortran Library Routine Document G08AJF.1

NAG Fortran Library Routine Document G01AJF.1

NAG Fortran Library Routine Document E02BCF.1

NAG Fortran Library Routine Document F04CAF.1

NAG Fortran Library Routine Document F04CJF.1

NAG Fortran Library Routine Document G05LZF.1

NAG Library Routine Document H03ADF.1

NAG Fortran Library Routine Document G01NBF.1

NAG Fortran Library Routine Document G08AKF.1

NAG Fortran Library Routine Document F04DHF.1

NAG Fortran Library Routine Document G01ARF.1

NAG Fortran Library Routine Document F04BGF.1

NAG Fortran Library Routine Document E01AEF.1

NAG Library Function Document nag_corr_cov (g02bxc)

NAG Library Function Document nag_corr_cov (g02bxc)

NAG Library Routine Document G13DPF.1

NAG Library Routine Document G12ABF.1

NAG Library Routine Document E04GYF.1

NAG Library Routine Document E02DFF.1

NAG Library Routine Document E02BCF.1

NAG Library Routine Document G01AJF.1

NAG Fortran Library Routine Document C05PBF.1

NAG Fortran Library Routine Document X04CBF.1

NAG Fortran Library Routine Document F08FQF (CHEEVD=ZHEEVD).1

NAG Fortran Library Routine Document F07AAF (DGESV).1

F02WUF NAG Fortran Library Routine Document

NAG Library Routine Document G05PGF.1

NAG Library Routine Document D02MWF.1

NAG Library Routine Document D02UCF.1

NAG Library Routine Document F07MAF (DSYSV).1

NAG Library Routine Document D04AAF.1

NAG Library Routine Document G13CDF.1

F01BSF NAG Fortran Library Routine Document

NAG Fortran Library Routine Document F08BHF (DTZRZF).1

NAG Library Routine Document C05RBF.1

NAG Library Routine Document D02UAF.1

NAG Library Routine Document F07KDF (DPSTRF)

NAG Library Routine Document C05PBF/C05PBA

NAG Library Routine Document F08ASF (ZGEQRF).1

E02ZAF NAG Fortran Library Routine Document

NAG Library Routine Document E02DAF.1

NAG Library Routine Document D02HBF.1

NAG Library Routine Document C05QBF.1

NAG Library Routine Document F08LEF (DGBBRD)

NAG Library Routine Document D01BAF.1

NAG Toolbox for MATLAB. g02ef.1

NAG Library Routine Document E04GBF.1

NAG Fortran Library Routine Document F08KAF (DGELSS).1

NAG Fortran Library Routine Document D02PZF.1

NAG Fortran Library Routine Document D02MVF.1

NAG Library Routine Document F08FAF (DSYEV)

F04EBFP.1. NAG Parallel Library Routine Document

NAG Fortran Library Routine Document D01AJF.1

NAG Fortran Library Routine Document F11DSF.1

NAG Fortran Library Routine Document D02KAF.1

C05 Roots of One or More Transcendental Equations. C05PCF NAG Fortran Library Routine Document

NAG Library Routine Document F08NGF (DORMHR).1

NAG Library Routine Document F08FDF (DSYEVR)

D01ARF NAG Fortran Library Routine Document

NAG Library Routine Document F08BVF (ZTZRZF)

NAG Library Routine Document D02ZAF.1

E01DAF NAG Fortran Library Routine Document

NAG Library Routine Document F08ZNF (ZGGLSE)

NAG Library Function Document nag_full_step_regsn (g02efc)

G07EAF NAG Fortran Library Routine Document

NAG Fortran Library Routine Document D05BYF.1

E04FDFP.1. NAG Parallel Library Routine Document

NAG C Library Function Document nag_tsa_multi_cross_corr (g13dmc)

NAG Library Function Document nag_robust_m_corr_user_fn_no_derr (g02hmc)

E04DGF NAG Fortran Library Routine Document

D01FCF NAG Fortran Library Routine Document

NAG Library Function Document nag_robust_m_corr_user_fn (g02hlc)

NAG Library Function Document nag_mv_distance_mat (g03eac)

NAG C Library Function Document nag_rank_regsn (g08rac)

NAG Library Function Document nag_rgsn_matrix_multi_normal (g05lyc)

Transcription:

NAG Library Routine Document Note: before using this routine, please read the Users Note for your implementation to check the interpretation of bold italicised terms and other implementation-dependent details. 1 Purpose calculates the sample means and sums of squares and cross-products, or sums of squares and cross-products of deviations from the mean, in a single pass for a set of data. The data may be weighted. 2 Specification SUBROUTINE (MEAN, WEIGHT, N, M, X, LDX, WT, SW, WMEAN, C, IFAIL) INTEGER N, M, LDX, IFAIL double precision X(LDX,M), WT(), SW, WMEAN(M), C((MM+M)/2) CHARACTER1 MEAN, WEIGHT 3 Description is an adaptation of West s WV2 algorithm; see West (1979). This routine calculates the (optionally weighted) sample means and (optionally weighted) sums of squares and cross-products or sums of squares and cross-products of deviations from the (weighted) mean for a sample of n observations on m variables X j, for j ¼ 1; 2;...;m. The algorithm makes a single pass through the data. For the first i 1 observations let the mean of the jth variable be x j ði 1Þ, the cross-product about the mean for the jth and kth variables be c jk ði 1Þ and the sum of weights be W i 1. These are updated by the ith observation, x ij, for j ¼ 1; 2;...;m, with weight w i as follows: and W i ¼ W i 1 þ w i x j ðþ¼x i j ði 1Þþ w i W i x j x j ði 1Þ, j ¼ 1; 2;...;m c jk ðþ¼c i jk ði 1Þþ w i x W j x j ði 1Þ ð xk x k ði 1ÞÞW i 1, j ¼ 1; 2;...;m and k ¼ j; j þ 1;...;m. i The algorithm is initialized by taking x j ð1þ ¼ x 1j, the first observation, and c ij ð1þ ¼ 0:0. For the unweighted case w i ¼ 1 and W i ¼ i for all i. Note that only the upper triangle of the matrix is calculated and returned packed by column. 4 References Chan T F, Golub G H and Leveque R J (1982) Updating Formulae and a Pairwise Algorithm for Computing Sample Variances Compstat, Physica-Verlag West D H D (1979) Updating mean and variance estimates: An improved method Comm. ACM 22 532 555.1

NAG Library Manual 5 Parameters 1: MEAN CHARACTER1 Input On entry: indicates whether is to calculate sums of squares and cross-products, or sums of squares and cross-products of deviations about the mean. MEAN ¼ M The sums of squares and cross-products of deviations about the mean are calculated. MEAN ¼ Z The sums of squares and cross-products are calculated. Constraint: MEAN ¼ M or Z. 2: WEIGHT CHARACTER1 Input On entry: indicates whether the data is weighted or not. WEIGHT ¼ U The calculations are performed on unweighted data. WEIGHT ¼ W The calculations are performed on weighted data. Constraint: WEIGHT ¼ W or U. 3: N INTEGER Input On entry: n, the number of observations in the dataset. Constraint: N 1. 4: M INTEGER Input On entry: m, the number of variables. Constraint: M 1. 5: XðLDX,MÞ double precision array Input On entry: Xði; jþ must contain the ith observation on the jth variable, for i ¼ 1; 2;...; n and j ¼ 1; 2;...;m. 6: LDX INTEGER Input On entry: the first dimension of the array X as declared in the (sub)program from which is called. Constraint: LDX N. 7: WTðÞ double precision array Input Note: the dimension of the array WT must be at least N if WEIGHT ¼ W, and at least 1 otherwise. On entry: the optional weights of each observation. If WEIGHT ¼ U, WT is not referenced. If WEIGHT ¼ W, WTðiÞ must contain the weight for the ith observation. Constraint: if WEIGHT ¼ W, WTðiÞ 0:0 for i ¼ 1; 2;...;n. 8: SW double precision Output On exit: the sum of weights. If WEIGHT ¼ U, SW contains the number of observations, n..2

9: WMEANðMÞ double precision array Output On exit: the sample means. WMEANðjÞ contains the mean for the jth variable. 10: CððM M þ MÞ=2Þ double precision array Output On exit: the cross-products. If MEAN ¼ M, C contains the upper triangular part of the matrix of (weighted) sums of squares and cross-products of deviations about the mean. If MEAN ¼ Z, C contains the upper triangular part of the matrix of (weighted) sums of squares and cross-products. These are stored packed by columns, i.e., the cross-product between the jth and kth variable, k j, is stored in Cðk ðk 1Þ=2 þ jþ. 11: IFAIL INTEGER Input/Output On entry: IFAIL must be set to 0, 1 or 1. If you are unfamiliar with this parameter you should refer to Section 3.3 in the Essential Introduction for details. On exit: IFAIL ¼ 0 unless the routine detects an error (see Section 6). For environments where it might be inappropriate to halt program execution when an error is detected, the value 1 or 1 is recommended. If the output of error messages is undesirable, then the value 1 is recommended. Otherwise, if you are not familiar with this parameter, the recommended value is 0. When the value 1 or 1 is used it is essential to test the value of IFAIL on exit. 6 Error Indicators and Warnings If on entry IFAIL ¼ 0or 1, explanatory error messages are output on the current error message unit (as defined by X04AAF). Errors or warnings detected by the routine: IFAIL ¼ 1 On entry, M < 1, or N < 1, or LDX < N. IFAIL ¼ 2 On entry, MEAN 6¼ M or Z. IFAIL ¼ 3 On entry, WEIGHT 6¼ W or U. IFAIL ¼ 4 On entry, WEIGHT ¼ W, and a value of WT < 0:0. 7 Accuracy For a detailed discussion of the accuracy of this algorithm see Chan et al. (1982) or West (1979). 8 Further Comments G02BWF may be used to calculate the correlation coefficients from the cross-products of deviations about the mean. The cross-products of deviations about the mean may be scaled using F06EDF (DSCAL) or F06FDF to give a variance-covariance matrix..3

NAG Library Manual The means and cross-products produced by may be updated by adding or removing observations using G02BTF. 9 Example A program to calculate the means, the required sums of squares and cross-products matrix, and the variance matrix for a set of 3 observations of 3 variables. 9.1 Program Text Example Program Text Mark 14 Release. NAG Copyright 1989... Parameters.. INTEGER NIN, NOUT (NIN=5,NOUT=6) INTEGER LDX, MMAX, MP (LDX=12,MMAX=12,MP=(MMAX(MMAX+1))/2) DOUBLE PRECISION ONE (ONE=1.0D0).. Local Scalars.. DOUBLE PRECISION ALPHA, SW INTEGER IFAIL, J, K, M, MM, N CHARACTER MEAN, WEIGHT.. Local Arrays.. DOUBLE PRECISION C(MP), V(MP), WMEAN(MMAX), WT(LDX), X(LDX,MMAX).. External Subroutines.. EXTERNAL F06FDF,, X04CCF.. Executable Statements.. WRITE (NOUT,) Example Program Results Skip heading in data file READ (NIN,) READ (NIN,,END=20) MEAN, WEIGHT, M, N IF (M.LE.MMAX.AND. N.LE.LDX) THEN READ (NIN,) (WT(J),J=1,N) READ (NIN,) ((X(J,K),K=1,M),J=1,N) IFAIL = 1 Calculate sums of squares and cross-products matrix CALL (MEAN,WEIGHT,N,M,X,LDX,WT,SW,WMEAN,C,IFAIL) IF (IFAIL.EQ.0) THEN WRITE (NOUT,) WRITE (NOUT,) Means WRITE (NOUT,99999) (WMEAN(J),J=1,M) WRITE (NOUT,) WRITE (NOUT,) Weights WRITE (NOUT,99999) (WT(J),J=1,N) WRITE (NOUT,) Print the sums of squares and cross products matrix CALL X04CCF( Upper, Non-unit,M,C, + Sums of squares and cross-products,ifail) IF (SW.GT.ONE) THEN Calculate the variance matrix ALPHA = ONE/(SW-ONE) MM = (M(M+1))/2 CALL F06FDF(MM,ALPHA,C,1,V,1) Print the variance matrix WRITE (NOUT,) CALL X04CCF( Upper, Non-unit,M,V, Variance matrix, + IFAIL) ELSE WRITE (NOUT,) WRITE (NOUT,99997) returned with IFAIL =, + IFAIL ELSE WRITE (NOUT,99998) M or N is too large. M =, M,, N =, N.4

20 CONTINUE 99999 FORMAT (1X,6F14.4) 99998 FORMAT (1X,A,I6,A,I6) 99997 FORMAT (1X,A,I5) END 9.2 Program Data Example Program Data M W 3 3 0.1300 1.3070 0.3700 9.1231 3.7011 4.5230 0.9310 0.0900 0.8870 0.0009 0.0099 0.0999 9.3 Program Results Example Program Results Means Weights 1.3299 0.3334 0.9874 0.1300 1.3070 0.3700 Sums of squares and cross-products 1 2 3 1 8.7569 3.6978 4.0707 2 1.5905 1.6861 3 1.9297 Variance matrix 1 2 3 1 10.8512 4.5822 5.0443 2 1.9709 2.0893 3 2.3912.5 (last)