java中的非线性趋势分析

java中的非线性趋势分析,java,math,non-linear-regression,trend,Java,Math,Non Linear Regression,Trend,我目前正在从事一个Java项目,在该项目中,我不断(例如,每10秒)接收一个y值,其中一个x值不断递增,表示图形的x轴和y轴 e、 g: //第一个值是x,第二个值是y-addData(,) sr.addData(1,2.43); //10秒后 sr.addData(2,2.41); //10秒后 sr.addData(3,2.48); //10秒后 sr.addData(4,2.51); //10秒后 sr.addData(5,2.49); //等等 我想计算最新的趋势(上升或下降,以及趋势

我目前正在从事一个Java项目,在该项目中,我不断(例如,每10秒)接收一个y值,其中一个x值不断递增,表示图形的x轴和y轴

e、 g:

//第一个值是x,第二个值是y-addData(,)
sr.addData(1,2.43);
//10秒后
sr.addData(2,2.41);
//10秒后
sr.addData(3,2.48);
//10秒后
sr.addData(4,2.51);
//10秒后
sr.addData(5,2.49);
//等等
我想计算最新的趋势(上升或下降,以及趋势的强度-类似于使用
math3
中的
SimpleRegression
时的
getSlope()
)。但是,虽然这些点大多是非线性的,可以上升或下降,但我想使用一些非线性回归,而不是线性回归(我目前使用的是只添加最新的3-4个值,我认为这不是非常准确)

我偶然发现了
LoessInterpolator
。但我不太确定如何使用它,以及如何计算坡度。这方面有什么例子吗?是否建议根据我的需要使用
LoessInterpolator
,或者是否有其他方法可以精确计算趋势/斜率


提前谢谢

您仍然可以使用线性回归。您需要拟合非线性函数的系数。多项式应该可以。您是在寻找回归趋势线还是样条曲线拟合?你应该研究一下卡尔曼滤波器。您不希望每次输入新数据点时都重做整个历史记录:您仍然可以使用线性回归。您需要拟合非线性函数的系数。多项式应该可以。您是在寻找回归趋势线还是样条曲线拟合?你应该研究一下卡尔曼滤波器。您不希望每次输入新数据点时都重做整个历史记录:
    // First value is x, second is y - addData(<x-value>,<y-value>)
    sr.addData(1, 2.43);
    // 10 seconds later
    sr.addData(2, 2.41);
    // 10 seconds later
    sr.addData(3, 2.48);
    // 10 seconds later
    sr.addData(4, 2.51);
    // 10 seconds later
    sr.addData(5, 2.49);
    // etc etc