---
title: statsmodels.linearRegression() function
description: statsmodels.linearRegression() performs a linear regression.
url: https://docs.influxdata.com/flux/v0/stdlib/contrib/anaisdg/statsmodels/linearregression/
estimated_tokens: 1333
product: Flux
version: v0
---

# statsmodels.linearRegression() function

-   Flux 0.90.0+
-   View InfluxDB support

`statsmodels.linearRegression()` is a user-contributed function maintained by the [package author](#package-author-and-maintainer).

`statsmodels.linearRegression()` performs a linear regression.

It calculates and returns [*ŷ*](https://en.wikipedia.org/wiki/Hat_operator#Estimated_value) (`y_hat`), and [residual sum of errors](https://en.wikipedia.org/wiki/Residual_sum_of_squares) (`rse`). Output data includes the following columns:

-   **N**: Number of points in the calculation.
-   **slope**: Slope of the calculated regression.
-   **sx**: Sum of x.
-   **sxx**: Sum of x squared.
-   **sxy**: Sum of x\*y.
-   **sy**: Sum of y.
-   **errors**: Residual sum of squares. Defined by `(r.y - r.y_hat) ^ 2` in this context
-   **x**: An index \[1,2,3,4…n\], with the assumption that the timestamps are regularly spaced.
-   **y**: Field value
-   **y\_hat**: Linear regression values

##### Function type signature

```js
(
    <-tables: stream[A],
) => stream[{
    B with
    y_hat: float,
    y: float,
    x: float,
    sy: H,
    sxy: G,
    sxx: F,
    sx: E,
    slope: D,
    errors: float,
    N: C,
}] where A: Record, D: Divisible + Subtractable
```

For more information, see [Function type signatures](/flux/v0/function-type-signatures/).

## Parameters

### tables

Input data. Default is piped-forward data (`<-`).

## Examples

### Perform a linear regression on a dataset

```js
import "contrib/anaisdg/statsmodels"
import "sampledata"

sampledata.float()
    |> statsmodels.linearRegression()
```
