R語言系列—回歸分析


         一元線形回歸模型:有變量x,y。假設有關系y=c+bx+e,其中c+bx 是y隨x變化的部分,e是隨機誤差。

         可以很容易的用函數lm()求出回歸參數b,c並作相應的假設檢驗,如:

x<-c(0.10, 0.11, 0.12, 0.13, 0.14, 0.15,0.16, 0.17, 0.18, 0.20, 0.21, 0.23)

y<-c(42.0, 43.5, 45.0, 45.5, 45.0, 47.5,49.0, 53.0, 50.0, 55.0, 55.0, 60.0)

lm.sol<-lm(y ~ 1+x)

summary(lm.sol)

僅列出部分返回結果:

Residuals:

  Min       1Q   Median    3Q     Max

-2.0431  -0.7056  0.1694  0.6633  2.2653

Coefficients:

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

(Intercept)   28.493      1.580   18.04    5.88e-09 ***

x            130.835      9.683   13.51 9.50e-08 ***

在我們的輸入中,關鍵是lm.sol<-lm(y ~ 1+x)的調用,這里可以看到,lm使用了參數y~1+x,即表示我們使用的是模型y=c+bx+e (1表示常數項)

然后我們使用summary查看了lm返回的結果。在Residuals:中,我們可以看到的是一些關於殘差的信息:最小最大值,4分位數等。Coefficients:中則是最為關鍵的對c和b的相關估計。其中Estimate是與b,c值的估計,Std. Error 則是回歸參數b和c的標准差:sd(b), sd(c)。剩下的兩個參數則是對回歸參數的假設檢驗: t value是對b,c進行假設檢驗的t值,以及P-值(用來與顯著性水平比較決定是否接受該阿假設檢驗)Pr(>|t|)。最后我們還可以看到3個* 號,這表明x和y有非常顯著的線性關系(*可以有0—3個,越多則線性關系越顯著)。

多元線形回歸的計算也是這樣,我們只要在加入一行數據x2,然后把lm的參數改為y ~ 1+x+x2,就可以得到模型y=d+cx2+bx+e的計算結果。其中返回值的意義和上面基本一致。

至此,我們就可以用R建立起一個簡單的線形模型,接下來,我們就要用這個模型去對新的x進行預測,預測y的值與置信區間。

接着上面的程序,我們先建立要預測的數據集:

point<-data.frame(x=0.24)

然后用函數predict進行預測

predict(lm.sol,point,interval="prediction",level=0.95)

返回結果

       fit      lwr      upr

1 59.89318 56.36215 63.42421

分別表示了y的預測值和上下界。

在函數predict中,參數lm.sol是之前建立的線形模型,point是要預測的點,參數interval="prediction"表示要求給出預測的區間(上下界),level則是該區間的預測水平。

下面給出一個多元線形回歸的完整程序:(不顯示結果)

y<-c(162,120,223,131,67,167,81,192,116,55,252,232,144,103,212)

x1<-c(274,180,375,205,86,265,98,330,195,53,430,372,236,157,370)

x2<-c(2450,3250,3802,2838,2347,3782,3008,2450,2137,2560,4020,4427,2660,2088,2605)

lm.sol<-lm(y~1+x1+x2)

ex<-data.frame(x1=200,x2=3000)

predict(lm.sol,ex,interval="prediction",level=0.95)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM