的替換這是我在哪裏到目前爲止:爲方法=「黃土」
我有兩列A
和B
(均包含實數),其中b
取決於a
數據幀df
。我將這些列彼此對齊:
p = ggplot(df, aes(A, B)) + geom_point()
並查看該關係是非線性關係。添加:
p = p + geom_smooth(method = 'loess', span = 1)
給出了一條'最佳'最適合的路線。賦予了新的價值A
然後我用下面的方法來預測B
價值a
:
B.loess = loess(B ~ A, span = 1, data = df)
predict(B.loess, newdata = a)
到目前爲止,一切都很好。然而,我然後意識到我不能外推使用loess
(大概是因爲它是非參數?!)。外推似乎相當自然 - 的關係看起來像一個電源類型的事情是怎麼回事e.g:
x = c(1:10)
y = 2^x
df = data.frame(A = x, B = y)
這是我擺脫這種困境。首先,如果不使用loess
,我可以使用什麼方法來繪製最適合這種(「強力」)數據的線?可憐的嘗試,如:
p = ggplot(df, aes(A, B)) + geom_point() +
geom_smooth(method = 'lm', formula = log(y) ~ x)
給我錯誤。另外,假設我實際上能夠畫出一條我感到滿意的最適合的線,但我在使用時以類似的方式使用predict
時遇到問題。對於例子起見,假設我很高興與最佳擬合線:
p = ggplot(df, aes(A, B)) + geom_point() +
geom_smooth(method = 'lm', formula = y ~ x)
然後,如果我想預測,如果A
等於11(理論上2^11)B
將採取什麼樣的價值,下面的方法做不工作:
B.lm = lm(B ~ A)
predict(B.lm, newdata = 11)
任何幫助非常感謝。乾杯。
嗨,謝謝你的回答agstudy。而不是嘗試更高的多項式迴歸,是不可能使用功率迴歸(我認爲這些會更適合我的數據)?如果可能的話,你會好心編輯你的帖子,告訴我如何做到這些?我會很感激。乾杯。 – user32259 2013-02-27 12:44:08