class RidgeRegression extends Predictor with Error
The RidgeRegression
class supports multiple linear regression. In this
case, 'x' is multi-dimensional [x_1, ... x_k]. Both the input matrix 'x' and
the response vector 'y' are centered (zero mean). Fit the parameter vector
'b' in the regression equation
y = b dot x + e = b_1 * x_1 + ... b_k * x_k + e
where 'e' represents the residuals (the part not explained by the model). Use Least-Squares (minimizing the residuals) to fit the parameter vector
b = x_pinv * y [ alternative: b = solve (y) ]
where 'x_pinv' is the pseudo-inverse. Three techniques are provided:
'QR' // QR Factorization: slower, more stable (default) 'Cholesky' // Cholesky Factorization: faster, less stable (reasonable choice) 'Inverse' // Inverse/Gaussian Elimination, classical textbook technique (outdated)
- See also
statweb.stanford.edu/~tibs/ElemStatLearn/
- Alphabetic
- By Inheritance
- RidgeRegression
- Error
- Predictor
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Instance Constructors
-
new
RidgeRegression(x: MatrixD, y: VectorD, lambda: Double = 0.1, technique: RegTechnique = Inverse)
- x
the centered input/design m-by-n matrix NOT augmented with a first column of ones
- y
the centered response vector
- lambda
the shrinkage parameter (0 => OLS) in the penalty term 'lambda * b dot b'
- technique
the technique used to solve for b in x.t*x*b = x.t*y
Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
val
b: VectoD
Coefficient/parameter vector [b_0, b_1, ...
Coefficient/parameter vector [b_0, b_1, ... b_k]
- Attributes
- protected
- Definition Classes
- Predictor
-
def
backElim(): (Int, VectoD, VectorD)
Perform backward elimination to remove the least predictive variable from the model, returning the variable to eliminate, the new parameter vector, the new quality of fit.
-
def
clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
def
coefficient: VectoD
Return the vector of coefficient/parameter values.
Return the vector of coefficient/parameter values.
- Definition Classes
- Predictor
-
val
e: VectoD
Residual/error vector [e_0, e_1, ...
Residual/error vector [e_0, e_1, ... e_m-1]
- Attributes
- protected
- Definition Classes
- Predictor
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
def
fit: VectorD
Return the quality of the fit including 'rSquared'.
Return the quality of the fit including 'rSquared'.
- Definition Classes
- RidgeRegression → Predictor
-
def
fitLabels: Array[String]
Return the labels for the fit.
Return the labels for the fit. Override when necessary.
- Definition Classes
- Predictor
-
final
def
flaw(method: String, message: String): Unit
Show the flaw by printing the error message.
Show the flaw by printing the error message.
- method
the method where the error occurred
- message
the error message
- Definition Classes
- Error
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
-
def
predict(z: VectoD): Double
Predict the value of y = f(z) by evaluating the formula below.
Predict the value of y = f(z) by evaluating the formula below.
- z
the new vector to predict
- Definition Classes
- RidgeRegression → Predictor
-
def
predict(z: VectorI): Double
Given a new discrete data vector z, predict the y-value of f(z).
Given a new discrete data vector z, predict the y-value of f(z).
- z
the vector to use for prediction
- Definition Classes
- Predictor
-
def
residual: VectoD
Return the vector of residuals/errors.
Return the vector of residuals/errors.
- Definition Classes
- Predictor
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
def
train(yy: VectorD): Unit
Retrain the predictor by fitting the parameter vector (b-vector) in the multiple regression equation yy = b dot x + e = [b_1, ...
Retrain the predictor by fitting the parameter vector (b-vector) in the multiple regression equation yy = b dot x + e = [b_1, ... b_k] dot [x_1, ... x_k] + e using the least squares method.
- yy
the new response vector
-
def
train(): Unit
Train the predictor by fitting the parameter vector (b-vector) in the multiple regression equation y = b dot x + e = [b_1, ...
Train the predictor by fitting the parameter vector (b-vector) in the multiple regression equation y = b dot x + e = [b_1, ... b_k] dot [x_1, ... x_k] + e using the least squares method.
- Definition Classes
- RidgeRegression → Predictor
-
def
vif: VectorD
Compute the Variance Inflation Factor 'VIF' for each variable to test for multi-collinearity by regressing 'xj' against the rest of the variables.
Compute the Variance Inflation Factor 'VIF' for each variable to test for multi-collinearity by regressing 'xj' against the rest of the variables. A VIF over 10 indicates that over 90% of the variance of 'xj' can be predicted from the other variables, so 'xj' is a candidate for removal from the model.
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
def
xtx: MatrixD
Compute x.t * x and add lambda to the diagonal