home *** CD-ROM | disk | FTP | other *** search
/ Frostbyte's 1980s DOS Shareware Collection / floppyshareware.zip / floppyshareware / DOOG / PCSSP2.ZIP / STATCORR.ZIP / ORDER.FOR < prev    next >
Text File  |  1985-11-29  |  4KB  |  101 lines

  1. C
  2. C     ..................................................................
  3. C
  4. C        SUBROUTINE ORDER
  5. C
  6. C        PURPOSE
  7. C           CONSTRUCT FROM A LARGER MATRIX OF CORRELATION COEFFICIENTS
  8. C           A SUBSET MATRIX OF INTERCORRELATIONS AMONG INDEPENDENT
  9. C           VARIABLES AND A VECTOR OF INTERCORRELATIONS OF INDEPENDENT
  10. C           VARIABLES WITH DEPENDENT VARIABLE.  THIS SUBROUTINE IS
  11. C           NORMALLY USED IN THE PERFORMANCE OF MULTIPLE AND POLYNOMIAL
  12. C           REGRESSION ANALYSES.
  13. C
  14. C        USAGE
  15. C           CALL ORDER (M,R,NDEP,K,ISAVE,RX,RY)
  16. C
  17. C        DESCRIPTION OF PARAMETERS
  18. C           M     - NUMBER OF VARIABLES AND ORDER OF MATRIX R.
  19. C           R     - INPUT MATRIX CONTAINING CORRELATION COEFFICIENTS.
  20. C                   THIS SUBROUTINE EXPECTS ONLY UPPER TRIANGULAR
  21. C                   PORTION OF THE SYMMETRIC MATRIX TO BE STORED (BY
  22. C                   COLUMN) IN R.  (STORAGE MODE OF 1)
  23. C           NDEP  - THE SUBSCRIPT NUMBER OF THE DEPENDENT VARIABLE.
  24. C           K     - NUMBER OF INDEPENDENT VARIABLES TO BE INCLUDED
  25. C                   IN THE FORTHCOMING REGRESSION. K MUST BE GREATER
  26. C                   THAN OR EQUAL TO 1.
  27. C           ISAVE - INPUT VECTOR OF LENGTH K+1 CONTAINING, IN ASCENDING
  28. C                   ORDER, THE SUBSCRIPT NUMBERS OF K INDEPENDENT
  29. C                   VARIABLES TO BE INCLUDED IN THE FORTHCOMING REGRES-
  30. C                   SION.
  31. C                   UPON RETURNING TO THE CALLING ROUTINE, THIS VECTOR
  32. C                   CONTAINS, IN ADDITION, THE SUBSCRIPT NUMBER OF
  33. C                   THE DEPENDENT VARIABLE IN K+1 POSITION.
  34. C           RX    - OUTPUT MATRIX (K X K) CONTAINING INTERCORRELATIONS
  35. C                   AMONG INDEPENDENT VARIABLES TO BE USED IN FORTH-
  36. C                   COMING REGRESSION.
  37. C           RY    - OUTPUT VECTOR OF LENGTH K CONTAINING INTERCORRELA-
  38. C                   TIONS OF INDEPENDENT VARIABLES WITH DEPENDENT
  39. C                   VARIABLES.
  40. C
  41. C        REMARKS
  42. C           NONE
  43. C
  44. C        SUBROUTINES AND FUNCTION SUBPROGRAMS REQUIRED
  45. C           NONE
  46. C
  47. C        METHOD
  48. C           FROM THE SUBSCRIPT NUMBERS OF THE VARIABLES TO BE INCLUDED
  49. C           IN THE FORTHCOMING REGRESSION, THE SUBROUTINE CONSTRUCTS THE
  50. C           MATRIX RX AND THE VECTOR RY.
  51. C
  52. C     ..................................................................
  53. C
  54.       SUBROUTINE ORDER (M,R,NDEP,K,ISAVE,RX,RY)
  55.       DIMENSION R(1),ISAVE(1),RX(1),RY(1)
  56. C
  57. C        ...............................................................
  58. C
  59. C        IF A DOUBLE PRECISION VERSION OF THIS ROUTINE IS DESIRED, THE
  60. C        C IN COLUMN 1 SHOULD BE REMOVED FROM THE DOUBLE PRECISION
  61. C        STATEMENT WHICH FOLLOWS.
  62. C
  63. C     DOUBLE PRECISION R,RX,RY
  64. C
  65. C        THE C MUST ALSO BE REMOVED FROM DOUBLE PRECISION STATEMENTS
  66. C        APPEARING IN OTHER ROUTINES USED IN CONJUNCTION WITH THIS
  67. C        ROUTINE.
  68. C
  69. C        ...............................................................
  70. C
  71. C     COPY INTERCORRELATIONS OF INDEPENDENT VARIABLES
  72. C     WITH DEPENDENT VARIABLE
  73. C
  74.       MM=0
  75.       DO 130 J=1,K
  76.       L2=ISAVE(J)
  77.       IF(NDEP-L2) 122, 123, 123
  78.   122 L=NDEP+(L2*L2-L2)/2
  79.       GO TO 125
  80.   123 L=L2+(NDEP*NDEP-NDEP)/2
  81.   125 RY(J)=R(L)
  82. C
  83. C     COPY A SUBSET MATRIX OF INTERCORRELATIONS AMONG
  84. C     INDEPENDENT VARIABLES
  85. C
  86.       DO 130 I=1,K
  87.       L1=ISAVE(I)
  88.       IF(L1-L2) 127, 128, 128
  89.   127 L=L1+(L2*L2-L2)/2
  90.       GO TO 129
  91.   128 L=L2+(L1*L1-L1)/2
  92.   129 MM=MM+1
  93.   130 RX(MM)=R(L)
  94. C
  95. C     PLACE THE SUBSCRIPT NUMBER OF THE DEPENDENT
  96. C     VARIABLE IN ISAVE(K+1)
  97. C
  98.       ISAVE(K+1)=NDEP
  99.       RETURN
  100.       END
  101.