TI-30Xa Algorithms: Linear Regression
Welcome to the March 2024 installment of TI-30Xa Algorithms.
Linear Regression with a TI-30Xa?
Today’s task is to fit bi-variate data to the line:
y = m * x + b
with the TI-30Xa. What? This calculator does not have a linear regression mode. Yes, with it is possible. We are going to use the technique shown in by the TI-36 Solar Guidebook from 1985 (see Source below). The TI-36 Solar was part of Texas Instruments’ line in the late 1980s and the early 1990s.
You can read my review on the TI-36 Solar from September 26, 2020 here:
https://edspi31415.blogspot.com/2020/09/retro-review-ti-36-solar.html
Where the TI-36 Solar only had one memory register, the TI-30Xa has three memory registers, and they are going to come in handy here.
Procedure
Caution: Be sure the calculator is on the entire time. Turning off the calculator will clear out statistics mode.
1. Enter the y data. Store the mean (y-bar) into memory register 2. Store the population deviation (σy) into memory register 3.
Keystrokes:
Mean of y-data: [ 2nd ] [ x^2 ] {x-bar} [ STO ] [ 2 ]
Population of y-data: [ 2nd ] [ ÷ ] { σxn } [ STO ] [ 3 ]
2. Clear the stat registers and enter the x data. As we are entering the x data, use memory register 1 to calculate Σxy.
Keystrokes:
Clear Stat Registers: [ 2nd ] [ 7 ] {CSR}
1st Point:
x1 [ × ] y1 [ = ] [ STO ] [ 1 ]
x1 [ Σ+ ]
Every point there after:
x_i [ × ] y_i [ = ] [ 2nd ] [ RCL ] {SUM} [ 1 ]
x_i [ Σ+ ]
3. Calculate the slope, and replace Σxy with the slope.
m = ( y-bar * Σx – Σxy) / ( x-bar * Σx - Σx^2)
Keystrokes:
[ ( ] [ RCL ] [ 2 ] [ × ] [ 2nd ] [ ( ] [ - ] [ RCL ] [ 1 ] [ ) ]
[ ÷ ] [ ( ] [ 2nd ] [ x^2 ] [ × ] [ 2nd ] [ ( ] [ - ] [ 2nd ] [ ) ] [ = ] [ STO ] [ 1 ]
4. Calculate the y-intercept, replace y-bar with the y-intercept.
b = -m * x-bar + y-bar
Keystrokes:
[ RCL ] [ 1 ] [ +/- ] [ × ] [ 2nd ] [ x^2 ] [ + ] [ RCL ] [ 2 ] [ = ] [ STO ] [ 2 ]
5. Calculate the correlation. If the correlation is close to -1 or +1, the linear fit will be excellent.
r = m * σx / σy
Keystrokes:
[ RCL ] [ 1 ] [ × ] [ 2nd ] [ ÷ ] [ ÷ ] [ RCL ] [ 3 ] [ = ]
6. Use slope (m) and intercept (b) to predict x and y values:
y’ = m * x0 + b
Keystrokes: [ RCL ] [ 1 ] [ × ] x0 [ + ] [ RCL ] [ 2 ] [ = ]
x’ = (y0 – b) / m
Keystrokes: [ ( ] y0 [ - ] [ RCL ] [ 2 ] [ ) ] [ ÷ ] [ RCL ] [ 1 ] [ = ]
Key Map
[ RCL ] [ 1 ]: first Σxy, then m
[ RCL ] [ 2 ]: first y-bar, then b
[ RCL ] [ 3 ]: σy
[ 2nd ] [ x^2 ]: x-bar
[ 2nd ] [ ÷ ]: σxn
Example
Fit a line to the data:
X |
Y |
12 |
100 |
13 |
98.7 |
14 |
97.1 |
16 |
94.9 |
18 |
92.6 |
20 |
90 |
1. Enter the y data. Store the mean (y-bar) into memory register 2. Store the population deviation (σy) into memory register 3.
100 [ Σ+ ]
98.7 [ Σ+ ]
97.1 [ Σ+ ]
94.9 [ Σ+ ]
92.6 [ Σ+ ]
90 [ Σ+ ] (display n = 6)
Mean of y-data: [ 2nd ] [ x^2 ] [ STO ] [ 2 ] (y-bar = 95.55)
Population of y-data: [ 2nd ] [ ÷ ] [ STO ] [ 3 ] (σy = 3.465424457)
2. Clear the stat registers and enter the x data. As we are entering the x data, use memory register 1 to calculate Σxy.
Keystrokes:
Clear Stat Registers: [ 2nd ] [ 7 ] {CSR}
12 [ × ] 100 [ = ] [ STO ] [ 1 ]
12 [ Σ+ ]
13 [ × ] 98.7 [ = ] [ 2nd ] [ RCL ] [ 1 ] (SUM 1)
13 [ Σ+ ]
14 [ × ] 97.1 [ = ] [ 2nd ] [ RCL ] [ 1 ] (SUM 1)
14 [ Σ+ ]
16 [ × ] 94.9 [ = ] [ 2nd ] [ RCL ] [ 1 ] (SUM 1)
16 [ Σ+ ]
18 [ × ] 92.6 [ = ] [ 2nd ] [ RCL ] [ 1 ] (SUM 1)
18 [ Σ+ ]
20 [ × ] 90 [ = ] [ 2nd ] [ RCL ] [ 1 ] (SUM 1)
20 [ Σ+ ]
RCL 1: Σxy = 8827.7
[ 2nd ] [ x^2 ]: x-bar = 15.5
3. Calculate the slope, and replace Σxy with the slope.
[ ( ] [ RCL ] [ 2 ] [ × ] [ 2nd ] [ ( ] [ - ] [ RCL ] [ 1 ] [ ) ]
[ ÷ ] [ ( ] [ 2nd ] [ x^2 ] [ × ] [ 2nd ] [ ( ] [ - ] [ 2nd ] [ ) ] [ = ] [ STO ] [ 1 ]
Slope: m = -1.230526316
4. Calculate the y-intercept, replace y-bar with the y-intercept.
[ RCL ] [ 1 ] [ +/- ] [ × ] [ 2nd ] [ x^2 ] [ + ] [ RCL ] [ 2 ] [ = ] [ STO ] [ 2 ]
Intercept: b = 114.6231579
5. Calculate the correlation.
[ RCL ] [ 1 ] [ × ] [ 2nd ] [ ÷ ] [ ÷ ] [ RCL ] [ 3 ] [ = ]
Correlation: r = -0.999092386
The line is:
y = -1.230526316 * x + 114.6231579
6. Predict values.
If x = 15, predict the y value (y’):
[ RCL ] [ 1 ] [ × ] x0 [ + ] [ RCL ] [ 2 ] [ = ]
y’ = 96.16526316
If y = 95, predict the x value (x’):
[ ( ] y0 [ - ] [ RCL ] [ 2 ] [ ) ] [ ÷ ] [ RCL ] [ 1 ] [ = ]
x’ = 15.94696322
Source
Alley, Chris M., Brenda M. Cornitius, et al. TI-36 Solar Guidebook Texas Instruments Incorporated. Dallas, TX. 1985, 1986, 1987. pp. 4.6 – 4.13
Eddie
All original content copyright, © 2011-2024. Edward Shore. Unauthorized use and/or unauthorized distribution for commercial purposes without express and written permission from the author is strictly prohibited. This blog entry may be distributed for noncommercial purposes, provided that full credit is given to the author.