R语言计算线性回归的最小二乘估计
- 全称:线性回归的最小二乘法(OLS回归),ordinary least square,字面翻译:普通最小平方;
- 内容:包括三个部分:简单线性回归、多项式回归、多元线性回归;
- 原理:最小二乘法,即使回归函数与实际值之差的平方和最小,来找出线性表达式的各个参数;
R语言实现
函数:lm()
使用方法:fit<-lm(y~x1+x2……+xn,data)
表达式说明如下:
符号 | 用途 |
---|---|
~ | 分隔符号,左边为响应变量,右边为解释变量。例如,要通过x、z和w预测y,代码为y ~ x + z + w |
: | 表示预测变量的交互项。例如,要通过x、z及x与z的交互项预测y,代码为y ~ x + z + x:z |
– | – |
* | 表示所有可能交互项的简洁方式。代码y~ x * z * w可展开为y ~ x + z + w + x:z + x:w + z:w + x:z:w |
^ | 表示交互项达到某个次数。代码y ~ (x + z + w)^2可展开为y ~ x + z + w + x:z + x:w + z:w |
– | – |
. | 表示包含除因变量外的所有变量。例如,若一个数据框包含变量x、y、z和w,代码y ~ .可展开为y ~ x + z + w |
- | 减号,表示从等式中移除某个变量。例如,y ~ (x + z + w)^2 – x:w可展开为y ~ x + z + w + x:z + z:w |
– | – |
-1 | 删除截距项。例如,表达式y ~ x -1拟合y在x上的回归,并强制直线通过原点 |
I() | 从算术的角度来解释括号中的元素。例如,y ~ x + (z + w)^2将展开为y ~ x + z + w + z:w。相反, 代码y~ x + I((z + w)^2)将展开为y ~ x + h, h是一个由z和w的平方和创建的新变量 |
– | – |
function | 可以在表达式中用的数学函数。例如,log(y) ~ x + z + w表示通过x、z和w来预测log(y) |
拟合模型处理函数说明如下:
函 数 | 用 途 |
---|---|
summary() | 展示拟合模型的详细结果 |
coefficients() | 列出拟合模型的模型参数(截距项和斜率) |
– | – |
confint() | 提供模型参数的置信区间(默认95%) |
fitted() | 列出拟合模型的预测值 |
– | – |
residuals() | 列出拟合模型的残差值 |
anova() | 生成一个拟合模型的方差分析表,或者比较两个或更多拟合模型的方差分析表 |
– | – |
vcov() | 列出模型参数的协方差矩阵 |
AIC() | 输出赤池信息统计量 |
– | – |
plot() | 生成评价拟合模型的诊断图 |
predict() | 用拟合模型对新的数据集预测响应变量值 |
例如:
#(1)
fm=lm(Y~X1+X2,data = AA)#多元线性回归
summary(fm) #展示拟合模型的详细结果
coefficients(fm)#列出拟合模型的模型参数(截距项和斜率)
residuals(fm)#列出拟合模型的残差值
cat("误差方差估计为",sum(residuals(fm)^2)/12)
#(2)
anova(fm) #生成一个拟合模型的方差分析表
#(3)
confint(fm)#提供模型参数的置信区间(默认95%)
输出结果如下:
> #(1)
> fm=lm(Y~X1+X2,data = AA)#多元线性回归
> summary(fm) #展示拟合模型的详细结果
Call:
lm(formula = Y ~ X1 + X2, data = AA)
Residuals:
Min 1Q Median 3Q Max
-3.832 -1.204 -0.241 1.489 3.309
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 3.452613 2.430650 1.42 0.18
X1 0.496005 0.006054 81.92 < 2e-16 ***
X2 0.009199 0.000968 9.50 6.2e-07 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 2.18 on 12 degrees of freedom
Multiple R-squared: 0.999, Adjusted R-squared: 0.999
F-statistic: 5.68e+03 on 2 and 12 DF, p-value: <2e-16
> coefficients(fm)#列出拟合模型的模型参数(截距项和斜率)
(Intercept) X1 X2
3.452613 0.496005 0.009199
>
> residuals(fm)#列出拟合模型的残差值
1 2 3 4 5 6 7 8 9 10 11 12 13 14
0.1043 -2.6673 -1.4294 -0.2406 -0.6993 -0.6849 1.2681 2.3280 -3.8320 1.7095 -1.7151 3.3092 -0.9793 2.4669
15
1.0619
> cat("误差方差估计为",sum(residuals(fm)^2)/12)
误差方差估计为 4.74>
> #(2)
> anova(fm) #生成一个拟合模型的方差分析表
Analysis of Variance Table
Response: Y
Df Sum Sq Mean Sq F value Pr(>F)
X1 1 53417 53417 11268.6 < 2e-16 ***
X2 1 428 428 90.3 6.2e-07 ***
Residuals 12 57 5
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
>
> #(3)
> confint(fm)#提供模型参数的置信区间(默认95%)
2.5 % 97.5 %
(Intercept) -1.84332 8.74855
X1 0.48281 0.50920
X2 0.00709 0.01131