Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
2.0
-
None
-
None
-
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?