<html><head><meta http-equiv="Content-Type" content="text/html; charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><br class=""><div><br class=""><blockquote type="cite" class=""><div class="">On 3 Sep 2019, at 06:45, Ralf Gommers <<a href="mailto:ralf.gommers@gmail.com" class="">ralf.gommers@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class=""><div dir="ltr" class=""><br class=""></div><br class=""><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Sep 2, 2019 at 1:45 PM Filippo Bovo <<a href="mailto:hi.hellbee@gmail.com" class="">hi.hellbee@gmail.com</a>> wrote:<br class=""></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div style="overflow-wrap: break-word;" class=""><div class="">Hi,</div><div class=""><br class=""></div><div class="">I wrote a Python package for the high-performance calculation of three robust statistical estimators: weighted median, medcouple and mode.</div><div class=""><br class=""></div><div class="">The repository with the code is at this link: <a href="https://github.com/FilippoBovo/robustats" target="_blank" class="">https://github.com/FilippoBovo/robustats</a>.</div><div class=""><br class=""></div><div class="">The estimators are implemented in C using linear or log-linear algorithms, thereby making the code run pretty fast.</div><div class=""><br class=""></div><div class="">I would like to donate the code for the above three estimators to SciPy. </div></div></blockquote><div class=""><br class=""></div><div class="">Hi Filippo. Thanks for your interest in contributing!</div><div class=""> <br class=""></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div style="overflow-wrap: break-word;" class=""><div class="">I believe that `scipy.stats` is a good location where to add the weighted median, medcouple and mode.</div></div></blockquote><div class=""><br class=""></div><div class="">There is a mode function in scipy.stats. It looks nontrivial to make that work in C in a backwards-compatible fashion, but please have a look at it and see if that can work and would be an improvement.</div><div class=""><br class=""></div><div class="">I've looked at your medcouple, but the function doesn't explain what it's for and I'm not familiar with the name. Can you explain?</div></div></div></div></blockquote><div><br class=""></div><div>The medcouple is a quantity used to determine the outliers of a skewed distribution. For example, say that we have a data sample that leans more towards the right than the left; in this case, we would use the medcouple to determine the skewness of the distribution and use the result to determine the left and right outliers. You may find more information in the Wikipedia page: <a href="https://en.wikipedia.org/wiki/Medcouple" class="">https://en.wikipedia.org/wiki/Medcouple</a>.</div><div><br class=""></div><blockquote type="cite" class=""><div class=""><div dir="ltr" class=""><div class="gmail_quote"><div class=""><br class=""></div><div class="">A weighted median doesn't fit well. NumPy has a median function, perhaps better to consider whether to add weights to that, in the same fashion as for numpy.average</div><div class=""><br class=""></div></div></div></div></blockquote><div><br class=""></div><div>Ok, thank you.</div><br class=""><blockquote type="cite" class=""><div class=""><div dir="ltr" class=""><div class="gmail_quote"><div class="">Cheers,<br class=""></div><div class="">Ralf</div><div class=""><br class=""></div></div></div>
_______________________________________________<br class="">SciPy-Dev mailing list<br class=""><a href="mailto:SciPy-Dev@python.org" class="">SciPy-Dev@python.org</a><br class=""><a href="https://mail.python.org/mailman/listinfo/scipy-dev" class="">https://mail.python.org/mailman/listinfo/scipy-dev</a><br class=""></div></blockquote><br class=""></div><div>Cheers,</div><div>Filippo</div></body></html>