Uploaded image for project: 'Commons Math'
  1. Commons Math
  2. MATH-296

LoessInterpolator.smooth() not working correctly

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 2.0
    • Fix Version/s: 2.1
    • Labels:
      None
    • Environment:

      Java 1.6 on Vista

      Description

      I have been comparing LoessInterpolator.smooth output with the loessFit output from R (R-project.org, probably the most widely used loess implementation) and have had strangely different numbers. I have created a small set to test the difference and something seems to be wrong with the smooth method but I do no know what and I do not understand the code.
      Example 1

      x-input: 1.5 3.0 6 8 12 13 22 24 28 31
      y-input: 3.1 6.1 3.1 2.1 1.4 5.1 5.1 6.1 7.1 7.2
      Output LoessInterpolator.smooth(): NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
      Output from loessFit() from R: 3.191178027520974 3.0407201231474037 2.7089538903778636 2.7450823274490297 4.388011000549519 4.60078952381848 5.2988217587114805 5.867536388457898 6.7797794777879705 7.444888598397342

      Example 2 (same x-values, y-values just floored)

      x-input: 1.5 3.0 6 8 12 13 22 24 28 31
      y-input: 3 6 3 2 1 5 5 6 7 7
      Output LoessInterpolator.smooth(): 3 6 3 2 0.9999999999999005 5.0000000000001705 5 5.999999999999972 7 6.999999999999967
      Output from loessFit() from R: 3.091423927353068 2.9411521572524237 2.60967950675505 2.7421759322272248 4.382996912300442 4.646774316632562 5.225153658563424 5.768301917477015 6.637079139313073 7.270482144410326

      As you see the output is practically the replicated y-input.
      At this point this funtionality is critical for us but I could not find any other suitable java-implementation. Help. Maybe this strange behaviour gives someone a clue?

        Attachments

        1. MATH-296.2.patch
          7 kB
          Eugene Kirpichov
        2. math-296.patch
          13 kB
          Eugene Kirpichov
        3. math-296-test.patch
          2 kB
          Luc Maisonobe

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              romeop Romeo P
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: