Cumulative standard deviation: Difference between revisions

Content added Content deleted
Line 1,907: Line 1,907:


<lang Haskell>import Data.List (mapAccumL)
<lang Haskell>import Data.List (mapAccumL)


-------------- CUMULATIVE STANDARD DEVIATION -------------
-------------- CUMULATIVE STANDARD DEVIATION -------------

cumulativeStdDevns :: [Float] -> [Float]
cumulativeStdDevns :: [Float] -> [Float]
cumulativeStdDevns xs = snd $ mapAccumL go (0, 0) $ zip [1.0 ..] xs
cumulativeStdDevns = snd . mapAccumL go (0, 0) . zip [1.0..]
where
where
go (s, q) (i, x) =
go (s, q) (i, x) =
Line 1,917: Line 1,918:
_q = q + (x ^ 2)
_q = q + (x ^ 2)
in ((_s, _q), sqrt ((_q / i) - ((_s / i) ^ 2)))
in ((_s, _q), sqrt ((_q / i) - ((_s / i) ^ 2)))



--------------------------- TEST -------------------------
--------------------------- TEST -------------------------
main :: IO ()
main :: IO ()