Calculates the explained sum of squares \(\left( \mathrm{ESS} \right)\) using $$ \mathrm{ESS} = \sum_{i = 1}^{n} \left( \hat{Y}_{i} - \bar{Y} \right)^2 \\ = \sum_{i = 1}^{n} \left( \hat{\beta}_{1} + \hat{\beta}_{2} X_{2i} + \hat{\beta}_{3} X_{3i} + \dots + \hat{\beta}_{k} X_{ki} - \bar{Y} \right)^2 $$ In matrix form $$ \mathrm{ESS} = \sum_{i = 1}^{n} \left( \mathbf{\hat{y}} - \mathbf{\bar{Y}} \right)^2 \\ = \sum_{i = 1}^{n} \left( \mathbf{X} \boldsymbol{\hat{\beta}} - \mathbf{\bar{Y}} \right)^2 $$ where \(\mathbf{\hat{y}}\) \(\left( \mathbf{X} \boldsymbol{\hat{\beta}} \right)\) is an \(n \times 1\) matrix of predicted values of \(\mathbf{y}\), and \(\mathbf{\bar{Y}}\) is the mean of \(\mathbf{y}\). Equivalent computational matrix formula $$ \mathrm{ESS} = \boldsymbol{\hat{\beta}}^{\prime} \mathbf{X}^{\prime} \mathbf{X} \boldsymbol{\hat{\beta}} - n \mathbf{\bar{Y}}^{2}. $$ Note that $$ \mathrm{TSS} = \mathrm{ESS} + \mathrm{RSS} . $$

ESS(X, y)

Arguments

X

n by k numeric matrix. The data matrix \(\mathbf{X}\) (also known as design matrix, model matrix or regressor matrix) is an \(n \times k\) matrix of \(n\) observations of \(k\) regressors, which includes a regressor whose value is 1 for each observation on the first column.

y

Numeric vector of length n or n by 1 matrix. The vector \(\mathbf{y}\) is an \(n \times 1\) vector of observations on the regressand variable.

Value

Returns the explained sum of squares \(\left( \mathrm{ESS} \right)\).

References

Wikipedia: Residual Sum of Squares

Wikipedia: Explained Sum of Squares

Wikipedia: Total Sum of Squares

Wikipedia: Coefficient of Determination

See also

Other sum of squares functions: .ESS(), .RSS(), RSS(), TSS()

Author

Ivan Jacob Agaloos Pesigan

Examples

# Simple regression------------------------------------------------ X <- jeksterslabRdatarepo::wages.matrix[["X"]] X <- X[, c(1, ncol(X))] y <- jeksterslabRdatarepo::wages.matrix[["y"]] ESS(X = X, y = y)
#> [1] 6636.695
# Multiple regression---------------------------------------------- X <- jeksterslabRdatarepo::wages.matrix[["X"]] # age is removed X <- X[, -ncol(X)] ESS(X = X, y = y)
#> [1] 25967.28