加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

多元回归分析(MultipleRegression)

(2018-05-24 00:42:51)
分类: 回歸分析

多元回归分析 (Multiple Regression)

 

1. 使用时机: 以多个独立自变项预测一个应变项。

 

2. 分析类型: 母数分析(parametric analysis)

 

3. 范例数据: 咪路测量菌菌的生长条件与菌数,资料如下表。咪路希望能得到一回归方程式可用来预测菌菌生长。

item

Temp

pH

hour

ml

CFU(106)

1

6

5.7

1.6

2.12

9.9

2

1

6.4

3

3.39

9.3

3

-2

5.7

3.4

3.61

9.4

4

11

6.1

3.4

1.72

9.1

5

-1

6

3

1.8

6.9

6

2

5.7

4.4

3.21

9.3

7

5

5.9

2.2

2.59

7.9

8

1

6.2

2.2

3.25

7.4

9

1

5.5

1.9

2.86

7.3

10

3

5.2

0.2

2.32

8.8

11

11

5.7

4.2

1.57

9.8

12

9

6.1

2.4

1.5

10.5

13

5

6.4

3.4

2.69

9.1

14

-3

5.5

3

4.06

10.1

15

1

5.5

0.2

1.98

7.2

16

8

6

3.9

2.29

11.7

17

-2

5.5

2.2

3.55

8.7

18

3

6.2

4.4

3.31

7.6

19

6

5.9

0.2

1.83

8.6

20

10

5.6

2.4

1.69

10.9

21

4

5.8

2.4

2.42

7.6

22

5

5.8

4.4

2.98

7.3

23

5

5.2

1.6

1.84

9.2

24

3

6

1.9

2.48

7

25

8

5.5

1.6

2.83

7.2

26

8

6.4

4.1

2.41

7

27

6

6.2

1.9

1.78

8.8

28

6

5.4

2.2

2.22

10.1

29

3

5.4

4.1

2.72

12.1

30

5

6.2

1.6

2.36

7.7

31

1

6.8

2.4

2.81

7.8

32

8

6.2

1.9

1.64

11.5

33

10

6.4

2.2

1.82

10.4

4. 执行回归。

第一步: 输入建立数据

