0. 回归的定义
回归分析(regression analysis)是确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法。运用十分广泛,回归分析按照涉及的变量的多少,分为一元回归和多元回归分析;按照自变量的多少,可分为简单回归分析和多重回归分析 [1] ;按照自变量和因变量之间的关系类型,可分为线性回归分析和非线性回归分析。如果在回归分析中,只包括一个自变量和一个因变量,且二者的关系可用一条直线近似表示,这种回归分析称为一元线性回归分析。如果回归分析中包括两个或两个以上的自变量,且自变量之间存在线性相关,则称为多重线性回归分析。
1. OLS回归
OLS(普通最小二乘法),包括简单的线性回归、多项式回归和多元线性回归。OLS回归是目前最常见的统计分析方法。OLS回归是通过预测变量的加权和来预测量化的因变量,其中权重是通过数据估计而得的参数。
OLS回归你和模型的形式:
其中,n为观测的数目,k为预测变量的数目。
我们的目标是通过减少相应变量的真实值与预测值的差值来获得模型参数(截距项和斜率),具体而言就是使得残差平方和最小。
为了能够恰当的解释OLS模型的系数,数据必须满足以下的假设统计:
- 正态性 对于固定的自变量的值,因变量值成正太分布。
- 独立性 之间相互独立。
- 线性 因变量和自变量之间为线性相关。
- 同方差性 因变量的方差不随自变量的水平不同而发生变化。
1.1 使用lm()拟合回归模型
myfit <- lm(formula , data)
1.2 简单线性回归
R基础安装中的数据集women提供了15个年龄在30-39之间女性的身高和体重信息。我们通过身高来预测体重,获得一个灯饰可以帮助我们分辨出那些过重或者过轻的个体。
fit <- lm(weight ~ height, data=women)
summary(fit)
women$weight
fitted(fit)
residuals(fit)
plot(women$height,women$weight,
main="Women Age 30-39",
xlab="Height (in inches)",
ylab="Weight (in pounds)")
# add the line of best fit
abline(fit)
- summary()函数返回了回归拟合的基础汇总信息,我们可以从中得知截距、权重分别为多少;在 Pr(>|t|)栏中可以看到回归系数(3.45)显著不为0(p<0.001),主要是后面***表示显著可信;Multiple R-squared参数为0.991,表明模型可以解释体重99.1%的方差。
- fitted()函数返回的是回归拟合的预测值。
- residuals()函数返回的是残差值。
最后利用plot(0函数,对拟合进行可视化表述:
1.3 多项式回归
使用曲线往往比单纯的使用直线更为有效一些,可以通过增加一个平方项来提高预测的精度。
fit2 <- lm(weight ~ height + I(height^2), data=women)
summary(fit2)
plot(women$height,women$weight,
main="Women Age 30-39",
xlab="Height (in inches)",
ylab="Weight (in lbs)")
lines(women$height,fitted(fit2))
由summay()函数可以明确的看到Multiple R-squared: 0.9995,且在p<0.001水平下,回归系数均非常显著,综上可以得出包含二次项提高了模型的拟合程度。新的预测公式为:
1.4 多元线性回归
当预测变量不止一个时,简单线性回归见变成了多元线性回归。由于与多项式线性回归相似,此处就不再赘述。