glucopy.metrics.mard#

glucopy.metrics.mard(cgm_df: DataFrame, smbg_df: DataFrame, slack: int = 0, interpolate: bool = True)[source]#

Calculates the Mean Absolute Relative Difference (MARD).

\[MARD = \frac{1}{N} \sum_{i=1}^N \frac{|CGM_i - SMBG_i|}{SMBG_i} * 100\]
  • \(N\) is the number of SMBG readings.

  • \(CGM_i\) is the Continuous Glucose Monitoring (CGM) value at time i.

  • \(SMBG_i\) is the Self-Monitoring of Blood Glucose (SMBG) value at time i.

Parameters:
  • cgm_df (pandas.DataFrame) – DataFrame containing the CGM values. The dataframe must contain ‘CGM’ and ‘Timestamp’ columns present in glucopy.Gframe.data.

  • smbg_df (pandas.DataFrame) – DataFrame containing the SMBG values. The dataframe must contain ‘SMBG’ and ‘Timestamp’ columns present in glucopy.Gframe.data.

  • slack (int, default 0) – Maximum number of minutes that a given CGM value can be from an SMBG value and still be considered a match.

  • interpolate (bool, default True) – If True, the SMBG values will be interpolated to the CGM timestamps. If False, Only CGM values that have corresponding SMBG values will be used.

Returns:

mard – Mean Absolute Relative Difference (MARD).

Return type:

float

Notes

This function is meant to be used by glucopy.Gframe.mard()