[CalendarServer-changes] [6164] CalendarServer/trunk/contrib/performance/stats.py

source_changes at macosforge.org source_changes at macosforge.org
Fri Aug 20 14:17:19 PDT 2010


Revision: 6164
          http://trac.macosforge.org/projects/calendarserver/changeset/6164
Author:   exarkun at twistedmatrix.com
Date:     2010-08-20 14:17:19 -0700 (Fri, 20 Aug 2010)
Log Message:
-----------
report the median absolute deviation as well

Modified Paths:
--------------
    CalendarServer/trunk/contrib/performance/stats.py

Modified: CalendarServer/trunk/contrib/performance/stats.py
===================================================================
--- CalendarServer/trunk/contrib/performance/stats.py	2010-08-20 21:05:16 UTC (rev 6163)
+++ CalendarServer/trunk/contrib/performance/stats.py	2010-08-20 21:17:19 UTC (rev 6164)
@@ -12,12 +12,25 @@
     return sorted(samples)[len(samples) / 2]
 
 
+def residuals(samples, from_):
+    return [from_ - s for s in samples]
+
+
 def stddev(samples):
     m = mean(samples)
-    variance = sum([(datum - m) ** 2 for datum in samples]) / len(samples)
+    variance = sum([datum ** 2 for datum in residuals(samples, m)]) / len(samples)
     return variance ** 0.5
 
 
+def mad(samples):
+    """
+    Return the median absolute deviation of the given data set.
+    """
+    med = median(samples)
+    res = map(abs, residuals(samples, med))
+    return median(res)
+
+
 class _Statistic(object):
     commands = ['summarize']
 
@@ -29,6 +42,7 @@
         print self.name, 'mean', mean(data)
         print self.name, 'median', median(data)
         print self.name, 'stddev', stddev(data)
+        print self.name, 'median absolute deviation', mad(data)
         print self.name, 'sum', sum(data)
 
 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20100820/c36dbfb3/attachment.html>


More information about the calendarserver-changes mailing list