多項式迴歸是獨立x變量和因果y變量之間的非線性關係。python
當咱們分析有一些彎曲的波動數據時,擬合這種類型的迴歸是很關鍵的。
在這篇文章中,咱們將學習如何在R中擬合和繪製多項式迴歸數據。咱們在這個迴歸模型中使用了lm()函數。雖然它是一個線性迴歸模型函數,但經過改變目標公式類型,lm()對多項式模型也適用。本教程包括函數
咱們首先要準備測試數據,以下所示。性能
function(x) x^3+2*x^2+5 df = data.frame(x = x, y = y) head(df)
咱們能夠將'df'數據可視化,在圖中進行直觀的檢查。咱們的任務是用最佳曲線擬合這個數據。學習
plot(df$x, df$y
咱們用lm()函數創建一個帶有公式的模型。 I(x^2)在一個公式中表明x2。咱們也能夠使用poly(x,2)函數,它與I(x^2)的表達方式相同。測試
接下來,咱們將用訓練好的模型來預測數據。spa
pred = predict(model,data=df)
找到最佳擬合的曲線很重要。咱們用各類可能的函數檢查模型。在這裏,咱們應用四種類型的函數進行擬合,並檢查其性能。
橙色線(線性迴歸)和黃色曲線對這個數據來講是錯誤的選擇。粉紅色曲線很接近,但藍色曲線是與咱們的數據趨勢最匹配的。所以,我使用y~x3+x2公式來創建咱們的多項式迴歸模型。
你能夠經過將你的數據可視化來找到最適合的公式。code
源代碼列在下面。教程
lines(df$x, predict(lm(y~x, data=df)), type="l" lwd=2) legend("topleft", legend = c("y~x, - 線性","y~x^2", "y~x^3", "y~x^3+x^2"),
1. 用plot()函數做圖。rem
2. 用ggplot()做圖。
多項式迴歸數據能夠用ggplot()擬合和繪製。get
ggplot(data=df ) + geom_smooth( y~I(x^3)+I(x^2))
在本教程中,咱們簡要了解了如何擬合多項式迴歸數據,並使用R中的plot()和ggplot()函數繪製結果,完整的源代碼以下。
最受歡迎的看法
3.matlab中的偏最小二乘迴歸(PLSR)和主成分迴歸(PCR)
5.R語言迴歸中的Hosmer-Lemeshow擬合優度檢驗