R語言多項式迴歸擬合非線性關係

原文連接:http://tecdat.cn/?p=22438 

多項式迴歸是獨立x變量和因果y變量之間的非線性關係。python

當咱們分析有一些彎曲的波動數據時,擬合這種類型的迴歸是很關鍵的。 
在這篇文章中,咱們將學習如何在R中擬合和繪製多項式迴歸數據。咱們在這個迴歸模型中使用了lm()函數。雖然它是一個線性迴歸模型函數,但經過改變目標公式類型,lm()對多項式模型也適用。本教程包括函數

  1. 準備數據
  2. 擬合模型
  3. 尋找最佳擬合
  4. 源代碼

準備數據

咱們首先要準備測試數據,以下所示。性能

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()函數繪製結果,完整的源代碼以下。


最受歡迎的看法

1.R語言多元Logistic邏輯迴歸 應用案例

2.面板平滑轉移回歸(PSTR)分析案例實現

3.matlab中的偏最小二乘迴歸(PLSR)和主成分迴歸(PCR)

4.R語言泊松Poisson迴歸模型分析案例

5.R語言迴歸中的Hosmer-Lemeshow擬合優度檢驗

6.r語言中對LASSO迴歸,Ridge嶺迴歸和Elastic Net模型實現

7.在R語言中實現Logistic邏輯迴歸

8.python用線性迴歸預測股票價格

9.R語言如何在生存分析與Cox迴歸中計算IDI,NRI指標

相關文章
相關標籤/搜索