R語言_018回歸

2021-01-14 Lin王發林

  回歸分析是統計學的核心。它其實是一個廣義的概念,指那些用一個或多個預測變量來預測響應變量的方法。通常,回歸分析可以用來挑選與響應變量相關的解釋變量,可以描述兩者的關係,也可以生成一個等式,通過解釋變量來預測響應變量。


  下面介紹如何用R函數擬合OLS回歸模型、評價擬合優度、檢驗假設條件以及選擇模型,為了能夠恰當地解釋OLS模型的係數,數據必須滿足以下統計假設↓

  如果違背了以上假設,統計顯著性檢驗結果和所得的置信區間就很可能不精確了。而現在機器學習中的回歸都完全忽略了這一點,它認為現在的數據都是大數據了,其實,很多時候我們得到的不是所謂的大數據。


  在R中,擬合線性模型最基本的函數就是lm(),格式為:

  其中,formula指要擬合的模型形式,data是一個數據框,包含了用於擬合模型的數據。結果對象存儲在一個列表中,包含了所擬合模型的大量信息。

表達式(formula)形式如下↓

Y ~ X1 + X2 + ... + Xk

~ 左邊為響應變量,右邊為各個預測變量,預測變量之間用 + 符號分隔。


  擬合模型後,將這些函數應用於lm()返回的對象,可以得到更多額外的模型信息。

summary():展示擬合模型的詳細結果coefficients():列出擬合模型的模型參數(截距項和斜率)confint():提供模型參數的置信區間(默認95%)fitted():列出擬合模型的預測值residuals():列出擬合模型的殘差值anova():生成一個擬合模型的方差分析表,或者比較兩個或更多擬合模型的方差分析表vcov():列出模型參數的協方差矩陣AIC():輸出赤池信息統計量plot():生成評價擬合模型的診斷圖predict():用擬合模型對新的數據集預測響應變量值


  當回歸模型包含一個因變量和一個自變量時,我們稱為簡單線性回歸。

  當只有一個預測變量,但同時包含變量的冪時,我們稱為多項式回歸。

  當有不止一個預測變量時,則稱為多元線性回歸。


  先從一個簡單的線性回歸例子開始,然後逐步展示多項式回歸和多元線性回歸↓


【簡單線性回歸】

  數據準備,數據還是模擬電商的交易數據。

setwd("E:/R/基礎/data")library(xlsx)df = read.xlsx("模擬相關數據.xlsx",1,encoding = "UTF-8")


fit <- lm(訂單數 ~ UV, data=df)summary(fit)

  通過輸出結果,可以得到預測等式:每日訂單數=19.4+0.0236*每日UV數,相當於,每增加42個UV數,就能帶來一個新的訂單。因為沒有用戶登錄就不可能有訂單,所以沒必要給截距項一個物理解釋,它僅僅是一個常量調整項;在Pr(>|t|)欄,可以看到回歸係數顯著不為0(p<0.001);R平方項(0.6987)表明模型可以解釋69.87%的方差,它也是實際和預測值之間相關係數的平方;


擬合模型的預測值


擬合模型的殘差值


plot(df$UV,df$訂單數,     xlab="每日UV數",     ylab="每日訂單數")abline(fit,col='red',lwd=2)


【多項式回歸】

fit2 <- lm(訂單數 ~ UV + I(UV^3),               data=df)

  I(UV^3) 表示向預測等式添加一個UV的立方項。先試了一下平方項,發現3次項擬合效果更好。

  新的預測等式為:每日訂單數=68.32+9.602e-03*每日UV數+1.389e-10*每日UV數的平方。

plot(df$UV,df$訂單數,     xlab="每日UV數",     ylab="每日訂單數")lines(df$UV,fitted(fit2),col='#0AC941',lwd=2)


【多元線性回歸】

  當預測變量不止一個時,簡單線性回歸就變成了多元線性回歸,分析也稍微複雜些。多元回歸分析中,第一步最好檢查一下變量間的相關性。cor()函數提供了二變量之間的相關係數,car包中scatterplotMatrix()函數則會生成散點圖矩陣。scatterplotMatrix() 函數默認在非對角線區域繪製變量間的散點圖,並添加平滑和線性擬合曲線。對角線區域繪製每個變量的密度圖和軸須圖。

df1 <- df[,c(1:7)]cor(df1)


使用lm()函數擬合多元線性回歸模型

