我不确定R是否能够做到这一点(我认为它可以,但这可能只是因为我倾向于认为R可以做任何事情 :-))。我需要找到最适合描述数据集的方程。
例如,如果您有以下数据点:
df = data.frame(x = c(1, 5, 10, 25, 50, 100), y = c(100, 75, 50, 40, 30, 25))
如何获得最佳拟合方程?我知道您可以使用以下方法获得最佳拟合曲线:
例如,如果您有以下数据点:
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))
但是据我所了解,您无法提取公式,请参见Loess Fit and Resulting Equation。
当我尝试自己构建时(请注意,我不是数学家,因此这可能不是理想的方法:-)),我最终得到了以下结果:
y.predicted = 12.71 + ( 95 / (( (1 + df$x) ^ .5 ) / 1.3))
这似乎有点类似,但我认为可能存在更优雅的方法:
我觉得拟合线性或多项式模型也不行,因为公式与这些模型通常使用的不同(即这个公式似乎需要除法、幂等运算等)。例如,在Fitting polynomial model to data in R中的方法给出的逼近结果很糟糕。
我记得很久以前有一种语言(Matlab可能是其中之一?)可以做这种事情。R能否也做到这一点,还是我在错误的地方?
(背景信息:基本上,我们需要找到一个方程来确定第二列数字,根据第一列数字;但我们自己决定这些数字。我们有一个想法,知道曲线应该看起来像什么,但如果我们得到更好的拟合结果,我们可以调整这些数字以获得一个方程。这是关于产品定价的事情(一种比当前昂贵的定性数据分析软件更便宜的替代品);你购买的“项目积分”越多,价格就越便宜。与强制人们购买固定数量(如5或10或25)不同,最好有一个公式,这样人们就可以根据需要购买所需数量。但是,这当然需要一个公式。我们有一些价格的想法,认为它们还不错,但现在我们需要将它们转化为方程。