Quantiles

# Quantiles for the HP-41

Overview

-This program calculates the median, quartiles, or any other quantile,  by linear interpolation.
-The data are supposed to be grouped like this:

 xi frequencies [ x1 ;  x2 [ n1 [ x2 ;  x3 [ n2 .......... ....... [ xp; xp+1] np

Program Listing

Data Registers:         •  R00:  p                     ( All these registers are to be initialized before executing "QTLE" )

•  R01:   x1       •  R02:   x2  ..........   • Rpp:   xp  •  Rpp+1:    xp+1
•  Rpp+2:   n1    • Rpp+3:   n2  ........  •  R2p+2:    np
Flags:  /
Subroutines:  /

 01  LBL "QTLE" 02  STO M 03  RCL 00       04  ENTER^ 05  ST+ X 06  1 07  + 08  0 09  LBL 00 10  RCL IND Y  11  + 12  DSE Y 13  DSE Z 14  GTO 00 15  RCL M 16  * 17  0 18  LBL 01 19  ISG Z 20  CL X 21  RCL IND Z  22  + 23  X L 27  / 28  X<>Y 29  RCL 00 30  - 31  ENTER^ 32  DSE X 33  X<> Z 34  RCL IND Y  35  RCL IND T 36  - 37  * 38  RCL IND Y  39  + 40  0 41  X<> M       42  SIGN 43  X<>Y 44  END

( 71 bytes / SIZE 2p+2 )

 STACK INPUTS OUTPUTS Y / 1 X r  ( 0 < r < 1 ) quantile L / r

Example:

-Find the median Me , the first and last quartile Q1 and Q3 , the first decile d1  and the third centile c3  of the following data:

 x n [ 10 ; 12 [ 1 [ 12 ; 15 [ 3 [ 15 ; 20 [ 7 [ 20 ; 24 [ 4 [ 24 ; 30 [ 2

-There are 5 classes:       5     STO 00
-Then, we store             10 ; 12 ; 15 ; 20 ; 24 ; 30 ; 1 ; 3 ; 7 ; 4 ; 2        into registers R01 thru R11 respectively and

.5     XEQ "QTLE"   yields     Q2 = 18.2143 = Me
.25        R/S             yields      Q1 = 15.1786
.75        R/S             yields      Q3 = 21.75
.1          R/S             yields       d1 = 12.7
.03        R/S             yields       c3 = 11.02