fit <- lm(銷售金額 ~ 訂單數 + 單均價 + UV + 轉化率 + 賣家數量,          data=df)summary(fit)

  可以看到,影響銷售金額的主要因素是訂單數、單均價和賣家數量。而這裡顯示UV和轉化率對銷售金額影響不顯著,這明顯是不符合常理的。而UV和轉化率對訂單數影響很顯著,然後通過訂單數影響銷售金額。


fit1 <- lm(訂單數 ~UV + 轉化率 + 賣家數量,              data=df)summary(fit1)

結果是這樣↓

  每增加一筆訂單,金額增加356元;

  單均價增加1元,金額增加116元;

  賣家數量增加1家,金額增加489元。


  賣家數量增加很難,就要想辦法增加訂單數和單均價,而訂單數與UV和轉化率關係很大,UV數每增加1000個,訂單數可以增加24個,金額增加8544萬元;而轉化率每增加0.1%,訂單數增加418筆。

  所以拉新、留存很重要,運營也很重要。

相關焦點

  • r語言一元回歸模型專題及常見問題 - CSDN
    一元線性回歸分析首先介紹回歸分析中最基礎的情況:一元線性回歸分析。它規定模型f函數只能是y=k*x+b的形式,即只使用一個變量x(故稱為一元)的線性形式來預測目標變量y。6.1.1引例利用某網站歷次促銷活動中促銷讓利費用和銷售金額的數據(單位是十萬元),將使用該數據集來說明線性回歸分析的應用。
  • R 語言 lasso回歸
    接下來以線性回歸為例介紹其在R語言中的實現,當然在logistic回歸、cox回歸也是可用lasso的。
  • R語言從入門到精通:Day12--R語言統計--回歸分析
    回歸作為一個廣義的概念,涵蓋了許多變種,R語言中也為其提供了強大而豐富的函數和選項(但顯然選項越多,對初學者越不友好),早在2005年,R中就有200多種關於回歸分析的函數 (https://cran.r-project.org/doc/contrib/Ricci-refcard-regression.pdf,這個文檔提供了部分回歸分析函數列表,供大家參考)。
  • R語言實現LASSO回歸模型
    我們知道廣義線性模型包括了一維連續因變量、多維連續因變量、非負次數因變量、二元離散因變量、多元離散因變等的回歸模型。然而LASSO對以上的數據類型都適合,也可以說LASSO 回歸的特點是在擬合廣義線性模型的同時進行變量篩選(variable selection)和複雜度調整(regularization)。
  • r語言的p值檢驗 - CSDN
    輸入1: rdata = matrix(rnorm(1000* 6, 0, 3), 6) rvar = apply(rdata, 2, var) mean(rvar)結果1: [1] 8輸入2: var(rvar)結果2: [1] 32=2*81/5輸入3:
  • R語言——交叉驗證法計算線性回歸模型擬合優度的第三種R方
    本來打算這周繼續更新一篇LaTex的小短文,但是貌似我已經很久沒有寫R語言相關的東西了。想來想去,今天就寫一篇和R語言有關的,畢竟不能忘記初心呀!凡是學過計量的同學,哪怕只記得一點點皮毛,對於R方和調整R方也應該是再熟悉不過了。R方和調整R方是判斷回歸模型擬合度的最為方便簡單的指標,一般來說,數值越大代表模型的擬合度越好。
  • r語言 做wald檢驗_r語言wald檢驗怎麼做 - CSDN
    用R語言遇到的一些問題。經常看到rcs()函數,比如擬合回歸時:f <- cph(S ~ rcs(age,4) + sex, x=T, y=T)。
  • 醫學統計與R語言:GiViTI Calibration Belt
    https://cran.r-project.org/web/packages/givitiR/vignettes/givitiR.htmlNattino, G., Finazzi, S., & Bertolini, G. (2016).
  • r語言 多元回歸模型_r語言多元回歸模型殘差分析 - CSDN
    1、多元線性回歸模型1.1多元回歸模型與多元回歸方程設因變量為y,k個自變量分別為,描述因變量y如何依賴於自變量和誤差項ε的方程稱為多元回歸模型。其一般形式可表示為:式中,為模型的參數,ε為隨機誤差項。
  • R語言數據分析(二)回歸分析(4)
    多元線性回歸例題例:某品種水稻糙米含鎘量y(mg/kg)與地上部生物量x1(10g/盆)及土壤含鎘量x2(100mg/kg)的8組觀測值如表2.1。試建立多元線性回歸模型。或者使用逐步回歸方法,讓軟體自動保留通過檢驗的變量。 多元回歸:非線性建立多元非線性回歸方程在科學研究中應用廣泛,其重要方法是將非線性回歸方程轉化為線性回歸方程。轉化時應首先選擇適合的非線性回歸形式,並將其線性化。再確定線性化回歸方程的係數,最後確定非線性回歸方程中未知的係數或參數。
  • 多元逐步回歸分析r方結果解釋_r語言多元回歸篩選變量逐步回歸分析...
    Minitab Express 1.5 for Mac 是一個強大的數據分析軟體,可以運行在Mac系統上軟體可以激活永久使用,支持語言英文;Minitab Express專為教學和學習介紹性統計而設計,包括概率分布
  • R語言-stringr-字符串處理
    單雙引號R語言中字符串輸入時,可以使用單引號,也可以使用雙引號。,不用轉義路徑複製和直接可用charchar <- r"(我是一名'R語言'學習者)"cat(char)常用函數截取字符串,匹配字符串,添加指定字符籌齊長度,去除左右兩邊空格,分割字符串,
  • r語言有什麼優劣勢及R語言的未來發展趨勢_R語言在現實中的應用
    正如Tiobe、PyPL以及Redmonk等程式語言人氣排名所指出,R語言所受到的關注程度正在快速提升。作為一款誕生於上世紀九十年代的語言,R已經成為S統計程式語言的一類實現方式。已經擁有十八年R編程經驗的高校教授兼Coursera在線平臺培訓師Roger Peng指出,「R語言已經成為統計領域最具人氣的語言選項」。
  • r語言tseries - CSDN
    tsdiag(m1) #對估計進行診斷,判斷殘差是否為白噪聲summary(m1)r=m1$residuals #用r來保存殘差Box.test(r,type=」Ljung-Box」,lag=6, fitdf=1)#對殘差進行純隨機性檢驗,fitdf表示殘差減少的自由度AutocorTest(m1$resid) #加載FinTS包
  • adf檢驗r語言分析_r語言adf檢驗 - CSDN
    首先回歸偽回歸例子:偽回歸Spurious regression 偽回歸方程的擬合優度、顯著性水平等指標都很好,但是其殘差序列是一個非平穩序列,擬合一個偽回歸: , 第二部:對該回歸方程的殘差(resid)進行單位根檢驗其中,原假設兩變量不存在協整關係,備擇假設是兩變量存在協整關係。
  • R語言arma模型診斷_arma模型實現模型r語言 - CSDN
    tsdiag(m1)  #對估計進行診斷,判斷殘差是否為白噪聲summary(m1)r=m1$residuals  #用r來保存殘差Box.test(r,type="Ljung-Box",lag=6, fitdf=1)#對殘差進行純隨機性檢驗,fitdf表示殘差減少的自由度
  • 獨家 | 手把手教你用R語言做回歸後的殘差分析(附代碼)
    本文介紹了做殘差分析的方法及其重要性,以及利用R語言實現殘差分析。在這篇文章中,我們通過探索殘差分析和用R可視化結果,深入研究了R語言。殘差本質上是當一個給定的模型(在文中是線性回歸)不完全符合給定的觀測值時留下的gap。醫學中的病理學發現的殘留分析是一個形象的比喻。人們通常用代謝殘留水平來作為衡量藥物吸收的指標。
  • 掌握R語言for循環一文就夠了(認真臉)
    嗨,大家好,我就是帥氣的小編~R語言是進行統計分析和可視化的優秀語言(其實機器學習和網頁製作也可以用R,小聲說~|ω`))R語言相信大家在利用R語言進行數據分析的時候可能會有大數據分析需求。R語言不考慮並行運算下的簡單批處理實現方式就是for循環。
  • 9 本優秀的 R 語言免費電子圖書
    R語言是主要用於統計分析、繪圖的語言和操作環境。 R本來是由來自紐西蘭奧克蘭大學的Ross Ihaka和Robert Gentleman 開發。
  • r 平穩性檢驗 語言_r語言平穩性檢驗方法 - CSDN
    首先回歸偽回歸例子:偽回歸Spurious regression 偽回歸方程的擬合優度、顯著性水平等指標都很好,但是其殘差序列是一個非平穩序列,擬合一個偽回歸: , 第二部:對該回歸方程的殘差(resid)進行單位根檢驗其中,原假設兩變量不存在協整關係,備擇假設是兩變量存在協整關係。