Dew Stats Master .NET
MovingAverage Routine
Summary
Single moving average.

Unit
StatTimeSerAnalysis

Declaration
Function MovingAverage(Y: TVec; const N: Integer; M: TVec; out Index: Integer; Centered: boolean = true): TSample;
 Parameter  Description 
Sample data. 
Number of elements in period. 
Smoothed data. 
Index Index of first value in smoothed data. 
Centered If true, a centered moving average is perfomed. 
Result
MSE.
Description
Performs single moving average smoothing on data Y. General equation for moving average smoothing is:

where N indicates number of points in period and X.Length data sample size. When using single moving average smoothing, bear in mind that when used as forecasts for the next period, single moving average is not able to cope with a significant trend.

Categories
Time series analysis routines

Example 1

Load sample time series, perform centered moving average smoothing with period 12 (yearly average) and finally plot the results using TChart.
Uses MtxExpr, StatTimeSerAnalysis, Series, TeEngine; procedure Example(Series1,Series2: TLineSeries); var ts,Mv: Vector; FirstIndex: Integer; begin ts.LoadFromFile('testdata.vec'); DrawValues(ts,Series1); // draw original time series MovingAverage(ts,12,Mv,FirstIndex,True); DrawValues(Mv,Series2,FirstIndex); // draw MA over original time series end;
#include "MtxVecCpp.h" #include "Math387.hpp" #include "StatTimeSerAnalysis.hpp" void __fastcall Example(TLineSeries* Series1, TLineSeries* Series2); { Vector ts,Mv; int FirstIndex; ts->LoadFromFile("testdata.vec"); DrawValues(ts,Series1,0.0,1.0); // draw original time series MovingAverage(ts,12,Mv,FirstIndex,true); DrawValues(Mv,Series2,FirstIndex,1.0); // draw MA over original time series }
using Dew.Math; using Dew.Stats; using Dew.Stats.Units; using Steema.TeeChart; namespace Dew.Examples { private void Example(Styles.Line line1, Styles.Line line2) { Vector ts = new Vector(0); Vector Mv = new Vector(0); int FirstIndex; ts.LoadFromFile("testdata.vec"); MtxVecTee.DrawValues(ts,line1,0.0,1.0); // draw original time series StatTimeSerAnalysis.MovingAverage(ts,12,Mv,out FirstIndex,true); MtxVecTee.DrawValues(Mv,line2,FirstIndex,1.0); // draw MA over original time series } }

Copyright 2008 Dew Research
http://www.dewresearch.com