Objective-C Quadratic/Polynomial回归(excel中的Linest函数)
Objective-C Quadratic/Polynomial regression (Linest function in excel)
objective-c 数学库看起来很基础。
我正在寻找一些统计分析函数,例如 Excel 函数 "linest" 来检索具有给定顺序的数据集的二次或多项式回归。
objective-c有没有类似"linest"功能的功能?或者一个已知的统计数据library/framework?
我很难相信我是 iOS 中第一个偶然发现这个问题的人。
标准数学库通常只为您提供基本数学运算的接口,这些运算在 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])
是模拟函数值的矩阵,Y[k]=y[k]
是要近似的值的列向量。将 QR 算法应用于 [X|Y]
,从其结果中识别或提取 R 因子并求解
中的 b
R*[b|1]'=0
通过反向替换。
我花了几天时间完成数学运算并将其写入代码,因为我找不到 iOS 具有我需要的函数的数学库。我不会建议任何人再这样做,这不是在公园里散步,所以我在 github 上发布了我的解决方案。你可以在这里找到它:
https://github.com/KingIsulgard/iOS-Polynomial-Regression
使用起来很简单,只需要给出数据的x值和y值以及你想要得到的多项式的阶数就可以了。
希望这可能对某些人有所帮助。如果可以,请随时改进。我很高兴它终于奏效了。
objective-c 数学库看起来很基础。
我正在寻找一些统计分析函数,例如 Excel 函数 "linest" 来检索具有给定顺序的数据集的二次或多项式回归。
objective-c有没有类似"linest"功能的功能?或者一个已知的统计数据library/framework?
我很难相信我是 iOS 中第一个偶然发现这个问题的人。
标准数学库通常只为您提供基本数学运算的接口,这些运算在 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])
是模拟函数值的矩阵,Y[k]=y[k]
是要近似的值的列向量。将 QR 算法应用于 [X|Y]
,从其结果中识别或提取 R 因子并求解
b
R*[b|1]'=0
通过反向替换。
我花了几天时间完成数学运算并将其写入代码,因为我找不到 iOS 具有我需要的函数的数学库。我不会建议任何人再这样做,这不是在公园里散步,所以我在 github 上发布了我的解决方案。你可以在这里找到它: https://github.com/KingIsulgard/iOS-Polynomial-Regression
使用起来很简单,只需要给出数据的x值和y值以及你想要得到的多项式的阶数就可以了。
希望这可能对某些人有所帮助。如果可以,请随时改进。我很高兴它终于奏效了。