如何基于x、y、z样本推导x与y生成z的公式?R语言有无相关包?
R语言基于x/y/z样本推导双自变量映射公式的可用方案
不存在无需任何先验假设就能推导出绝对精确数学公式的工具,所有相关方法都是在预设的算子/函数空间内,找到对样本拟合效果最优的z~x,y表达式,你可以根据自身对公式形式的需求选择对应方案:
- 需求为输出可直接解读的初等显式公式(由加减乘除、幂、三角函数等基础运算构成)
- 适配完全未知公式形式的场景:使用
rgp包的symbolicRegression()函数,该函数实现了基于遗传编程的符号回归算法,不需要提前指定公式结构,会自动组合基础数学算子迭代优化,最终输出拟合误差最小的显式数学表达式。 - 若推测z与x、y为多项式类关系:使用
polspline包的polymars()函数,会自动筛选有效多项式项,输出多项式形式的拟合公式,计算速度远快于通用符号回归方法。
- 适配完全未知公式形式的场景:使用
- 需求为准确刻画x、y到z的映射规律、支持结果推演,不要求必须是简单初等公式
- 常规非线性场景:使用
mgcv包的gam()函数拟合广义加性模型,函数会自动拟合x、y的非线性光滑项,输出的模型支持任意x、y输入下的z值计算,也可提取光滑函数的解析表达式做进一步推导。 - 高度复杂非线性场景:可先使用树模型、神经网络类工具拟合高精度映射,再通过
iml包提取黑箱模型的全局近似显式公式,平衡拟合精度和公式可解释性。
- 常规非线性场景:使用
- 前置操作建议
- 拟合前先用
scatterplot3d包绘制x-y-z三维散点图,观察z随x、y的变化趋势、排查异常值。 - 样本量充足时拆分训练集和测试集,避免推导得到的公式过拟合。
- 拟合前先用
所有自动推导得到的公式都是对样本蕴含规律的近似,不存在完全匹配真实底层规律的“完美公式”,推导完成后必须用独立测试集验证公式的预测误差。
内容的提问来源于stack exchange,提问作者Alessio
相关产品推荐
相关产品推荐

