R语言之线性回归分析

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了R语言之线性回归分析相关的知识,希望对你有一定的参考价值。

一、建立简单线性回归模型
可使用函数lm实现,函数是围绕公式展开的,lm接受一个公式对象作为试图建立的模型,可以通过?formula来查询通用格式,data.frame也可以被明确指定,它包括所需的数据
> library(RSADBE)
> data(IO_Time)
> IO_lm = lm(CPU_Time ~ No_of_IO,data=IO_Time)
> class(IO_lm)
> summary(IO_lm)
结果中:
F-statistic: 635.4 on 1 and 8 DF,  p-value: 6.569e-09为模型的整体检验,也就是F检验

Multiple R-squared:  0.9876,    Adjusted R-squared:  0.986 为决定系数和校正的决定系数

            Estimate Std. Error t value Pr(>|t|)    
(Intercept) 0.050933   0.010033   5.077 0.000957 ***
No_of_IO    0.040758   0.001617  25.207 6.57e-09 ***
为自变量和截距的估计值和检验结果,*越多表示越显著

Residuals:
      Min        1Q    Median        3Q       Max
-0.016509 -0.011592 -0.001327  0.005279  0.024006

为残差的统计量,中位数接近0表示接近标准正态分布,因为标准正态分的中位数为0

二、多元线性回归

也使用lm函数,但是公式格式有所改变

> data(Gasoline)
> gasoline_lm = lm(y~., data=Gasoline)
> summary(gasoline_lm)

这里公式y~.表示因变量为y,其余所有变量都为自变量

三、四种残差
1.标准化残差
就是将残差进行标准化后的结果

2.半学生化残差
对标准化残差的修正

3.预测残差
是真实值与预测值之差

4.R-学生化残差
对异常值的检测很有用

通过resid函数提取残差,并进行标准化,就得到标准化残差;
通过rstandard函数得到预测残差
通过rstudetn函数得到R-学生化残差

五、异常值

异常值分为杠杆点和影响点,针对自变量的称为杠杆点,针对因变量的称为影响点
1.杠杆点
杠杆点对回归系数没有影响,但是会影响决定系数,可以通过观察帽子矩阵来识别,杠杆作用的平均值为h=p/n,p为自变量个数,n为样本量,如果一个观测值的杠杆值>2h,则应考虑为杠杆点,考虑剔除或采取措施。R中可以通过hatvalues函数计算杠杆值。
> data(Gasoline)
> gasoline_lm = lm(y~., data=Gasoline)
> hatvalues(gasoline_lm)
> which(hatvalues(gasoline_lm) > length(gasoline_lm$coefficients)/nrow(Gasoline))

2.影响点
影响点有将回归线拉向它的趋势,因此会影响回归系数的值,可以通过COOK距离来判断,R中可以通过cooks.distance函数计算每个观测值的COOK距离。根据经验,如果距离大于1,则说明观测点为影响点。

此外,还可以通过dffits函数和dfbetas函数计算相应的值,如果dffits>2/根号p/n,那么可认为是影响点,如果dfbetas>2/根号n,也可认为是影响点,p为自变量个数,n为样本量

六、多重共线性
多重共线性可能会引起的问题有
1、回归系数不可信,并且可能符号出现错误
2.t检验和F检验失效
3.某些预测值的重要性会削弱
可以通过car包和faraway包的VIF函数计算VIF值

七、模型选择
函数step可以实现基于AIC准则的模型选择,最优模型为AIC值最小的
> data(Gasoline)
> gasoline_lm = lm(y~., data=Gasoline)
> step(gasoline_lm)

以上是关于R语言之线性回归分析的主要内容,如果未能解决你的问题,请参考以下文章

r语言如何最小二乘线性回归分析

R语言生存分析之限制性立方样条分析:为什么需要样条分析样条回归和多项式回归有什么不同?是否存在非线性关系限制性立方样条cox回归模型

如何用R语言做线性相关回归分析

R语言回归分析(regression)常见算法:简单线性回归多项式回归多元线性回归多水平回归多输出回归逻辑回归泊松回归cox比例风险回归时间序列分析非线性回归非参数回归稳健回归等

R语言回归分析(regression)常见算法:简单线性回归多项式回归多元线性回归多水平回归多输出回归逻辑回归泊松回归cox比例风险回归时间序列分析非线性回归非参数回归稳健回归等

R语言构建多元线性回归模型