chapter08 回归(一)
回归
1、回归的多面性
- 简单线性:用一个量化的解释变量预测一个量化的响应变量
- 多项式:用一个量化的解释变量预测一个量化的响应变量,模型的关系是n阶多项式
- 多元线性:用两个或多个量化的解释变量预测一个量化的响应变量
- 多变量:用一个或多个解释变量预测多个响应变量
- Logistic:用一个或多个解释变量预测一个类别型响应变量
- 泊松:用一个或多个解释变量预测一个代表频数的响应变量
- Cox比例风险:用一个或多个解释变量预测一个事件(死亡、失败或旧病复发)发生的时间
- 时间序列:对误差项相关的时间序列数据建模
- 非线性:用一个或多个量化的解释变量预测一个量化的响应变量,不过模型是非线性的
- 非参数:用一个或多个量化的解释变量预测一个量化的响应变量,模型的形式源自数据形式,不事先设定
- 稳健:用一个或多个量化的解释变量预测一个量化的响应变量,能抵御强影响点的干扰
2、最小二乘回归
为了能够恰当地解释OLS模型的系数,数据必须满足以下统计假设。 - 正态性: 对于固定的自变量值,因变量值成正态分布。
- 独立性:
Yi
值之间相互独立。 - 线性: 因变量与自变量之间为线性相关。
- 同方差性: 因变量的方差不随自变量的水平不同而变化。也可称作不变方差,但是说同方差性感觉上更犀利。
2.1 使用lm()
拟合回归模型
|
|
常用的参数和解释
对拟合线性模型非常有用的其他函数:
2.2 简单线性回归
|
|
2.3 多项式回归
|
|
|
|
2.4 多元线性回归
|
|
2.5 有交互项的多元线性回归
|
|
从图中可以很清晰地看出,随着车重的增加,马力与每加仑汽油行驶英里数的关系减弱了。
当wt = 4.2时,直线几乎是水平的,表明随着hp的增加, mpg不会发生改变。
3、回归诊断
- 对回归结果的信念,都只建立在你的数据满足统计假设的前提之上。
3.1 标准方法
12345#回归诊断fit<- lm(weight~height,data=women)#将plot()函数绘制的四幅图形组合在一个大的2×2的图中。par(mfrow=c(2,2))plot(fit)
正态性:当预测变量值固定时,因变量成正态分布,则残差值也应该是一个均值为0的正
态分布。正态Q-Q图(Normal Q-Q,右上)是在正态分布对应的值下,标准化残差的概率
图。若满足正态假设,那么图上的点应该落在呈45度角的直线上;若不是如此,那么就
违反了正态性的假设。独立性:由样本的数据收集去确保
线性:若因变量与自变量线性相关,那么残差值与预测(拟合)值就没有任何系统关联。
换句话说,除了白噪声,模型应该包含数据中所有的系统方差。在“残差图与拟合图”
(Residuals vs Fitted,左上)中可以清楚的看到一个曲线关系,这暗示着你可能需要对回
归模型加上一个二次项。同方差性 :若满足不变方差假设,那么在位置尺度图(Scale-Location Graph,左下)中,
水平线周围的点应该随机分布。该图似乎满足此假设。最后一幅“残差与杠杆图”(Residuals vs Leverage,右下)提供了你可能关注的单个观测点的信息。从图形可以鉴别出离群点、高杠杆值点和强影响点。
看下二次拟合的图:
3.2 改进的方法
car包提供多种函数用以评价回归模型:
- 正态性:qqPlot()1234567#它画出了在n-p-1个自由度的t分布下的学生化残差(studentized residual,也称学生化删除残差或折叠#化残差)图形,其中n是样本大小, p是回归参数的数目(包括截距项)。library(car)fit<-lm(Murder ~ Population + Illiteracy + Income + Frost, data=states)par(mfrow=c(1,1))qqPlot(fit,labels=row.names(states),id.method = "identify",simulate=TRUE, main="Q-Q Plot")#当simulate=TRUE时, 95%的置信区间将会用参数自助法
另一种和可视化误差的方法
独立性
123456789> #误差的独立性> durbinWatsonTest(fit)lag Autocorrelation D-W Statistic p-value1 -0.2006929 2.317691 0.258Alternative hypothesis: rho != 0> #p值不显著说明无相关性,误差项之间独立,滞后项(lag=1)表明数据集中> #每个数据都是与其后一个数据进行比较的。该检验适用于时间独立的数据,对于非聚集型的数据> #并不适用。注意, durbinWatsonTest()函数使用自助法(参见第12章)来导出p值,如果添加> #了选项simulate=FALSE,则每次运行测试时获得的结果都将略有不同。线性
1234crPlots(fit)#若图形存在非线性,则说明你可能对预测变量的函数形式建模不够充分,#那么就需要添加一些曲线成分,比如多项式项,或对一个或多个变量进行变换(如用log(X)代#替X),或用其他回归变体形式而不是线性回归。
- 同方差性12345678910111213141516171819202122> #线性> crPlots(fit)> #若图形存在非线性,则说明你可能对预测变量的函数形式建模不够充分,> #那么就需要添加一些曲线成分,比如多项式项,或对一个或多个变量进行变换(如用log(X)代> #替X),或用其他回归变体形式而不是线性回归。>> #同方差性> #ncvTest()函数生成一个计分检验,零假设为误差方差不变,备择假设为误差方差随着拟合值水平的变化而变化。> #若检验显著,则说明存在异方差性(误差方差不恒定)> ncvTest(fit)Non-constant Variance Score TestVariance formula: ~ fitted.valuesChisquare = 1.746514 Df = 1 p = 0.1863156> p=0.18不显著接受零假设> #spreadLevelPlot()函数创建一个添加了最佳拟合曲线的散点图,展示标准化残差绝对值与拟合值的关系。> spreadLevelPlot(fit)Suggested power transformation: 1.209626#你将会看到一个非水平的曲线。代码结果建议幂次变换(suggested power transformation)的含义#是,经过p次幂(Y^p)变换,非恒定的误差方差将会平稳。#建议幂次转换为0.5,在回归等式中用 Y 代替Y,可能会使模型满足同方差性。若建议幂次为0,#则使用对数变换。对于当前例子,异方差性很不明显,因此建议幂次接近1(不需要进行变换)。
3.3 线性模型假设的综合验证
|
|
3.4 多重共线性
|
|