Skip to content

Commit 1a877ac

Browse files
committed
verify/categorical: enable bootstrap CI calc for MatthewsCC
1 parent a371155 commit 1a877ac

File tree

1 file changed

+18
-3
lines changed

1 file changed

+18
-3
lines changed

verify/categorical.py

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -302,7 +302,7 @@ def majorityClassFraction(self):
302302
self.attrs['MajorityClassFraction'] = dum.PC()
303303
return self.attrs['MajorityClassFraction']
304304

305-
def MatthewsCC(self):
305+
def MatthewsCC(self, ci=None):
306306
"""Matthews Correlation Coefficient
307307
308308
Examples
@@ -323,6 +323,11 @@ def MatthewsCC(self):
323323
else:
324324
denom = np.sqrt(np.float64(sum_ac*sum_ab*sum_cd*sum_bd))
325325
self.attrs['MatthewsCC'] = numer/denom
326+
if ci is not None and ci == 'bootstrap':
327+
self.attrs['MatthewsCCCI95'] = \
328+
self._bootstrapCI(func='MatthewsCC')
329+
return (self.attrs['MatthewsCC'],
330+
self.attrs['MatthewsCCCI95'])
326331
return self.attrs['MatthewsCC']
327332

328333
def summary(self, verbose=False, ci=None):
@@ -348,7 +353,7 @@ def summary(self, verbose=False, ci=None):
348353
dum = self.peirce(ci=ci)
349354
dum = self.bias(ci=ci)
350355
dum = self.majorityClassFraction()
351-
dum = self.MatthewsCC()
356+
dum = self.MatthewsCC(ci=ci)
352357
dum = self.oddsRatio()
353358
dum = self.yuleQ()
354359
a, b, c, d = self._abcd()
@@ -394,7 +399,17 @@ def summary(self, verbose=False, ci=None):
394399
print("\nClassification Quality Metrics")
395400
print("==============================")
396401
for key in qual:
397-
print("{0}: {1:0.4f}".format(key, self.attrs[key]))
402+
if key+'CI95' in self.attrs:
403+
if self.attrs[key+'CI95'].shape:
404+
print("{0}: {1:0.4f} [{2:0.4f}, {3:0.4f}]".format(key, \
405+
self.attrs[key], \
406+
self.attrs[key+'CI95'][0], \
407+
self.attrs[key+'CI95'][1]))
408+
else:
409+
print("{0}: {1:0.4f} +/- {2:0.4f}".format(key, \
410+
self.attrs[key], self.attrs[key+'CI95']))
411+
else:
412+
print("{0}: {1:0.4f}".format(key, self.attrs[key]))
398413

399414
def _bootstrapCI(self, interval=0.95, nsamp=2000, func=None, seed=1406):
400415
""" bootstrap confidence interval

0 commit comments

Comments
 (0)