LINEST
Applies to: Calculated column Calculated table Measure Visual calculation
Uses the Least Squares method to calculate a straight line that best fits the given data, then returns a table describing the line. The equation for the line is of the form: y = Slope1*x1 + Slope2*x2 + ... + Intercept.
Syntax
LINEST ( <columnY>, <columnX>[, …][, <const>] )
Parameters
Term | Definition |
---|---|
columnY | The column of known y-values. Must have scalar type. |
columnX | The columns of known x-values. Must have scalar type. At least one must be provided. |
const | (Optional) A constant TRUE/FALSE value specifying whether to force the constant Intercept to equal 0. If TRUE or omitted, the Intercept value is calculated normally; If FALSE, the Intercept value is set to zero. |
Return value
A single-row table describing the line, plus additional statistics. These are the available columns:
- Slope1, Slope2, ..., SlopeN: the coefficients corresponding to each x-value;
- Intercept: intercept value;
- StandardErrorSlope1, StandardErrorSlope2, ..., StandardErrorSlopeN: the standard error values for the coefficients Slope1, Slope2, ..., SlopeN;
- StandardErrorIntercept: the standard error value for the constant Intercept;
- CoefficientOfDetermination: the coefficient of determination (r²). Compares estimated and actual y-values, and ranges in value from 0 to 1: the higher the value, the higher the correlation in the sample;
- StandardError: the standard error for the y estimate;
- FStatistic: the F statistic, or the F-observed value. Use the F statistic to determine whether the observed relationship between the dependent and independent variables occurs by chance;
- DegreesOfFreedom: the degrees of freedom. Use this value to help you find F-critical values in a statistical table, and determine a confidence level for the model;
- RegressionSumOfSquares: the regression sum of squares;
- ResidualSumOfSquares: the residual sum of squares.
Remarks
<columnY> and the <columnX>’s must all belong to the same table.
Example 1
The following DAX query:
EVALUATE LINEST(
'FactInternetSales'[SalesAmount],
'FactInternetSales'[TotalProductCost]
)
Returns a single-row table with ten columns:
Slope1 | Intercept | StandardErrorSlope1 | StandardErrorIntercept | CoefficientOfDetermination |
---|---|---|---|---|
1.67703250456677 | 6.34550460373026 | 0.000448675725548806 | 0.279131821917317 | 0.995695557281456 |
StandardError | FStatistic | DegreesOfFreedom | RegressionSumOfSquares | ResidualSumOfSquares |
---|---|---|---|---|
60.9171030357485 | 13970688.6139993 | 60396 | 51843736761.658 | 224123120.339218 |
- Slope1 and Intercept: the coefficients of the calculated linear model;
- StandardErrorSlope1 and StandardErrorIntercept: the standard error values for the coefficients above;
- CoefficientOfDetermination, StandardError, FStatistic, DegreesOfFreedom, RegressionSumOfSquares and ResidualSumOfSquares: regression statistics about the model.
For a given internet sale, this model predicts the sale amount by the following formula:
SalesAmount = Slope1 * TotalProductCost + Intercept
Example 2
The following DAX query:
EVALUATE LINEST(
'DimCustomer'[TotalSalesAmount],
'DimCustomer'[YearlyIncome],
'DimCustomer'[TotalChildren],
'DimCustomer'[BirthDate]
)
Returns a single-row table with fourteen columns:
- Slope1
- Slope2
- Slope3
- Intercept
- StandardErrorSlope1
- StandardErrorSlope2
- StandardErrorSlope3
- StandardErrorIntercept
- CoefficientOfDetermination
- StandardError
- FStatistic
- DegreesOfFreedom
- RegressionSumOfSquares
- ResidualSumOfSquares
For a given customer, this model predicts total sales by the following formula (the birth date is automatically converted to a number):
TotalSalesAmount = Slope1 * YearlyIncome + Slope2 * TotalChildren + Slope3 * BirthDate + Intercept