R數據分析:逐步回歸的做法和原理,案例剖析

2021-02-19 Codewar

做回歸的時候經常頭痛的一個問題就是變量的選擇,好多人一放一大堆變量但是結果做出來都沒意義,這個時候你可以試試讓算法給你選擇最優的自變量組合喲。

那麼今天要寫的就是回歸時篩選變量的逐步法:

The stepwise regression (or stepwise selection) consists of iteratively adding and removing predictors, in the predictive model, in order to find the subset of variables in the data set resulting in the best performing model, that is a model that lowers prediction error.

逐步法又分三種策略:

前進:就是把變量按照貢獻大小一個一個的往回歸模型中放,直到所有自變量都是顯著的為止。

後退:就是把所有的自變量都放進去然後把貢獻小的自變量一個一個的往出來取,直到所有的自變量都顯著。

逐步Stepwise selection:這個就是把兩種方法結合起來,先是把貢獻大的變量一個一個放(前進),所有變量放完了又把沒有貢獻的取出來(後退)。

R語言實操

在R中能做逐步回歸的方法有很多,比如:

stepAIC() [MASS 包]

regsubsets() [leaps 包]

train() [caret 包]

今天我還是給大家寫一個例子,這個例子我們用train來做,train()有一個可選參數 method,這個參數可以有以下3個選擇:

"leapBackward", to fit linear regression with backward selection後退

"leapForward", to fit linear regression with forward selection前進

"leapSeq", to fit linear regression with stepwise selection 逐步

我們用到的數據為R自帶的Swiss數據集,裡面有6個變量:

我想用其餘5個變量來預測Fertility,但是5個有點多,我想用逐步回歸選一選

我要選出一個最好的自變量組合來預測Fertility:

step.model <- train(Fertility ~., data = swiss,
method = "leapSeq",
tuneGrid = data.frame(nvmax = 1:5),
trControl = train.control
)
step.model$results

運行上面的代碼就可以輸出如下結果:

我們把自變量的最大個數nvmax規定為5,所以我們會跑出來不同自變量個數的最佳自變量組合的模型結果:

the function starts by searching different best models of different size, up to the best 5-variables model. That is, it searches the best 1-variable model, the best 2-variables model, …, the best 5-variables models.

我們需要根據模型的RMSE和MAE對模型進行選擇,可以看到模型5的RMSE和MAE是最小的,所以最好的模型就是5個變量都放進去,當然了,你不願意自己選,也可以直接輸出最好的模型:

step.model$bestTune

結果顯示依然是模型5最好。

那麼模型到底怎麼選出來的呢?

summary(step.model$finalModel)

從輸出結果可以看到自變量的選擇過程,如果只要一個變量那麼最好的選擇就是Education,如果放兩個自變量,那麼最好的選擇就是Education和Catholic。以此類推。。

那麼模型的係數是多少呢?

coef(step.model$finalModel, 5)

還有,既然變量都給你選好了,我們直接用lm法也可以得到模型係數的呀:

lm(Fertility ~ Agriculture +Examination+ Education + Catholic + Infant.Mortality,
data = swiss)

模型係數一摸一樣。

小結

今天給大家寫了逐步回歸的做法,感謝大家耐心看完,自己的文章都寫的很細,代碼都在原文中,希望大家都可以自己做一做,請關注後私信回復「數據連結」獲取所有數據和本人收集的學習資料。如果對您有用請先收藏,再點讚轉發。

也歡迎大家的意見和建議。

如果你是一個大學本科生或研究生,如果你正在因為你的統計作業、數據分析、論文、報告、考試等發愁,如果你在使用SPSS,R,Python,Mplus, Excel中遇到任何問題,都可以聯繫我。因為我可以給您提供好的,詳細和耐心的數據分析服務。

如果你對Z檢驗,t檢驗,方差分析,多元方差分析,回歸,卡方檢驗,相關,多水平模型,結構方程模型,中介調節,量表信效度等等統計技巧有任何問題,請私信我,獲取詳細和耐心的指導。

