HP 71B: Population Deviation Derivation and Program
Derivation
The standard formula for the population deviation for a set of statistical data is given by:
σx = √( Σ(x - μ)^2 / n)
where μ is the mean, where μ = Σx / n
Σx = the sum of all the data points
n = the number of data points
If this function needs to be programmed, using the definition as will probably require the use of two FOR structures: one for the mean, and one for the deviation. Is there a way to use a formula where a FOR structure can be saved?
Turns out, the answer is yes.
σx = √( Σ(x - μ)^2 / n)
= √( Σ(x^2 - 2*x*μ + μ^2) / n)
Note that:
Σ( f(x) + g(x) ) = Σ f(x) + Σ g(x)
For a constant, a: Σ( a * f(x) ) = a * Σ f(x)
And: Σ a = a * n (sum from 1 to n)
Then:
σx = √( Σ(x - μ)^2 / n)
= √( Σ(x^2 - 2*x*μ + μ^2) / n)
= √( (Σ(x^2) - 2*μ*Σx + Σ( μ^2 )) / n)
= √( (Σ(x^2) - 2*μ*Σx + n*μ^2) / n)
= √( (Σ(x^2) - 2*Σx*Σx/n + n*(Σx)^2/n^2 ) / n)
= √( (Σ(x^2) - 2*(Σx)^2/n + (Σx)^2/n) / n)
= √( (Σ(x^2) - (Σx)^2/n ) / n)
The above formula allows to use a sum and sum of square of data points in calculating population deviation, eliminating the need for an additional FOR structure.
Standard deviation follows a similar formula:
sx = √( (Σ(x^2) - (Σx)^2/n ) / (n - 1))
HP 71B Program: Population Deviation
File: PDEV
20 N=0
22 A=0
24 B=0
30 INPUT "X? ";X
40 N=N+1
50 A=A+X
60 B=B+X^2
70 INPUT "DONE? NO=0"; C
80 IF C=0 THEN 30
90 M=A/N
95 S=SQR((B-A^2/N)/N)
100 DISP "MEAN= ";M
105 PAUSE
110 DISP "PDEV= ";S
120 END
Example
Data Set: 150, 178, 293, 426, 508, 793, 1024
MEAN = 481.7142857
PDEV = 300.6320553
Eddie
All original content copyright, © 2011-2019. 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.
Derivation
The standard formula for the population deviation for a set of statistical data is given by:
σx = √( Σ(x - μ)^2 / n)
where μ is the mean, where μ = Σx / n
Σx = the sum of all the data points
n = the number of data points
If this function needs to be programmed, using the definition as will probably require the use of two FOR structures: one for the mean, and one for the deviation. Is there a way to use a formula where a FOR structure can be saved?
Turns out, the answer is yes.
σx = √( Σ(x - μ)^2 / n)
= √( Σ(x^2 - 2*x*μ + μ^2) / n)
Note that:
Σ( f(x) + g(x) ) = Σ f(x) + Σ g(x)
For a constant, a: Σ( a * f(x) ) = a * Σ f(x)
And: Σ a = a * n (sum from 1 to n)
Then:
σx = √( Σ(x - μ)^2 / n)
= √( Σ(x^2 - 2*x*μ + μ^2) / n)
= √( (Σ(x^2) - 2*μ*Σx + Σ( μ^2 )) / n)
= √( (Σ(x^2) - 2*μ*Σx + n*μ^2) / n)
= √( (Σ(x^2) - 2*Σx*Σx/n + n*(Σx)^2/n^2 ) / n)
= √( (Σ(x^2) - 2*(Σx)^2/n + (Σx)^2/n) / n)
= √( (Σ(x^2) - (Σx)^2/n ) / n)
The above formula allows to use a sum and sum of square of data points in calculating population deviation, eliminating the need for an additional FOR structure.
Standard deviation follows a similar formula:
sx = √( (Σ(x^2) - (Σx)^2/n ) / (n - 1))
HP 71B Program: Population Deviation
File: PDEV
20 N=0
22 A=0
24 B=0
30 INPUT "X? ";X
40 N=N+1
50 A=A+X
60 B=B+X^2
70 INPUT "DONE? NO=0"; C
80 IF C=0 THEN 30
90 M=A/N
95 S=SQR((B-A^2/N)/N)
100 DISP "MEAN= ";M
105 PAUSE
110 DISP "PDEV= ";S
120 END
Example
Data Set: 150, 178, 293, 426, 508, 793, 1024
MEAN = 481.7142857
PDEV = 300.6320553
Eddie
All original content copyright, © 2011-2019. 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.