m <- read.table(header = T, text = "

Temp pH hour ml CFU

6 5.7 1.6 2.12 9.9

1 6.4 3 3.39 9.3

-2 5.7 3.4 3.61 9.4

11 6.1 3.4 1.72 9.1

-1 6 3 1.8 6.9

2 5.7 4.4 3.21 9.3

5 5.9 2.2 2.59 7.9

1 6.2 2.2 3.25 7.4

1 5.5 1.9 2.86 7.3

3 5.2 0.2 2.32 8.8

11 5.7 4.2 1.57 9.8

9 6.1 2.4 1.5 10.5

5 6.4 3.4 2.69 9.1

-3 5.5 3 4.06 10.1

1 5.5 0.2 1.98 7.2

8 6 3.9 2.29 11.7

-2 5.5 2.2 3.55 8.7

3 6.2 4.4 3.31 7.6

6 5.9 0.2 1.83 8.6

10 5.6 2.4 1.69 10.9

4 5.8 2.4 2.42 7.6

5 5.8 4.4 2.98 7.3

5 5.2 1.6 1.84 9.2

3 6 1.9 2.48 7

8 5.5 1.6 2.83 7.2

8 6.4 4.1 2.41 7

6 6.2 1.9 1.78 8.8

6 5.4 2.2 2.22 10.1

3 5.4 4.1 2.72 12.1

5 6.2 1.6 2.36 7.7

1 6.8 2.4 2.81 7.8

8 6.2 1.9 1.64 11.5

10 6.4 2.2 1.82 10.4")  # 资料间以空白分隔

第二步: 使用基本模块(base)attachnames函数赋予m中的数据名称(标题)

attach(m)  # R能透过变量名称搜寻数据

names(m)  # 赋予数据名称(标题)

   第三步: 使用基本模块(base)lm函数代入m数据求回归方程式,结果储存至变量x

x <- lm(CFU ~ Temp + pH + hour + ml, data = m)

    # CFU因变数,TemppHhourml为自变数。

    # CFU ~ Temp + pH + hour + ml即回归方程式的组成:

CFU = 系数*Temp + 系数*pH + 系数*hour + 系数*ml

   第四步: 显示判读结果。

coefficients(x)

    # coefficients 函数显示求得之回归方程式系数(model coefficients)

(Intercept)        Temp        pH        hour         ml

 13.9229254   0.1116533  -0.9924694   0.3241469  -0.2109881

 

summary(x)

# summary 函数显示求得之回归方程式系数及相关资料p

Call:

lm(formula = CFU ~ Temp + pH + hour + ml, data = m)

Residuals:

   Min    1Q  Median    3Q    Max

-2.2849 -1.0231  0.1202  0.9970  2.5673

Coefficients:

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

(Intercept)  13.9229     4.1799   3.331  0.00244 **

Temp          0.1117     0.1065   1.048  0.30364  

pH           -0.9925     0.6695  -1.482  0.14939  

hour          0.3241     0.2534   1.279  0.21129  

ml           -0.2110     0.6321  -0.334  0.74102  

---

Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 1.42 on 28 degrees of freedom

Multiple R-squared:  0.2001,    Adjusted R-squared:  0.08578

F-statistic: 1.751 on 4 and 28 DF,  p-value: 0.167

 

confint(x, level = 0.95)

# confint函数求信赖区间(CIs for model parameters)

                   2.5 %     97.5 %

(Intercept)    5.3606934 22.4851573

Temp        -0.1066003  0.3299069

pH          -2.3638398  0.3789010

hour         -0.1948710  0.8431647

ml          -1.5057751  1.0837989

   

anova(x)

# 显示anova table

Analysis of Variance Table

Response: CFU

              Df Sum Sq Mean Sq F value  Pr(>F) 

Temp       1  7.631  7.6311  3.7822 0.06191 .

pH         1  2.924  2.9245  1.4495 0.23870 

hour       1  3.348  3.3480  1.6594 0.20823 

ml         1  0.225  0.2248  0.1114 0.74102 

Residuals 28 56.494  2.0176                 

---

Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

 

vcov(x)

      # covariance matrix for model parameters

            (Intercept)         Temp           pH        hour          ml

(Intercept)  17.4719516 -0.120085075 -2.544985069  0.30277089 -1.08175295

Temp         -0.1200851  0.011352466 -0.005645347 -0.01089930  0.05271535

pH           -2.5449851 -0.005645347  0.448205285 -0.03677360  0.01105980

hour          0.3027709 -0.010899303 -0.036773602  0.06419957 -0.08129613

ml           -1.0817529  0.052715348  0.011059800 -0.08129613  0.39954353

 

      # 其他相关数据可以下列函数取得

fitted(x) # predicted values

residuals(x) # residuals

influence(x) # regression diagnostics

 

5. 挑选变量,重新求回归方程式

   第一步: 建立初始模型CFU~1及全模型CFU~. (全模型就是用上所有的变量)

    null <- lm(CFU~1, data = m)

null

Call:

lm(formula = CFU ~ 1, data = m)

Coefficients:

(Intercept) 

      8.885

full <- lm(CFU~., data = m)

full

Call:

lm(formula = CFU ~ ., data = m)

Coefficients:

(Intercept)         Temp          pH         hour          ml 

    13.9229       0.1117      -0.9925       0.3241      -0.2110 

   第二步: 使用基本模块(base)step函数代入初始模型null及全模型fullforward addition方法挑选变量。

step(null, scope = list(lower = null, upper = full), direction = "forward")

Start:  AIC=27.11

CFU ~ 1

       Df Sum of Sq    RSS    AIC

+ Temp  1    7.6311 62.991 25.334

              70.622 27.108

+ ml    1    3.1752 67.447 27.590

+ hour  1    2.2965 68.326 28.017

+ pH    1    1.4950 69.127 28.402

Step:  AIC=25.33

CFU ~ Temp

       Df Sum of Sq    RSS    AIC

              62.991 25.334

+ pH    1   2.92447 60.067 25.765

+ hour  1   1.88749 61.104 26.330

+ ml    1   0.12047 62.871 27.271

Call:

lm(formula = CFU ~ Temp, data = m)

Coefficients:

(Intercept)         Temp 

     8.3186       0.1271

第三步: 使用基本模块的step函数以backward elimination方法挑选变量。

step(full, data = m, direction = "backward")

Start:  AIC=27.74

CFU ~ Temp + pH + hour + ml

       Df Sum of Sq    RSS    AIC

- ml    1    0.2248 56.719 25.873

- Temp  1    2.2156 58.710 27.011

- hour  1    3.3021 59.796 27.616

              56.494 27.742

- pH    1    4.4341 60.928 28.235

Step:  AIC=25.87

CFU ~ Temp + pH + hour

       Df Sum of Sq    RSS    AIC

- hour  1     3.348 60.067 25.765

              56.719 25.873

- pH    1     4.385 61.104 26.330

- Temp  1     8.928 65.647 28.697

Step:  AIC=25.77

CFU ~ Temp + pH

       Df Sum of Sq    RSS    AIC

- pH    1    2.9245 62.991 25.334

              60.067 25.765

- Temp  1    9.0606 69.127 28.402

Step:  AIC=25.33

CFU ~ Temp

       Df Sum of Sq    RSS    AIC

              62.991 25.334

- Temp  1    7.6311 70.622 27.108

Call:

lm(formula = CFU ~ Temp, data = m)

Coefficients:

(Intercept)         Temp 

     8.3186       0.1271 

第四步: 使用基本模块的step函数以stepwise regression方法挑选变量。

step(null, scope = list(upper = full), data = m, direction = "both")

Start:  AIC=27.11

CFU ~ 1

       Df Sum of Sq    RSS    AIC

+ Temp  1    7.6311 62.991 25.334

              70.622 27.108

+ ml    1    3.1752 67.447 27.590

+ hour  1    2.2965 68.326 28.017

+ pH    1    1.4950 69.127 28.402

Step:  AIC=25.33

CFU ~ Temp

       Df Sum of Sq    RSS    AIC

              62.991 25.334

+ pH    1    2.9245 60.067 25.765

+ hour  1    1.8875 61.104 26.330

- Temp  1    7.6311 70.622 27.108

+ ml    1    0.1205 62.871 27.271

Call:

lm(formula = CFU ~ Temp, data = m)

Coefficients:

(Intercept)         Temp 

     8.3186       0.1271 

# 步骤二到四三种挑选模型的方法都挑出CFU ~ Temp为最佳模型。

第五步: 比较两组回归方程式统计上有无差别(就是省略某些变量不影响)

y1 <- lm(CFU ~ Temp + pH + hour + ml, data = m)

y2 <- lm(CFU ~ Temp, data = m)

anova(y1, y2)

      第六步: 判读结果。

Analysis of Variance Table

Model 1: CFU ~ Temp + pH + hour + ml

Model 2: CFU ~ Temp

  Res.Df    RSS Df Sum of Sq      F Pr(>F)

1     28 56.494                          

2     31 62.991 -3   -6.4973 1.0734  0.3763

# Pr < 0.05H0: 两个方程式效果相当,不成立

# Pr > 0.05H0: 两个方程式效果相当,成立

 

来劲了吗? 想知道更多?? 补充资料(链接):

1. 关于Regression analysis (https://en.wikipedia.org/wiki/Regression_analysis)

2. 关于Linear regression (https://en.wikipedia.org/wiki/Linear_regression)

3. STHDA Linear Regression Essentials in R (http://www.sthda.com/english/articles/40-regression-analysis/165-linear-regression-essentials-in-r/)

4. 关于R基础,R绘图及统计快速入门:

   a. R Tutorial: https://www.tutorialspoint.com/r/index.htm

   b. Cookbook for R: http://www.cookbook-r.com/

   c. Quick-R: https://www.statmethods.net/

   d. Statistical tools for high-throughput data analysis (STHDA): http://www.sthda.com/english/ 

   e. The Handbook of Biological Statistics: http://www.biostathandbook.com/ 

   f. An R Companion for the Handbook of Biological Statistics: http://rcompanion.org/rcompanion/index.html

5. Zar, JH. 2010. Biostatistical Analysis, Fifth Edition, Pearson.


0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有