簡體   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