Objective-C二次/多项式回归(excel中的Linest函数)

时间:2015-03-15 22:52:18

标签: ios objective-c math polynomial-math

objective-c数学库似乎非常基础。

我正在寻找一些统计分析函数,如Excel函数“linest”,以检索具有给定顺序的数据集的二次或多项式回归。

是否有任何类似于objective-c的“linest”函数的函数?还是一个已知的统计库/框架?

我很难相信我是第一个在iOS中偶然遇到这个问题的人。

2 个答案:

答案 0 :(得分:2)

标准数学库通常只为您提供了在CPU的FPU部分中实现的基本数学运算的接口。

对于线性回归,您需要自己的算法,在少数循环中实现并不复杂,或者是专用(最有可能)的统计库。


如果QR分解算法可用,例如通过LAPACK或类似的绑定,编写自己的高阶或一般回归算法很简单。然后解决

minimize sum (b[0]*f[0](x[k])+...+b[n]*f[n](x[k])-y[k])^2

只需构造矩阵[X|Y],其中X[k,j]=f[j](x[k])是ansatz函数值的矩阵,Y[k]=y[k]是要逼近的值的列向量。将QR算法应用于[X|Y],从其结果中识别或提取R因子,并在

中求解b
R*[b|1]'=0

通过反向替换。

答案 1 :(得分:2)

我花了几天时间完成数学计算并将其编入代码中,因为我找不到具有我需要的功能的iOS数学库。我不建议任何人再这样做,这不是在公园散步,所以我在我的github上发布了我的解决方案。你可以在这里找到它: https://github.com/KingIsulgard/iOS-Polynomial-Regression

它易于使用,只需给出数据的x值和y值以及你想得到的多项式的阶数,瞧,你就明白了。

希望这可能对某些人有所帮助。如果可以的话,随意改进。我很高兴它终于奏效了。