Newer
Older
class metrics:
def __init__(self, meas, pred):
if isinstance(meas, pd.DataFrame):
self.meas = meas.to_numpy()
else :
self.meas = meas.ravel()
if isinstance(pred, pd.DataFrame):
self.pred = pred.to_numpy().ravel()
else :
self.pred = pred.ravel()
@property
def evaluate_(self):
xbar = np.mean(self.meas) # the average of measured values
e2 = (self.meas - self.pred)**2 # the squared error
# Sum of squared:
# TOTAL
sst = np.sum((self.meas-xbar)**2)
# RESIDUAL
ssr = np.sum(e2)
# REGRESSION OR MODEL
ssm = np.sum(self.pred - xbar)
# Compute statistical metrics
metr = pd.DataFrame()
metr['r'] = [np.corrcoef(self.meas.ravel(), self.pred)[0,1]]