java中的非线性趋势分析
我目前正在从事一个Java项目,在该项目中,我不断(例如,每10秒)接收一个y值,其中一个x值不断递增,表示图形的x轴和y轴 e、 g: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); //等等 我想计算最新的趋势(上升或下降,以及趋势
//第一个值是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