• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    線性回歸分析的R方法

    2020-11-05 11:12:36
    關(guān)鍵詞:回歸方程方差殘差

    王 曉 剛

    (揚州職業(yè)大學(xué), 江蘇 揚州 225009)

    R語言是一種廣泛用于統(tǒng)計分析與數(shù)據(jù)挖掘的、開源而且完全免費的語言,用戶可以通過R的網(wǎng)站得到最新版本的R和來自全世界愛好者貢獻的近萬個用于不同計算的R包及相關(guān)使用說明。R操作界面是字符界面,啟動后出現(xiàn)R的命令提示符是“>”,用戶可以在這里與R交互對話,也可事先建立程序的腳本文件,事后通過菜單“文件運行腳本文件…”運行。雖然在R社區(qū)中可以查找到R的幾乎所有操作指南,但是信息分散且不成體系。因此,文章針對線性回歸分析符合基本假設(shè)的情況,借助具體例題,總結(jié)在R環(huán)境下的回歸分析過程。

    1 R的基本數(shù)據(jù)類型與基本運算

    有兩項操作首先值得一提:一是在菜單“文件改變工作目錄…”下改變R的工作目錄,這樣對工作目錄文件之下的文件進行操作時可以不需要指定文件路徑;二是可以在菜單“程序包安裝程序包…”下安裝必要的程序包[1]。

    1.1 R的基本運算

    在回歸分析中,簡單的四則運算及開方、指數(shù)及對數(shù)等運算是必須的,下面列舉部分操作示例。

    >2+3

    #求2與3的和;

    >2^10

    #求2的10次方;

    >sqrt(1024)

    #求1024的算術(shù)平方根;

    >exp(2)

    #求冪e2;

    >log(10)

    #求ln10。

    其中“>”是命令提示符號,“#”是左側(cè)命令的操作或功能說明。

    1.2 向量及有關(guān)運算

    向量是R中樣本數(shù)據(jù)較為常見的組織方式,生成向量的命令函數(shù)是c(),“<-”表示賦值,也可用等號“=”表示賦值。以下給出的是向量的生成、向量的常見運算及基本統(tǒng)計指標的計算示例如下:

    >x<-c(2.3, 3,5, 7.0, 12, 21.7, 32)

    #通過函數(shù)c()建立向量并賦值給變量x;

    >z=x+y

    #向量x與y對應(yīng)元素相加賦給變量z;

    > x*y

    #向量x與y元素對應(yīng)相乘;

    >2*x

    #向量x每一元素與2相乘;

    >x^2

    #向量x每一元素平方;

    >min(x)

    #求x的最小值;

    >mean(x)

    #求x的算術(shù)均值;

    >sd(x)

    #求x的標準差;

    >a=rbind(x,y)

    #以x,y元素為行組成矩陣并賦給a。

    1.3 產(chǎn)生有規(guī)律的序列

    產(chǎn)生有規(guī)律的序列也是回歸分析過程的常見操作,以下是一些有代表性的示例。

    >x=1:15

    #產(chǎn)生1到15等差數(shù)列,公差為1;

    >x=seq(2,15,by=2)

    #產(chǎn)生2到15等差數(shù)列,公差為2;

    >x=seq(from=2,length=8,by=3.2)

    #產(chǎn)生首項為2,公差為3.2,項數(shù)為8的等差數(shù)列;

    >x=1:7;logic=x>3

    #判別向量x的元素是否大于3,將判別結(jié)果賦給邏輯logic。

    1.4 數(shù)據(jù)框及其使用

    數(shù)據(jù)框是R語言的一種數(shù)據(jù)結(jié)構(gòu),以矩陣的形式保存數(shù)據(jù),但不同的列可以是不同的數(shù)據(jù)類型。一個數(shù)據(jù)框相當于關(guān)系型數(shù)據(jù)庫中的一張二維表。數(shù)據(jù)框的建立有兩種方法,第一種方法是在命令行上通過函數(shù)data.frame()直接生成。由于回歸分析的數(shù)據(jù)量比較大,變量也比較多,一般不用此法。第二種方法是在其它軟件中輸入數(shù)據(jù),或者數(shù)據(jù)來源本身就是其它軟件的輸出結(jié)果,再讀取到R環(huán)境中處理。R有多種讀取數(shù)據(jù)文件的方法,其中較為簡單而實用的一種為:在較為普及的電子表格軟件Excel中輸入數(shù)據(jù),一個變量占一列,一條記錄占一行,將電子表格另存為“.csv(逗號分隔)”文件,如“file.csv”,存儲位置選擇當前工作目錄。下列命令則可以將“file.csv”讀取到R中并以數(shù)據(jù)框的形式賦給數(shù)據(jù)框變量df。

    >df=read.csv(“file.csv”)

    需要指出的是,電子表格軟件Excel最大行數(shù)與最大列數(shù)是有限制的。最新Excel 2010版本所允許的最大行號是1048576,最大列號是16384,這樣的容量雖然能夠滿足大部分的應(yīng)用需求,但也偶有例外,此時可以在“記事本”中將數(shù)據(jù)文件合并后再在R中讀入。

    生成數(shù)據(jù)框后,既可以對某一行整行或某一列整列引用,也可對數(shù)據(jù)框某一行和某一列交叉點的元素引用。如:

    >record2=df[2,] #將數(shù)據(jù)框df第2條記錄賦給變量record2,record2是一個向量;

    >variable4=df[,4] #將數(shù)據(jù)框df中第4個變量的所有值賦給變量variable4,variable4是一個向量。

    >height=df[2, 4] #將數(shù)據(jù)框df第2條記錄第4個變量的值賦值給變量height。

    2 一元線性回歸的R方法

    一元經(jīng)性回歸分析包括回歸系數(shù)估計、假設(shè)檢驗、回歸診斷與應(yīng)用三個部分,現(xiàn)舉例說明如下。

    2.1 回歸系數(shù)與假設(shè)檢驗

    例1 表1列出了15起火災(zāi)事故的損失及火災(zāi)發(fā)生地與最近的消防站的距離。

    表1 火災(zāi)損失表

    試求直線回歸方程并作假設(shè)檢驗。[2]17

    將表1在Excel中轉(zhuǎn)置存放,以文件名“file1.CSV”另存為工作目錄中。執(zhí)行下列命令:

    >df=read.csv(“file1.csv”)

    #讀入數(shù)據(jù)文件,生成數(shù)據(jù)框df

    >x=df[,2]; y=df[,3]

    #提取df的兩列數(shù)據(jù)分別賦值給兩個向量

    >lm.sol=lm(y~1+x)

    #執(zhí)行回歸分析命令,分析報告賦給lm.sol

    >summary(lm.sol)

    #在終端顯示lm.sol

    >plot(x,y);abline(lm.sol)

    #作散點圖并作擬合的回歸直線見圖1

    系統(tǒng)輸出如下:

    Call:

    lm(formula=y~1+x)

    #模型形式

    Residuals:

    #殘差的五數(shù)總括

    Coefficients:

    #回歸系數(shù)的估計與顯著性概率

    Estimate Std.Error tvalue Pr(>|t|)

    (Intercept) 10.2779 1.4203 7.237 6.59e-06***

    #回歸常數(shù)的估計與顯著性概率

    x km 4.9193 0.3927 12.525 1.25e-08***

    #回歸系數(shù)的估計與顯著性概率

    Residual standard error: 2.316 on 13 degrees of freedom

    #殘差標準差及其自由度

    Multiple R-squared: 0.9235, Adjusted R-squared: 0.9176

    #決定系數(shù)及修正決定系數(shù)

    F-statistic: 156.9 on 1 and 13 DF, p-value: 1.248e-08

    #回歸方程方差分析的F值及顯著性概率

    結(jié)果表明,回歸方程是

    回歸系數(shù)假設(shè)檢驗顯著性概率與回歸方程方差分析的顯著性概率均為1.248×10-8,方程具有統(tǒng)計意義。

    2.2 回歸診斷

    對直線回歸方程的回歸診斷一般包括異常點檢測、異方差檢驗及自相關(guān)分析。

    2.2.1 異常點檢測

    例1的異常點檢測具體操作如下:

    >sre=rstandard(lm.sol)

    #提取學(xué)生氏殘差并賦值給向量sre

    >srelogic=abs(sre)>qt(0.975, length(x)-2);srelogic

    #根據(jù)t分布規(guī)律判別異常點,輸出TRUE則為異常點

    所有點的輸出均為FALSE,表明例1樣本的15個樣本點中,沒有異常點。

    2.2.2 異方差檢驗

    例1的異方差檢驗具體操作如下:

    >e=residuals(lm.sol)

    #提取殘差賦值給向量e

    >cor.test(x, abs(e),method=“spearman”)

    #對自變量x與殘差e的絕對值作等級相關(guān)分析

    結(jié)果顯示,自變量x與殘差e的絕對值之間的等級相關(guān)系數(shù)僅為0.114,顯著性概率為0.686>0.05,說明不存在異方差現(xiàn)象。

    2.2.3 自相關(guān)分析

    在檢驗直線回歸模型是否存在自相關(guān)現(xiàn)象,需要在回歸分析前對存儲數(shù)據(jù)的數(shù)據(jù)框的行記錄按自變量進行升序排序。例1的自相關(guān)檢驗具體操作如下:

    >df=read.csv(“file1.csv”)

    >dfo<-order(df [, “距消防站距離x.km.”])

    #計算df按x的行記錄升序索引號并賦值給向量dfo

    >df1=df [dfo,]

    #按升序索引排序后的記錄賦值給新數(shù)據(jù)框df1

    (1)自相關(guān)系數(shù)法

    >x=df1 [, 2]; y=df1 [, 3]; lm.sol=lm(y~1+x); e=residuals (lm.sol)

    >e1=e [1:14]; e2=e [2: 15]

    #e1與e2同位號的元素恰是殘差向量e前后相鄰的兩個元素

    >cor.test(e1,e2)

    #對相鄰兩點的殘差e1與e2作相關(guān)性檢驗

    結(jié)果顯示,相鄰兩點的殘差的相關(guān)系數(shù)僅為-0.186,顯著性概率為0.523> 0.05,說明模型不存在自相關(guān)現(xiàn)象。

    (2)DW檢驗

    Durbin-Watson檢驗簡稱為DW檢驗,是關(guān)于小樣本的一種檢驗方法[3]。對于大樣本量,該算法可能無法計算p值。在這種情況下,將打印警告并給出近似p值,該p值是使用具有檢驗統(tǒng)計量的均值和方差的正態(tài)近似計算的。

    DW檢驗的函數(shù)是dwtest(),該函數(shù)包括在第三方庫lmtest中,而且加載該模塊時需先首先加載R的時間序列基礎(chǔ)庫zoo。DW檢驗法也需要事先對存儲數(shù)據(jù)的數(shù)據(jù)框的行記錄按自變量排序。

    >library(zoo);library(lmtest) #加載第三方庫zoo與lmtest

    >df=read.csv(“file1.csv”);dfo<-order(df [, “距消防站距離x.km.”]); df1=df [dfo,]

    >x=df1 [, 2]; y=df1 [, 3]; lm.sol=lm(y~1+x)

    >dwtest(lm.sol)

    #對回歸分析報告lm.sol中的回歸模型作DW檢驗

    結(jié)果顯示,統(tǒng)計量DW值等于2.221,顯著性概率為0.555,與自相關(guān)系數(shù)的顯著性概率0.523相當,同樣表明模型不存在自相關(guān)現(xiàn)象。

    2.3 預(yù)測

    對于例1的模型,如果已知火災(zāi)地點與消防站的距離x0=7km,那么相應(yīng)的火災(zāi)損失y0可以用R來預(yù)測。

    >df=read.csv(“file1.csv”); x=df [, 2]; y=df [, 3]; lm.sol=lm(y~1+x)

    >x0=data.frame(x=7)

    #新自變量的值應(yīng)以1行1列的數(shù)據(jù)框形式輸入

    >y0=predict (lm.sol, x0, interval=“prediction”, leval=0.95); y0 #輸出為點估計值與置信區(qū)間,參數(shù)interval缺

    省,則不顯示置信區(qū)間,leval用來指定置信度

    結(jié)果顯示,火災(zāi)損失的點估計值是44.713千元,95%的置信區(qū)間是(38.657,50.769)(千元)。

    3 多元線性回歸的R方法

    下面舉例介紹多元線性回歸的R方法。

    例2 影響一個地區(qū)居民消費的因素有很多,本例選取某地區(qū)食品花費x1、服裝花費x2、職工平均工資x3、人均GDPx4、消費價格指數(shù)x5、失業(yè)率x6等9個解釋變量,研究城鎮(zhèn)居民家庭平均每人全年的消費性支出y。數(shù)據(jù)來源于2013年《中國統(tǒng)計年鑒》[2]65。數(shù)據(jù)文件為存儲于工作目錄的“file2.csv”。

    3.1 偏回歸系數(shù)及假設(shè)檢驗

    >df=read.csv (“file2.csv”); x1=df[, 2]; x2=df [, 3]; x3=df [, 4]; x4=df [, 5]; x5=df [, 6]; x6=df [, 7]

    >x7=df [, 8]; x8=df [, 9]; x9=df [, 10]; y=df [, 11]

    >lm.sol=lm (y ~ 1+x1+x2+x3+x4+x5+x6+x7+x8+x9); summary (lm.sol)

    系統(tǒng)輸出與一元線性回歸的輸出基本類似。輸出結(jié)果顯示,變量x1,x2,x3,x5對y的影響具有顯著性意義,而x4,x6,x7,x8,x9對y的影響不具有顯著性?;貧w方程方差分析的顯著性概率小于2.2×10-16,回歸方程是:

    具有統(tǒng)計意義,決定系數(shù)0.9923,修正的決定系數(shù)0.9889。總的來說這一模型并不理想,可能與自變量太多或自變量之間存在顯著的相關(guān)性有關(guān)。下面采取逐步回歸的方法改進模型。

    3.2 逐步回歸

    >lm.step=step (lm.sol, direction=“both”);summary (lm.step)

    #系統(tǒng)將輸出逐步回歸的中間步驟,下面只給出最終結(jié)果

    Call:

    lm(formula=y ~ x1+x2+x3+x5)

    Residuals:

    Residual standard error: 364 on 26 degrees of freedom

    Multiple R-squared: 0.9916, Adjusted R-squared: 0.9903

    F-statistic: 769.2 on 4 and 26 DF, p-value: <2.2e-16

    3.3 殘差分析

    3.3.1 異常點檢測

    >sre=rstandard (lm.step)

    >srelogic=abs (sre)>qt (0.975, length (y)-4-1); srelogic

    #按0.05雙側(cè)t界值判斷,第17個樣本點是異常點

    >srelogic=abs (sre)>qt (0.995, length (y)-4-1); srelogic

    #按0.01雙側(cè)t界值判斷,沒有異常點

    3.3.2 異方差檢驗

    >e=residuals (lm.step)

    >y.fit=predict(lm.step)

    #計算每一個樣本點的因變量的估計值存儲于向量y.fit

    >cor.test (y.fit,abs (e), method=“spearman”)

    #對因變量的估計值與殘差e的絕對值作等級相關(guān)分析

    多元線回歸模型的異方差檢驗是通過檢驗因變量的擬合值y.fit與殘差的絕對值abs(e)的等級相關(guān)性進行分析。結(jié)果顯示,等級相關(guān)系數(shù)是0.25,顯著性概率是0.174>0.05,所以該模型沒有異方差現(xiàn)象。

    3.3.3 自相關(guān)檢驗

    檢驗多元回歸模型是否存在自相關(guān)現(xiàn)象,同樣需要在回歸分析前對存儲數(shù)據(jù)的數(shù)據(jù)框的行記錄進行排序,一般按因變量升序排序。

    >df=read.csv(“file2.csv”);dfo<-order(df[,“y”]);df1=df[dfo,]

    >x1=df1[,2];x2=df1[,3];x3=df1[,4];x4=df1[,5];x5=df1[,6];x6=df1[,7];x7=df1[,8]

    >x8=df1[,9];x9=df1[,10];y=df1[,11]

    >lm.sol=lm(y~1+x1+x2+x3+x4+x5+x6+x7+x8+x9);lm.step=step(lm.sol,direction=“both”)

    >e=residuals(lm.step);e1=e[1:30];e2=e[2:31]

    >cor.test(e1, e2)

    結(jié)果顯示,相鄰兩點的殘差的相關(guān)系數(shù)僅為0.169,顯著性概率為0.371>0.05,說明該模型不存在自相關(guān)現(xiàn)象。

    另一方面

    >library (zoo); library (lmtest); dwtest (lm.step)

    結(jié)果顯示,統(tǒng)計量DW值等于1.611,顯著性概率為0.106,同樣表明模型不存在自相關(guān)現(xiàn)象。

    3.4 預(yù)測

    如果某地區(qū)居民的食品花費x1=5000元、衣著花費x2=1500元、居住花費x3=1000元、文教娛樂花費x5=1400元,那么可以預(yù)測該地區(qū)居民消費支出。

    >x0=data.frame(x1=5000,x2=1500,x3=1000,x5=1400)

    >y0=predict(lm.step,x0,interval=“prediction”,leval=0.95);y0

    #輸出為點估計值與置信區(qū)間,參數(shù)interval缺省

    結(jié)果顯示,該地區(qū)居民消費支出點估計值為12507.17元,95%的置信區(qū)間為(11709.78,13304.56)(元)。

    4 結(jié)語

    文章僅僅討論符合基本假設(shè)情形下的回歸分析過程。當違背基本假設(shè)時,諸如出現(xiàn)異常點、存在異方差現(xiàn)象或存在自相關(guān)現(xiàn)象時應(yīng)該如何處理,以及回歸分析的其它內(nèi)容,因為篇幅關(guān)系,筆者將另文撰述。

    猜你喜歡
    回歸方程方差殘差
    方差怎么算
    基于雙向GRU與殘差擬合的車輛跟馳建模
    概率與統(tǒng)計(2)——離散型隨機變量的期望與方差
    采用直線回歸方程預(yù)測桑癭蚊防治適期
    線性回歸方程的求解與應(yīng)用
    線性回歸方程要點導(dǎo)學(xué)
    基于殘差學(xué)習(xí)的自適應(yīng)無人機目標跟蹤算法
    基于遞歸殘差網(wǎng)絡(luò)的圖像超分辨率重建
    計算方差用哪個公式
    走進回歸分析,讓回歸方程不再是你高考的絆腳石
    平山县| 新化县| 白城市| 景谷| 甘泉县| 定远县| 梨树县| 紫云| 安塞县| 柘城县| 寿光市| 永新县| 泊头市| 定结县| 顺昌县| 托克托县| 景洪市| 霍山县| 石嘴山市| 恩施市| 耿马| 肥乡县| 五莲县| 通州区| 沁阳市| 许昌市| 蚌埠市| 油尖旺区| 河北区| 常宁市| 崇礼县| 吴江市| 会理县| 东乌| 佳木斯市| 盐边县| 南澳县| 蓬莱市| 茂名市| 日土县| 长沙市|