objective-c数学库似乎非常基础。
我正在寻找一些统计分析函数,如Excel函数“linest”,以检索具有给定顺序的数据集的二次或多项式回归。
是否有任何类似于objective-c的“linest”函数的函数?还是一个已知的统计库/框架?
我很难相信我是第一个在iOS中偶然遇到这个问题的人。
答案 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值以及你想得到的多项式的阶数,瞧,你就明白了。
希望这可能对某些人有所帮助。如果可以的话,随意改进。我很高兴它终于奏效了。