多元回归分析(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)的attach及names函数赋予m中的数据名称(标题)。
attach(m)
names(m)
x <- lm(CFU ~ Temp + pH + hour + ml, data = m)
CFU = 系数*Temp + 系数*pH + 系数*hour + 系数*ml
coefficients(x)
(Intercept)
summary(x)
# 以summary 函数显示求得之回归方程式系数及相关资料p值。
Call:
lm(formula = CFU ~ Temp + pH + hour + ml, data = m)
Residuals:
-2.2849
-1.0231
Coefficients:
(Intercept)
Temp
pH
hour
ml
---
Signif.
codes:
Residual standard error: 1.42 on 28 degrees of freedom
Multiple
R-squared:
F-statistic:
1.751 on 4 and 28 DF,
confint(x, level = 0.95)
# 以confint函数求信赖区间(CIs for model parameters)。
(Intercept)
Temp
pH
hour
ml
anova(x)
# 显示anova table
Analysis of Variance Table
Response: CFU
Temp
pH
hour
ml
Residuals 28
56.494
---
Signif.
codes:
vcov(x)
(Intercept)
Temp
pH
hour
ml
fitted(x) # predicted values
residuals(x) # residuals
influence(x) # regression diagnostics
5. 挑选变量,重新求回归方程式。
null
Call:
lm(formula = CFU ~ 1, data = m)
Coefficients:
(Intercept)
full <- lm(CFU~., data = m)
full
Call:
lm(formula = CFU ~ ., data = m)
Coefficients:
(Intercept)
step(null, scope = list(lower = null, upper = full), direction = "forward")
Start:
CFU ~ 1
+
Temp
+
ml
+
hour
+
pH
Step:
CFU ~ Temp
+
pH
+
hour
+
ml
Call:
lm(formula = CFU ~ Temp, data = m)
Coefficients:
(Intercept)
第三步: 使用基本模块的step函数以backward elimination方法挑选变量。
step(full, data = m, direction = "backward")
Start:
CFU ~ Temp + pH + hour + ml
-
ml
-
Temp
-
hour
-
pH
Step:
CFU ~ Temp + pH + hour
-
hour
-
pH
-
Temp
Step:
CFU ~ Temp + pH
-
pH
-
Temp
Step:
CFU ~ Temp
-
Temp
Call:
lm(formula = CFU ~ Temp, data = m)
Coefficients:
(Intercept)
第四步: 使用基本模块的step函数以stepwise regression方法挑选变量。
step(null, scope = list(upper = full), data = m, direction = "both")
Start:
CFU ~ 1
+
Temp
+
ml
+
hour
+
pH
Step:
CFU ~ Temp
+
pH
+
hour
-
Temp
+
ml
Call:
lm(formula = CFU ~ Temp, data = m)
Coefficients:
(Intercept)
# 步骤二到四三种挑选模型的方法都挑出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
1
2
# Pr < 0.05,H0: 两个方程式效果相当,不成立。
# Pr > 0.05,H0: 两个方程式效果相当,成立。
来劲了吗? 想知道更多?? 补充资料(链接):
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绘图及统计快速入门:
5. Zar, JH. 2010. Biostatistical Analysis, Fifth Edition, Pearson.