Source code for regressioninc.base
"""
Base class for regression in C
The base class implements some basic functions and the abstract classes for
regressors.
"""
from pydantic import BaseModel
import numpy as np
[docs]def htranspose(arr: np.ndarray) -> np.ndarray:
"""
Hermitian transpose of an array (transpose and complex conjugation)
Parameters
----------
arr : np.ndarray
Input array
Returns
-------
np.ndarray
Hermitian transpose
"""
return np.conjugate(np.transpose(arr))
[docs]def sum_square_residuals(X: np.ndarray, y: np.ndarray, coef: np.ndarray) -> float:
"""
Calculate sum of square residuals
Parameters
----------
X : np.ndarray
The regressors
y : np.ndarray
The observations
coef : np.ndarray
The estimated coefficients
Returns
-------
float
The sum of square residuals
"""
residuals = y - np.matmul(X, coef)
residuals2 = residuals * htranspose(residuals)
return np.sum(residuals2.real)
[docs]class Regressor(BaseModel):
"""Base class for any regressor"""
class Config:
arbitrary_types_allowed: bool = True