举个例子:
一般人在身高相等的情况下,血压收缩压Y与体重X1和年龄X2有关,抽取13组成年人数据(如下图),构建Y与X1、X2的线性回归关系。
1.先创建一个数据框blood:
blood<-data.frame(
X1=c(76,91.5,85.5,82.5,79,80.5,74.5,79,85,76.5,82,95,92.5),
X2=c(50,20,20,30,30,50,60,50,40,55,40,40,20),
Y=c(120,141,124,126,117,125,123,125,132,123,132,155,147)
)
2.拟合线性回归:
lm.sol<-lm(Y~X1+X2,data=blood)
提取模型计算结果
summary(lm.sol)
这里说一下含义:
1、在计算结果的第一部分(call)列出了相应的回归模型公式;
2、第二部分(Residuals)列出了残差的最小值点、1/4分位点、3/4分位点、最大值点;
3、第三方部分(Coefficients)Estimate表示回归方程参数的估计,std.Error表示回归参数的标准差,t value 为t值,Pr(>|t|)表示p值
说明一下:***表示极为显著,**表示高度显著,*表示显著,.表示不太显著,没有记号表示不显著
4、第四部分(Residual standard error)表示残差的标准差,(F-statistic)表示F的统计量
通过上面的结果可以看出回归模型:Y=2.13656X1+0.40022X2-62.96336
我们根据得出的回归模型进行预测
例如:预测体重X1=100,年龄X2=40的血压值Y
newdata<-data.frame(X1=100,X2=40)
pre<-predict(lm.sol,newdata,interval="prediction",level=0.95)
pre
从结果可以预测值Y166.7011和预测值Y的区间[157.2417,176,1605]
多元线性回归 是 简单线性回归 的扩展,用于基于多个不同的预测变量(x)预测结果变量(y)。
例如,对于三个预测变量(x),y的预测由以下等式表示: y = b0 + b1*x1 + b2*x2 + b3*x3
回归贝塔系数测量每个预测变量与结果之间的关联。“ b_j”可以解释为“ x_j”每增加一个单位对y的平均影响,同时保持所有其他预测变量不变。
在本节中,依然使用 datarium 包中的 marketing 数据集,我们将建立一个多元回归模型,根据在三种广告媒体(youtube,facebook和报纸)上投入的预算来预测销售。计算公式如下: sales = b0 + b1*youtube + b2*facebook + b3*newspaper
您可以如下计算R中的多个回归模型系数:
请注意,如果您的数据中包含许多预测变量,则可以使用 ~. 以下命令将模型中的所有可用变量简单地包括在内:
从上面的输出中,系数表显示β系数估计值及其显着性水平。列为:
如前所述,您可以使用R函数轻松进行预测 predict() :
在使用模型进行预测之前,您需要评估模型的统计显着性。通过显示模型的统计摘要,可以轻松地进行检查。
显示模型的统计摘要,如下所示:
摘要输出显示6个组件,包括:
解释多元回归分析的第一步是在模型摘要的底部检查F统计量和关联的p值。
在我们的示例中,可以看出F统计量的p值<2.2e-16,这是非常重要的。这意味着 至少一个预测变量与结果变量显着相关 。
要查看哪些预测变量很重要,您可以检查系数表,该表显示了回归beta系数和相关的t统计p值的估计。
对于给定的预测变量,t统计量评估预测变量和结果变量之间是否存在显着关联,即,预测变量的beta系数是否显着不同于零。
可以看出,youtube和facebook广告预算的变化与销售的变化显着相关,而报纸预算的变化与销售却没有显着相关。
对于给定的预测变量,系数(b)可以解释为预测变量增加一个单位,同时保持所有其他预测变量固定的对y的平均影响。
例如,对于固定数量的youtube和报纸广告预算,在Facebook广告上花费额外的1000美元,平均可以使销售额增加大约0.1885 * 1000 = 189个销售单位。
youtube系数表明,在所有其他预测变量保持不变的情况下,youtube广告预算每增加1000美元,我们平均可以预期增加0.045 * 1000 = 45个销售单位。
我们发现报纸在多元回归模型中并不重要。这意味着,对于固定数量的youtube和报纸广告预算,报纸广告预算的变化不会显着影响销售单位。
由于报纸变量不重要,因此可以 将其从模型中删除 ,以提高模型精度:
最后,我们的模型公式可以写成如下:。 sales = 3.43+ 0.045*youtube + 0.187*facebook
一旦确定至少一个预测变量与结果显着相关,就应该通过检查模型对数据的拟合程度来继续诊断。此过程也称为拟合优度
可以使用以下三个数量来评估线性回归拟合的整体质量,这些数量显示在模型摘要中:
与预测误差相对应的RSE(或模型 sigma )大致代表模型观察到的结果值和预测值之间的平均差。RSE越低,模型就越适合我们的数据。
将RSE除以结果变量的平均值将为您提供预测误差率,该误差率应尽可能小。
在我们的示例中,仅使用youtube和facebook预测变量,RSE = 2.11,这意味着观察到的销售值与预测值的平均偏差约为2.11个单位。
这对应于2.11 / mean(train.data $ sales)= 2.11 / 16.77 = 13%的错误率,这很低。
R平方(R2)的范围是0到1,代表结果变量中的变化比例,可以用模型预测变量来解释。
对于简单的线性回归,R2是结果与预测变量之间的皮尔森相关系数的平方。在多元线性回归中,R2表示观察到的结果值与预测值之间的相关系数。
R2衡量模型拟合数据的程度。R2越高,模型越好。然而,R2的一个问题是,即使将更多变量添加到模型中,R2总是会增加,即使这些变量与结果之间的关联性很小(James等,2014)。解决方案是通过考虑预测变量的数量来调整R2。
摘要输出中“已调整的R平方”值中的调整是对预测模型中包含的x变量数量的校正。
因此,您应该主要考虑调整后的R平方,对于更多数量的预测变量,它是受罚的R2。
在我们的示例中,调整后的R2为0.88,这很好。
回想一下,F统计量给出了模型的整体重要性。它评估至少一个预测变量是否具有非零系数。
在简单的线性回归中,此检验并不是真正有趣的事情,因为它只是复制了系数表中可用的t检验给出的信息。
一旦我们开始在多元线性回归中使用多个预测变量,F统计量就变得更加重要。
大的F统计量将对应于统计上显着的p值(p <0.05)。在我们的示例中,F统计量644产生的p值为1.46e-42,这是非常重要的。
我们将使用测试数据进行预测,以评估回归模型的性能。
步骤如下:
从上面的输出中,R2为 0.9281111 ,这意味着观察到的结果值与预测的结果值高度相关,这非常好。
预测误差RMSE为 1.612069 ,表示误差率为 1.612069 / mean(testData $ sales) = 1.612069/ 15.567 = 10.35 % ,这很好。
本章介绍了线性回归的基础,并提供了R中用于计算简单和多个线性回归模型的实例。我们还描述了如何评估模型的性能以进行预测。
看回归方程y=a+bx中的b值的正负,如果b是正数,就是正相关;如果b是负数,就是负相关。b值只能用来判断相关性的正负,但b并不是相关系数,相关系数在线性回归方程中是确定系数R^2的平方根R值,其正负号由b值的正负号决定。