# Data Smoothing#

Function

Description

`movingave()`

Computes moving average of a series.

`movingaveExpWgt()`

Computes exponentially weighted moving average of a series.

`movingaveWgt()`

Computes weighted moving average of a series

`loessmt()`

Computes coefficients of locally weighted regression.

`curve()`

Computes a one-dimensional smoothing curve.

`spline()`

Computes a two-dimensional interpolatory spline.

## Finding moving averages#

Three procedures are available for computing moving averages.

### Example: Smoothing a random walk series#

```// Load data
fname = getGAUSSHome("examples/tbill_3mo.xlsx");
y = loadd(fname, "date(\$obs_date, '%m/%d/%Y %T.%L') + tbill_3m");

// Find 3 month moving average
twentyMA = movingave(y[., "tbill_3m"], 3);

// Find 3 month exponenetial moving average
twentyExpWgtMA = movingaveExpwgt(y[., "tbill_3m"], 3, 0.8);
```

## Locally weighted linear regression smoothing#

The `loessmt()` procedure smooths data using locally weighted linear regression. Because it relies on linear regression, the function requires both a dependent variable to be smoothed and a matrix of independent variables to be used in the weighted regression.

### Example: Lowess smoother#

```// Load dataset
fname = getGAUSSHome("examples/lowess1.dta");
data = loadd(fname, "h1 + depth");

// Define independent variable
depvar = data[., "h1"];

// Defined dependent variable
indvars = data[., "depth"];

{ yhat, ys, xs } = loessmt(depvar, indvars);
```