If you are a student and you are worried about you statistical #Assignments, #Data #Analysis, #Thesis, #reports, #composing, #Quizzes, Exams.. And if you are facing problem in #SPSS, #R-Programming, #Excel, Mplus, then contact me. Because I could provide you the best services for your Data Analysis.

Are you confused with statistical Techniques like z-test, t-test, ANOVA, MANOVA, Regression, Logistic Regression, Chi-Square, Correlation, Association, SEM, multilevel model, mediation and moderation etc. for your Data Analysis...??

Then Contact Me. I will solve your Problem...

加油吧,打工人!

猜你喜歡:

R數據分析:邏輯斯蒂回歸與泊松回歸

R數據分析:多分類邏輯回歸

R數據分析:多元邏輯斯蒂回歸的做法

R數據分析:線性回歸的做法和優化實例

R數據分析:如何做邏輯斯蒂回歸

python機器學習:線性回歸中的啞變量轉換

Python機器學習入門:線性回歸實例操練

相關焦點

  • R數據分析:一般線性回歸的做法和解釋
    在R語言中我們可以非常方便地用基礎包中的lm方法做出線性回歸。參數的書寫也和數學方程一樣一樣的Y~X+X2,只不過將等號換成了~。我們用summary+回歸對象就可以得到回歸結果,如果要看模型的殘差直接$resid就可以。還是給大家寫一個活生生的例子吧:實例描述:我們有如圖的數據集,我想要用回歸分析做month, spend對sales的關係。
  • 數據分析中常見的七種回歸分析以及R語言實現(二)---逐步回歸
    接著上篇文章,這裡講一下逐步回歸,那麼大家應該都知道逐步回歸是什麼樣的作用了,就是為我們剔除一些不重要或者不顯著的自變量,使得回歸方程最優形式去預測因變量
  • 一元(多元)線性回歸分析之R語言實現
    上篇介紹了《一元(多元)線性回歸分析之Excel實現》,本篇來探討一下回歸分析在R語言中的實現,我們將從更專業的角度對模型進行一些解讀。
  • Python邏輯回歸原理及實際案例應用
    雖然它有"回歸"一詞, 但解決的卻是分類問題目錄1. 邏輯回歸2. 優缺點及優化問題3. 實際案例應用4. 總結正文在前面所介紹的線性回歸, 嶺回歸和Lasso回歸這三種回歸模型中, 其輸出變量均為連續型, 比如常見的線性回歸模型為:
  • R邏輯回歸逐步選擇變量的實現
    從留言內容來看,還是有很多朋友在使用R作為主要分析工具的
  • R語言 | 回歸分析(二)
    根據關係的方向,相關可以分為正相關和負相關兩種類型。以此,我們可以繪製出一條直線來預測。一個簡單的線性回歸由斜率和截距組成,記為Yi = b0 + b1Xi + εi,其中b0和b1被稱為回歸係數,εi被稱為殘差,是觀測到的數據到回歸線的距離。使用R2可以判斷線性回歸模型的擬合優度,範圍在[0,1]浮動,越接近1說明擬合程度越好。
  • SPSS分析技術:線性回歸分析
    相關分析請點擊回顧:SPSS分析技術:Pearson相關、Spearman相關及Kendall相關;SPSS分析技術:偏相關分析;SPSS分析技術:低測度數據的相關性分析;回歸分析就是分析變量之間隱藏的內在規律,並建立變量之間函數變化關係的一種分析方法,回歸分析的目標就是建立由一個因變量和若干自變量構成的回歸方程式,使變量之間的相互控制關係通過這個方程式描述出來
  • R數據分析:交互作用的簡單斜率圖做法及解釋
    具體的例子為:我們在研究GPA的影響因素時,我們想看一看學習態度和性別的交互作用,在這個例子中,學習態度為連續變量,性別為分類變量數據模擬n <- 250X <- rnorm(n, 2.75, .75)G <- sample(rep(c(0,1),N),N,replace = FALSE)
  • python數據分析--回歸函數及線性回歸分析
    1.常見的回歸函數2.工具數據分析有很多成熟的工具可以使用,如R、python、此處我們選用python進行分析。首先,我們需要安裝並導入python數據分析常用的庫。__version__)3.線性回歸分析Y= aX + b + e ,e表示殘差。
  • R語言多元Logistic邏輯回歸 應用案例
    R語言多元Logistic回歸 應用案例多元Logistic回歸如何進行多重邏輯回歸可以使用階梯函數通過逐步過程確定多重邏輯回歸。
  • 轉載幾個R語言中實現Logistic回歸模型的案例
    今天轉載分享幾個Logistics回歸分析的較詳細的案例,希望對大家有用。案例一:本文用例來自於John Maindonald所著的《Data Analysis and Graphics Using R》一書,其中所用的數據集是anesthetic,數據集來自於一組醫學數據,其中變量conc表示麻醉劑的用量,move則表示手術病人是否有所移動,而我們用nomove做為因變量,因為研究的重點在於conc
  • (案例)線性/非線性回歸分析Matlab算例
    >一元線性回歸分析% 一元回歸x=[1097 1284 1502 1394 1303 1555 1917 2051 2111 2286 2311 2003 2435 2625 2948 3055 3372];%自變量時間序列數據y=[698 872 988 807 738 1025 1316 1539 1561 1765
  • 案例:回歸分析-R實現
    2)分析:由於牙膏是生活必需品,對於大多數顧客來說,在購買時,更多地考慮不同品牌之間的價格差。所以,在研究各個因素對銷量的影響時,用價格差代替公司銷售價格和其他品牌平均價格更為合適。Y : 牙膏銷售量;X1:價格差;X2:公司廣告費###導入數據toothpaste<-data.frame(X1=c(-0.05, 0.25,0.60,0
  • 【R案例】邏輯回歸及應用
    案例2:一個研究者可能會對GRE(研究生入學考試成績)、GPA(大學平均績點),以及研究生學院的名譽感興趣,因為它們影響學校的招生問題。這裡,我們用允許/不允許這個二進位結果表示其因變量。 數據的描述對於我們接下來要進行的數據分析來說,我們要對案例2的入學問題進行深入的探討。我們有了通常情況下假設所產生的數據,而它們可從R的相關網站得到。
  • 逐步回歸法介紹及應用
    二、逐步型選元法逐步回歸法選擇變量的過程包含兩個基本步驟:一是從回歸模型中剔出經檢驗不顯著的變量,二是引入新變量到回歸模型中,常用的逐步型選元法有向前法和向後法。向前法:向前法的思想是變量由少到多,每次增加一個,直至沒有可引入的變量為止。具體步驟如下。
  • R語言邏輯回歸分析
    如何進行邏輯回歸分析邏輯回歸是當y=f(x),而y為分類變量的時候的邏輯曲線擬合的方法。
  • SPSS多元線性回歸案例:回歸分析方法實戰
    回歸分析是一種預測性的建模技術,它研究的是因變量(目標)和自變量(預測器)之間的關係。這種技術通常用於預測分析,時間序列模型以及發現變量之間的因果關係。使用曲線/線來擬合這些數據點,在這種方式下,從曲線或線到數據點的距離差異最小。
  • 如何用邏輯回歸做數據分析?
    ,傳送門:如何用線性回歸做數據分析? 邏輯回歸應用於數據分析的場景主要有三種:下圖是之前講到的線性回歸模型的數據分布,線性回歸是用一條線來擬合自變量和因變量之間的關係,我們可以看到其輸出結果y是連續的。例如我們想預測不同用戶特徵對所使用產品的滿意分,可以採用線性回歸模型。
  • 用R進行Lasso regression回歸分析
    glmnet是由史丹福大學的統計學家們開發的一款R包,用於在傳統的廣義線性回歸模型的基礎上添加正則項,以有效解決過擬合的問題,支持線性回歸,邏輯回歸,泊松回歸,cox回歸等多種回歸模型,連結如下https://cran.r-project.org/web/packages/glmnet/index.html對於正則化,提供了以下3種正則化的方式
  • 大數據分析R中泊松回歸模型實例
    如果您知道如何以及何時使用泊松回歸,它可能是一個非常有用的工具。在大數據分析R中泊松回歸模型實例中,我們將深入研究泊松回歸,它是什麼以及R程式設計師如何在現實世界中使用它。