多項式回歸是獨立x變量和因果y變量之間的非線性關系。
當我們分析有一些彎曲的波動資料時,拟合這種類型的回歸是很關鍵的。
在這篇文章中,我們将學習如何在R中拟合和繪制多項式回歸資料。我們在這個回歸模型中使用了lm()函數。雖然它是一個線性回歸模型函數,但通過改變目标公式類型,lm()對多項式模型也适用。本教程包括
- 準備資料
- 拟合模型
- 尋找最佳拟合
- 源代碼
準備資料
我們首先要準備測試資料,如下所示。
1. function(x) x^3+2*x^2+5
2.
3.
4. df = data.frame(x = x, y = y)
5. head(df)
6.
7.
我們可以将'df'資料可視化,在圖中進行直覺的檢查。我們的任務是用最佳曲線拟合這個資料。
plot(df$x, df$y
拟合模型
我們用lm()函數建立一個帶有公式的模型。 I(x^2)在一個公式中代表x2。我們也可以使用poly(x,2)函數,它與I(x^2)的表達方式相同。
接下來,我們将用訓練好的模型來預測資料。
pred = predict(model,data=df)
尋找最佳拟合
找到最佳拟合的曲線很重要。我們用各種可能的函數檢查模型。在這裡,我們應用四種類型的函數進行拟合,并檢查其性能。
橙色線(線性回歸)和黃色曲線對這個資料來說是錯誤的選擇。粉紅色曲線很接近,但藍色曲線是與我們的資料趨勢最比對的。是以,我使用y~x3+x2公式來建立我們的多項式回歸模型。
你可以通過将你的資料可視化來找到最适合的公式。
源代碼列在下面。
1.
2. lines(df$x, predict(lm(y~x, data=df)), type="l" lwd=2)
3.
4. legend("topleft",
5. legend = c("y~x, - 線性","y~x^2", "y~x^3", "y~x^3+x^2"),
繪制結果
1. 用plot()函數作圖。
2. 用ggplot()作圖。
多項式回歸資料可以用ggplot()拟合和繪制。
1. ggplot(data=df ) +
2. geom_smooth( y~I(x^3)+I(x^2))