本文主要介紹以下內(nèi)容:
R語言中線性回歸方程擬合函數(shù)lm()Lm()是R語言中擬合線性回歸函數(shù)。官方文檔對他的用法解釋是這樣的: 官方文檔用法解釋 官方文檔參數(shù)比較多,明明同學(xué)感覺沒有必要研究那么多,這里明明同學(xué)講解最常用的方法即: lm(formula, data) formula:表示你要擬合的公式,一般有以下幾種 公式中特殊符號表達(dá)的含義為: Data:你要擬合的數(shù)據(jù)集 下面明明同學(xué)以一元線性的例子為大家介紹如何使用R語言做回歸分析(本部分?jǐn)?shù)據(jù)為UsingR包里面的父親身高和兒子身高數(shù)據(jù))。 一元線性回歸這是最簡單的回歸形式,用于確定兩個變量之間的關(guān)系。也就是說,給定一個變量,回歸告訴我另外一個變量的期望值是多少。分析中所形成的這種關(guān)系稱為回歸模型,其中以一條直線方程表明兩個變量依存關(guān)系的模型叫做一元線性模型也稱為簡單的線性回歸。其主要步驟包括:建立回歸模型、求解回歸模型中的參數(shù)、對回歸模型進(jìn)行檢驗(yàn)。 UsingR包里面的父親身高和兒子身高數(shù)據(jù)(單位英尺) 用ggplot2包的ggplot函數(shù)做散點(diǎn)圖查看數(shù)據(jù)大致趨勢 R語言代碼 父親身高和兒子身高散點(diǎn)圖 從圖中可以看出數(shù)字大致成直線分布,此時用ggplot2包中的geom_smooth(method='lm')為圖形添加線性回歸直線查看直線位置和走勢。 添加回歸模型之后的圖 到此我們把回歸模型的圖做出來了,但是這個圖并沒有把結(jié)果提供給我們,所以我們在R語言中用lm()函數(shù)來實(shí)際計(jì)算回歸方程。過程如下圖 從圖結(jié)果中紅色框框可以看出擬合的模型截距項(xiàng)為33.886,fheight的系數(shù)為0.51409。所以擬合的方程結(jié)果為sheight = 0.51409fheight + 33.886。從結(jié)果中還可以看出R2為0.2513,F(xiàn)檢驗(yàn)值為361.2自由度為(1,1076),系數(shù)P檢驗(yàn)值和模型P檢驗(yàn)值都小于0.05,于是在α=0.05水平處拒絕H0,接受H1,即本例回歸系數(shù)有統(tǒng)計(jì)學(xué)意義,兩個變量之間有顯著的回歸關(guān)系。 使用plot(模型擬合結(jié)果)查看模型擬合圖 Q-Q圖 正態(tài)性當(dāng)預(yù)測變量值固定時,因變量成正態(tài)分布,則殘差值也應(yīng)該是一個均值為0的正態(tài)分布。正態(tài)Q-Q圖(Normal Q-Q,右上)是在正態(tài)分布對應(yīng)的值下,標(biāo)準(zhǔn)化殘差的概率圖。若滿足正態(tài)假設(shè),那么圖上的點(diǎn)應(yīng)該落在呈45度角的直線上;若不是如此,那么就違反了正態(tài)性的假設(shè)。 模型Q-Q圖 殘差圖與擬合圖 變量之間線性是否好,在'殘差圖與擬合圖'( Residuals vs Fitted)中如果是一條直線說明變量之間線性關(guān)系很好。 模型殘差圖與擬合圖 位置尺度圖 同方差性若滿足不變方差假設(shè),那么在位置尺度圖(Scale-Location Graph)中,水平線周圍的點(diǎn)應(yīng)該隨機(jī)分布 庫克距離 用來查看數(shù)據(jù)是否有異常點(diǎn),一般指有著很大殘差(絕對值)的點(diǎn),如果對模型的參數(shù)估計(jì)值影響出現(xiàn)了比例失衡,那么我們稱之為強(qiáng)影響點(diǎn)。庫克距離能夠查看異常點(diǎn)的分布。 R語言廣義線性模型glm()函數(shù)廣義線性模型現(xiàn)實(shí)生活中并非所有的數(shù)據(jù)都適合用線性回歸模型,像二項(xiàng)分布(真/假)數(shù)據(jù)、計(jì)數(shù)數(shù)據(jù)或者其他的數(shù)據(jù)形式都不適合。為了模擬這些類型的數(shù)據(jù)、發(fā)展了廣義線性模型。 廣義線性模型glm(): glm(formula , family=gaussian , data,…) formula:的寫法可以參考lm()函數(shù),公式寫法是一樣的。 Family 為分布族,包括正態(tài)分布(gaussian)、二項(xiàng)分布(binomial)、泊松分布(poisson)和伽馬分布(gamma),分布族還可以通過選項(xiàng)Link = 來指定使用的鏈接函數(shù)。 常用的鏈接函數(shù): 二項(xiàng)族里有l(wèi)ogit 、probit 、 cauchit 、 log 、 cloglog ;伽馬族有inverse、identify、log;泊松族有l(wèi)og、identify、和sqrt。 Data 是數(shù)據(jù)框 實(shí)例: 我們對45名駕駛員調(diào)查結(jié)果進(jìn)行如下統(tǒng)計(jì): x1 : 表示視力狀況,是一個分類變量,1表示好,0表示有問題; x2 : 年齡,數(shù)值型 x3 : 駕車教育,分類變量 1表示參加過駕車教育 , 0 表示沒有 y :分類變量 表示去年是否出過事故 , 1表示出過事故 , 0表示沒有 45名駕駛員調(diào)查結(jié)果 我們這里考查前三個變量x1 , x2 , x3與發(fā)生事故的關(guān)系 這里用邏輯斯蒂進(jìn)行回歸擬合 由結(jié)果可知,x2 和 x3并沒有通過檢驗(yàn),下一步用step()函數(shù),逐步回歸在進(jìn)行變量的篩選。 看出最終只有變量x1入選模型。然后對模型就行預(yù)測,即對視力正常的和視力有問題的司機(jī)分別作預(yù)測,即預(yù)測發(fā)生交通事故的概率。 由此可見眼睛有問題的司機(jī)的交通事故率是眼睛正常的司機(jī)交通事故率的差不多兩倍。 下次明明同學(xué)給大家講解如何在R語言中輕松實(shí)現(xiàn)判別分析。 查看歷史文章學(xué)習(xí)更多數(shù)據(jù)分析技巧、EXCEL和PPT使用技巧 有任何問題可以私信明明同學(xué),幫助你解決數(shù)據(jù)分析的難處。 |
|