Ubuntu PPAのSDAPSパッケージでレポートの標準偏差がおかしくなる問題への対応

背景

UbuntuではSDAPSを使うためのパッケージを作者が提供しています。
残念ながら、2017年末にみつかったレポートでの標準偏差が異常値となるバグの問題があり、レポートの標準偏差が明かにおかしくなります。

解決策

上記リンクの最後に作者のパッチが添付されています。手で修正したdiffは以下のようになりました。

.../sdaps/calculate.py
--- /usr/lib/python2.7/dist-packages/sdaps/calculate.py.20180320        2017-07-17 06:16:41.000000000 +0900
+++ /usr/lib/python2.7/dist-packages/sdaps/calculate.py 2018-03-20 22:56:20.107821458 +0900
@@ -183,14 +183,15 @@

             if self.range_count > 0:
                 for key in self.range_values:
-                    self.standard_deviation += self.range_values[key] * pow(key - self.mean, 2)
                     self.mean += key * self.range_values[key]
+                self.mean = self.mean / float(self.range_count)

-                    # Also devide by count
-                    self.range_values[key] = self.range_values[key] / float(self.count)
-
+                for key in self.range_values:
+                    self.standard_deviation += self.range_values[key] * pow(key - self.mean, 2)
                 self.standard_deviation = math.sqrt(self.standard_deviation / float(self.range_count))
-                self.mean = self.mean / float(self.range_count)
+
+                for key in self.range_values:
+                    self.range_values[key] = self.range_values[key] / float(self.count)

                 if hasattr(self, 'ref_count'):
                     self.significant = abs(self.mean - self.ref_mean) > 0.1

レポートの再生成

reportのみを再度行なうことで、平均や標準偏差が出力されるようになります。念のためcsv exportで出力した結果から再計算してみたところ、約160名分の手持ちのデータについて、無回答の項目を除いた値は同じ平均・標準偏差になるところまでは確認しています。

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.