Return-Path: Delivered-To: apmail-commons-issues-archive@minotaur.apache.org Received: (qmail 7813 invoked from network); 20 Jun 2009 13:46:29 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 20 Jun 2009 13:46:29 -0000 Received: (qmail 24044 invoked by uid 500); 20 Jun 2009 13:46:40 -0000 Delivered-To: apmail-commons-issues-archive@commons.apache.org Received: (qmail 23929 invoked by uid 500); 20 Jun 2009 13:46:40 -0000 Mailing-List: contact issues-help@commons.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: issues@commons.apache.org Delivered-To: mailing list issues@commons.apache.org Received: (qmail 23919 invoked by uid 99); 20 Jun 2009 13:46:40 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 20 Jun 2009 13:46:40 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.140] (HELO brutus.apache.org) (140.211.11.140) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 20 Jun 2009 13:46:29 +0000 Received: from brutus (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id B46D7234C004 for ; Sat, 20 Jun 2009 06:46:07 -0700 (PDT) Message-ID: <1467198114.1245505567734.JavaMail.jira@brutus> Date: Sat, 20 Jun 2009 06:46:07 -0700 (PDT) From: "Luc Maisonobe (JIRA)" To: issues@commons.apache.org Subject: [jira] Resolved: (MATH-278) Robust locally weighted regression (Loess / Lowess) In-Reply-To: <593158728.1245442447794.JavaMail.jira@brutus> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 X-Virus-Checked: Checked by ClamAV on apache.org [ https://issues.apache.org/jira/browse/MATH-278?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Luc Maisonobe resolved MATH-278. -------------------------------- Resolution: Fixed Assignee: Luc Maisonobe solved in subversion repository as of r786821 applied patch with minor changes thanks for the patch > Robust locally weighted regression (Loess / Lowess) > --------------------------------------------------- > > Key: MATH-278 > URL: https://issues.apache.org/jira/browse/MATH-278 > Project: Commons Math > Issue Type: New Feature > Reporter: Eugene Kirpichov > Assignee: Luc Maisonobe > Attachments: loess.patch, loess.patch.v2 > > > Attached is a patch that implements the robust Loess procedure for smoothing univariate scatterplots with local linear regression ( http://en.wikipedia.org/wiki/Local_regression) described by William Cleveland in http://www.math.tau.ac.il/~yekutiel/MA%20seminar/Cleveland%201979.pdf , with tests. > (Also, the patch fixes one missing-javadoc checkstyle warning in the AbstractIntegrator class: I wanted to make it so that the code with my patch does not generate any checkstyle warnings at all) > I propose to include the procedure into commons-math because commons-math, as of now, does not possess a method for robust smoothing of noisy data: there is interpolation (which virtually can't be used for noisy data at all) and there's regression, which has quite different goals. > Loess allows one to build a smooth curve with a controllable degree of smoothness that approximates the overall shape of the data. > I tried to follow the code requirements as strictly as possible: the tests cover the code completely, there are no checkstyle warnings, etc. The code is completely written by myself from scratch, with no borrowings of third-party licensed code. > The method is pretty computationally intensive (10000 points with a bandwidth of 0.3 and 4 robustness iterations take about 3.7sec on my machine; generally the complexity is O(robustnessIters * n^2 * bandwidth)), but I don't know how to optimize it further; all implementations that I have found use exactly the same algorithm as mine for the unidimensional case. > Some TODOs, in vastly increasing order of complexity: > - Make the weight function customizable: according to Cleveland, this is needed in some exotic cases only, like, where the desired approximation is non-continuous, for example. > - Make the degree of the locally fitted polynomial customizable: currently the algorithm does only a linear local regression; it might be useful to make it also use quadratic regression. Higher degrees are not worth it, according to Cleveland. > - Generalize the algorithm to the multidimensional case: this will require A LOT of hard work. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.