ChipMaster's bwBASIC This also includes history going back to v2.10. *WARN* some binary files might have been corrupted by CRLF.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

81 lines
1.6 KiB

  1. 10 PRINT "MANN-WHITNEY U-TEST"
  2. 20 PRINT
  3. 28 REM - SET MAXIMUM SAMPEL SIZE TO X(m),Y(n) (WHERE
  4. 29 REM - M=MAXIMUM SIZE OF SAMPLE 1, N=MAXIMUM SIZE OF SAMPLE TWO
  5. 30 DIM X(25),Y(25)
  6. 40 DIM N(2)
  7. 49 REM - INPUT THE TWO SAMPELS
  8. 50 FOR I=1 TO 2
  9. 60 PRINT "SAMPLE";I;":"
  10. 70 PRINT " SIZE";
  11. 80 INPUT N(I)
  12. 90 FOR J=1 TO N(I)
  13. 100 PRINT " DATA";J;
  14. 110 INPUT Y(J)
  15. 120 NEXT J
  16. 129 REM - SORT EACH SAMPLE
  17. 130 FOR J=1 TO N(I)
  18. 140 FOR K=1 TO N(I)-J
  19. 150 C=Y(K)
  20. 160 D=Y(K+1)
  21. 170 IF Y(K)<Y(K+1) THEN 200
  22. 180 Y(K)=Y(K+1)
  23. 190 Y(K+1)=C
  24. 200 NEXT K
  25. 210 NEXT J
  26. 220 PRINT
  27. 229 REM - TRANSFER FIRST SAMPLE TO X-ARRAY
  28. 230 IF I=2 THEN 270
  29. 240 FOR J=1 TO N(1)
  30. 250 X(J)=Y(J)
  31. 260 NEXT J
  32. 270 NEXT I
  33. 279 REM - ADD UP RANKS
  34. 280 R=1
  35. 290 I=0
  36. 300 J=0
  37. 310 I=I+1
  38. 320 J=J+1
  39. 330 IF I>N(1) THEN 580
  40. 340 IF J>N(2) THEN 620
  41. 350 IF X(I)<Y(J) THEN 620
  42. 360 IF Y(J)<X(I) THEN 590
  43. 369 REM - LINES 370-570 HANDLE EQUAL SCORES FROM BOTH SAMPLES
  44. 370 K=2
  45. 380 M=I
  46. 390 L=J
  47. 400 R1=2*R+1
  48. 410 R=R+2
  49. 420 I=I+1
  50. 430 J=J+1
  51. 440 IF I>N(1) THEN 480
  52. 450 IF X(I)<>X(I-1) THEN 480
  53. 460 I=I+1
  54. 470 GOTO 510
  55. 480 IF J>N(2) THEN 550
  56. 490 IF Y(J)<>Y(J-1) THEN 550
  57. 500 J=J+1
  58. 510 R1=R1+R
  59. 520 R=R+1
  60. 530 K=K+1
  61. 540 GOTO 440
  62. 550 X=X+(I-M)*R1/K
  63. 560 Y=Y+(J-L)*R1/K
  64. 570 GOTO 330
  65. 580 IF J>N(2) THEN 660
  66. 590 Y=Y+R
  67. 600 J=J+1
  68. 610 GOTO 640
  69. 620 X=X+R
  70. 630 I=I+1
  71. 640 R=R+1
  72. 650 GOTO 330
  73. 659 REM - U1=NUMBER OF TIMES SAMPLE 1 SCORES PRECEED SAMPLE 2 SCORES
  74. 660 U1=N(1)*N(2)+N(1)*(N(1)+1)/2-X
  75. 669 REM - U1=NUMBER OF TIMES SAMPLE 2 SCORES PRECEED SAMPLE 1 SCORES
  76. 670 U2=N(1)*N(2)+N(2)*(N(2)+1)/2-Y
  77. 680 PRINT
  78. 690 PRINT "FIRST SAMPLE PRECEEDING, U =";U1
  79. 700 PRINT "SECOND SAMPLE PRECEEDING, U =";U2
  80. 710 END