r语言 回归分析 分类变量_R语言 | 回归分析(二)
R語言
語言學與R語言的碰撞
Xu & Yang
PhoneticSan
學習參考
Discovering Statistics Using R
Statistics for Linguistics with R
How to Do Linguistics with R
R in Action
Analyzing Linguistic Data
R Graphics Cookbook
··· ···
Recap
相關是用來描述和測量兩個變量之間關系的統計分析方法,很多情況下是對沒有控制或操縱情況下變量的觀察。
根據關系的方向,相關可以分為正相關和負相關兩種類型。以此,我們可以繪制出一條直線來預測。
一個簡單的線性回歸由斜率和截距組成,記為Yi?= b0?+?b1Xi?+?εi,其中b0和b1被稱為回歸系數,εi被稱為殘差,是觀測到的數據到回歸線的距離。
使用R2可以判斷線性回歸模型的擬合優度,范圍在[0,1]浮動,越接近1說明擬合程度越好。
在R中使用lm( )函數可以實現回歸分析的建模,完成建模后使用summary( )函數查看建模結果,并使用anova( )函數與base model (null model)比較,如果有顯著性差異,說明我們添加的因素對因變量有影響。
R: The R Project for Statistical Computing
https://www.r-project.org/
RStudio:
https://rstudio.com/
R Project
Linguistics
1
?線性回歸的假設
上一期我們介紹了最基礎的線性回歸方式,并了解到了lm( )函數的使用方法。通過寫相關代碼我們了解到,線性回歸分析本質上是不斷添加參數以和無參數的null model (base model)進行比較,從而檢驗自變量是否對因變量有影響。與其他假設檢驗一樣,當你在進行線性回歸分析前,要注意它們能順利進行的三個前提假設,包括線性(linearity)、殘差正態性(normality of residuals)、殘差的方差齊性(homoscedasticity of residuals),下面我們對這三個方面進行解釋。
線性回歸分析的三個假設
首先是線性,實際上這個問題我們在前面也提到過,也很顯而易見:「線性」回歸分析,如果變量之間的相關性不是線性的,你就不能使用線性回歸分析了。這個假設不需要額外地檢驗,在我們進行線性回歸模型擬合的時候,采用了R2來判斷擬合優度。如果R2接近0,說明我們的擬合并不好,也側面說明我們的數據并不是線性相關。
線性回歸要求必須線性相關
第二個要求是殘差正態性,即殘差的分布必須服從正態分布。需要注意的是,這里的正態分布要求不是數據本身,而是殘差。如何得到殘差?我們不需要進行計算,在使用lm( )函數的過程中,R就已經為我們計算好了殘差,只要直接調用即可。檢驗正態分布的方法與之前提到的一樣,使用Q-Q圖或者shapiro.test( )函數都可以。我們以上一期的english數據為例,回顧一下建模過程。
# 加載languageR包library(languageR)# 建立線性回歸模型eng.m data=english)# QQ圖檢驗正態分布qqnorm(eng.m$residuals)# Shapiro-Wilk檢驗shapiro.test(eng.m$residuals)正態分布檢驗示意
最后是殘差的方差齊性。可能很多人會疑問,我們的回歸分析大部分一個自變量只對應一個因變量,怎么計算方差?要注意,我們這里提到的方差齊性,指的是「殘差」而不是原始數據。如果以殘差為縱坐標,自變量為橫坐標繪制散點圖,它的分散比較均勻,殘差沒有出現隨著自變量的變化而變化,那么說明方差是齊性的。反之,則說明反差的方差不是齊性的。
殘差的方差齊性
如何檢驗回歸分析中殘差的方差齊性?我們可以借用car包中的ncvTest( )函數或spreadLevelPlot( )函數進行檢驗,前者與shapiro.test( )函數一樣,直接輸出結果,如果出現顯著性差異,則說明方差不是齊性的。后者則與Q-Q圖一樣會輸出最佳擬合曲線的擬合值與殘差絕對值的散點圖,如果點沒有均勻分布在水平線上下,則說明方差不是齊性的。我們以eng.m為例,那么如下:
# 加載car包library(car)# 使用ncvTest函數檢驗方差齊性ncvTest(eng.m)# 使用spreadLevelPlot檢驗方差齊性spreadLevelPlot(eng.m)通過檢驗結果可以看到,我們上次的數據并不具有方差齊性,因此我們需要考慮不能使用線性回歸分析進行檢驗。
方差齊性檢驗
綜上所述,在進行線性回歸分析的時候,我們主要的步驟是:建立線性回歸模型,查驗模型是否符合三個前提假設;創建null model;對兩個模型進行假設檢驗。
線性回歸分析基本步驟
現在,我們了解了最基礎的線性回歸分析方法。但是顯而易見的是,我們的語言研究中并不可能只有一個因素對因變量有影響,我們可以在有多個預測變量對情況下,對實驗數據進行回歸分析嗎?答案是肯定的,這時候我們需要采用的方法叫做多元回歸分析(multiple regression analysis)。
R Project
Linguistics
2
?多元回歸分析
在面對多于一個預測變量的情況下,我們使用的方法被稱作多元回歸分析。它與簡單的線性回歸分析原理是一樣的,不同之處在于,對于每一個額外的(多出來的)預測變量,我們都要賦予它們一個相關系數。那么,我們可以一直加需要的相關系數,那么我們的多元回歸分析的基本公式則是Y = b0+ b1X1+ b2X2+ ... + bnXn+ ε,每一個系數表示其對應的預測變量對因變量的影響,表現在圖上就是斜率的大小。
多元回歸分析示意(兩個預測變量)
多元回歸分析所使用的函數依舊是lm( )函數,我們繼續以languageR包中的english數據為例。上期我們考察了閱讀時間RTlexdec和書寫頻率WrittenFrequency之間的關系,假設我們認為LengthInLetters這一列的數據對RTlexdec可能也有影響,那么我們就直接使用?把這個因素加在后面即可,表示我要考慮該因素。為了進行比較,我們把null model、一個預測變量的模型、兩個預測變量的模型如下展示。
eng.base 1, eng.m.1 data=english)eng.m.2 data=english)進行擬合后,要記得查看擬合優度。這里我們假設擬合很不錯,我們的下一步就是進行檢驗分析,查看預測變量對因變量是否有影響。我們分為自下而上(bottom-up)和自上而下(top-bottom)兩種方式,前者是先將簡單的擬合模型進行比較,慢慢加預測變量,而后者與之相反,率先從最復雜的模型開始。我們以自下而上的方式為例,首先比較eng.base和eng.m.1,出現了顯著性差異,說明第一個預測變量WrittenFrequency對RTlexdec有顯著影響。接著我們繼續加一個預測變量,比較eng.m.1和eng.m.2,發現并沒有出現顯著性差異,這說明第二個預測變量對因變量沒有出現影響。我們也可以直接把它們放在一起,即anova(eng.base, eng.m.1, eng.m.1)也是可以的。
多元回歸的分析檢驗
最后,我們需要指出,既然出現了多個變量,那么我們就要考慮主效應和交互效應的問題。如何把兩個預測變量的交互效應考慮進多元回歸分析中?以english為例,我們可以這樣進行建模。
eng.m.3 <- lm(RTlexdec ~ WrittenFrequency + LengthInLetters + WrittenFrequency : LengthInLetters, data = english)其中的WrittenFrequency : LengthInLetters意味著我們考察的是它們的交互效應。建立好模型后,繼續使用anova( )分析結果,有沒有顯著性差異呢?這里就留待你自己運行代碼查看了。
之前我們談到的所有預測變量,全部是連續型預測變量,而有一些研究涉及到的是分類型變量。比如,動詞詞組或名詞詞組這樣的短語類型對閱讀時長的影響,這時候我們的預測變量則變成了分類型,還可以繼續使用回歸分析嗎?如果輸出結果是分類型變量,也可以回歸分析嗎?答案是可以。這一期講了很多,所以這些問題留待下一期進行詳細解釋。
—END—
排版:Xu & Yang
總結
以上是生活随笔為你收集整理的r语言 回归分析 分类变量_R语言 | 回归分析(二)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 深圳买车上牌流程
- 下一篇: MySQL数据库中怎么实现加密