繁体   English   中英

在R中,如何获得对一组数据的最佳拟合方程?

[英]In R, how do you get the best fitting equation to a set of data?

我不确定R是否可以做到这一点(我认为它可以做到,但是那可能只是因为我倾向于认为R可以做到任何事情:-))。 我需要的是找到描述数据集的最佳拟合方程。

例如,如果您有以下几点:

df = data.frame(x = c(1, 5, 10, 25, 50, 100), y = c(100, 75, 50, 40, 30, 25))

您如何获得最佳拟合方程式? 我知道您可以通过以下方式获得最佳拟合曲线:

plot(loess(df$y ~ df$x))

但是据我了解,您不能提取方程式,请参阅黄土拟合和结果方程式

当我尝试自己构建它时(注意,我不是数学家,所以这可能不是理想的方法:-)),我最终遇到了类似的问题:

y.predicted = 12.71 + ( 95 / (( (1 + df$x) ^ .5 ) / 1.3))

哪种近似的感觉-但我不禁认为可能存在更优雅的方法:-)

我觉得拟合线性或多项式模型也不起作用,因为该公式似乎与那些模型通常使用的公式不同(即,该模型似乎需要除法,乘幂等)。 例如,将多项式模型拟合到R中的数据的方法给出了非常差的近似值。

我记得很久以前,存在做这种事情的语言(Matlab可能是其中的一种?)。 R也可以这样做,还是我在错误的地方?

(背景信息:基本上,我们要做的是找到基于第一列中的数字来确定第二列中的数字的方程;但是我们自己决定数字。我们对希望曲线的外观有所了解例如,但是如果我们更合适,我们可以将这些数字调整为一个方程式,这是关于产品的价格(用于定性数据分析的当前廉价软件的廉价替代品);您购买的“项目信用”越多,价格越便宜与其强迫人们购买一个给定的数字(即5或10或25),不如拥有一个公式使人们可以准确地购买他们所需要的东西,这会更好,但是当然这需要一个公式。我们认为可以接受某些价格的想法,但是现在我们需要将其转化为等式。

多元线性回归示例

适合<-lm(y〜x1 + x2 + x3,data = mydata)

摘要(适合)#显示结果

上面的代码应该为您提供最适合使用OLS的数据的行。

我通常的插件: http : //creativemachines.cornell.edu/eureqa

但是正如罗兰所说,“总体上最合适”的意义不大,因为任何函数都可以表示为泰勒级数。 由于期望一组数据的值中也有噪声,也就是误差,因此曲线拟合的很大一部分是确定什么是噪声,什么不是噪声。
如果您任意选择一些拟合函数,那么我可以保证的一点是,外推点将急于发散。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM