R語言|迴歸分析

這篇博客主要根據一次作業來總結r語言進行迴歸分析的步驟,真的是好記憶不如“爛筆頭”??長時間不用就會忘記。

迴歸方程:y=a+bx

r語言進行迴歸分析時,可以使用lm()函數進行;

#使用r語言進行迴歸和區間估計;
x<-c(0.25,0.37,0.44,0.55,0.60,0.62,0.68,
     0.70,0.73,0.75,0.82,0.84)
y<-c(2.57,2.31,2.12,1.92,1.75,1.71,1.60,
     1.51,1.53,1.41,1.33,1.31)
df<-data.frame(x=x,y=y)
#使用lm函數進行迴歸;
mylm<-lm(y~x,data=df)
#查看回歸情況;
summary(mylm)

結果:
Call:
lm(formula = y ~ x, data = df)

Residuals:
      Min        1Q    Median        3Q       Max 
-0.053728 -0.030345  0.005332  0.027644  0.053641 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  3.10057    0.03863   80.27 2.20e-15 ***
x           -2.19549    0.06066  -36.19 6.16e-12 ***
---
Signif. codes:  
0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.03659 on 10 degrees of freedom
Multiple R-squared:  0.9924,	Adjusted R-squared:  0.9917 
F-statistic:  1310 on 1 and 10 DF,  p-value: 6.161e-12

根據結果,迴歸係數a和b的估計爲3.10057,-2.19549;

因此,估計的迴歸方程爲:y=3.10057-2.19549x;

#迴歸係數a和b的95%置信區間;
confint.lm(mylm)
結果:
                2.5 %    97.5 %
(Intercept)  3.014508  3.186637
x           -2.330650 -2.060334

求置信區間,使用confint.lm()函數;

迴歸係數a的95%置信區間爲:\left [ 3.01508 \right 3.186637]

迴歸係數b的95%置信區間爲:\left [ -2.330650 \right -2.060334]

#使用迴歸函數對x進行預測;
pred<-data.frame(x)
test.pred<-predict(mylm,pred,interval = "prediction",leverl=0.95)
test.pred
結果:
        fit      lwr      upr
1  2.551699 2.453717 2.649682
2  2.288240 2.197277 2.379204
3  2.134556 2.046558 2.222554
4  1.893052 1.807779 1.978324
5  1.783277 1.698407 1.868147
6  1.739367 1.654508 1.824227
7  1.607638 1.522295 1.692980
8  1.563728 1.478054 1.649401
9  1.497863 1.411536 1.584190
10 1.453953 1.367088 1.540818
11 1.300269 1.210901 1.389637
12 1.256359 1.166106 1.346612

對給定x值,預測y,使用predict()函數;

#畫散點圖;
plot(x,y)
abline(mylm)
lines(x,test.pred[,3],lty="dashed",col="red")
lines(x,test.pred[,2],lty="dashed",col="red")
title(main="95% forecast band of Y")

紅色虛線是預測區間上限和下限。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章