1.回归的多面性
回归类型 |
用途 |
简单线性 |
个量化的解释变量来预测一个量化的响应变量(一个因变量、一个自变量) |
多项式 |
一个量化的解释变量预测一个量化的响应变量,模型的关系是
n阶多项式(一个预测变量,但同时包含变量的幂) |
多元线性 |
用两个或多个量化的解释变量预测一个量化的响应变量(不止一个预测变量) |
多变量 |
用一个或多个解释变量预测多个响应变量 |
Logistic |
用一个或多个解释变量预测一个类别型变量 |
泊松 |
用一个或多个解释变量预测一个代表频数的响应变量 |
Cox比例风险 |
用一个或多个解释变量预测一个事件(死亡、失败或旧病复发)发生的时间
时间序列对误差项相关的时间序列数据建模
|
非线性 |
用一个或多个量化的解释变量预测一个量化的响应变量,不过模型是非线性的 |
非参数 |
用一个或多个量化的解释变量预测一个量化的响应变量,模型的形式源
自数据形式,不事先设定 |
稳健 |
用一个或多个量化的解释变量预测一个量化的响应变量,能抵御强影响点的干扰 |
|
|
2.OLS回归
OLS回归是通过预测变量的加权和来预测量化的因变量,其中权重是通过数据估计而得以的参数。
使残差平方和最小
为能够恰当地解释OLS模型的系数,数据必须满足以下统计假设:
(1) 正态性对于固定的自变量,因变量值成正态分布
(2) 独立性 Yi值之间相互独立
(3) 线性 因变量与自变量之间为线性相关
(4) 同方差性因变量的方差不随自变量的水平不同而变化,即不变方差或同方差性
3. 用lm()拟合回归模型
拟合线性模型最基本的函数就是lm(),格式为:
myfit<-lm(formula,data)
formula指要拟合的模型形式,data是一个数据框,包含了用于拟合模型的数据
formula形式如下:Y~X1+X2+……+Xk (~左边为响应变量,右边为各个预测变量,预测变量之间用+符号分隔)
R表达式中常用的符号
|
符号
|
用途
|
~
|
分隔符号,左边为响应变量,右边为解释变量,eg:要通过x、z和w预测y,代码为y~x+z+w
|
+
|
分隔预测变量
|
:
|
表示预测变量的交互项 eg:要通过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
|
.
|
表示包含除因变量外的所有变量,eg:若一个数据框包含变量x、y、z和w,代码y~.可展开为y~x+z+w
|
-
|
减号,表示从等式中移除某个变量,eg:y~(x+z+w)^2-x:w可展开为y~x+z+w+x:z+z:w
|
-1
|
删除截距项,eg:表示y~x-1拟合y在x上的回归,并强制直线通过原点
|
I()
|
从算术的角度来解释括号中的元素。Eg: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()
|
列出拟合模型的模型参数(截距项和斜率)
|
Cofint()
|
提供模型参数的置信区间(默认95%)
|
Fitted()
|
列出拟合模型的预测值
|
Residuals()
|
列出拟合模型的残差值
|
Anova()
|
生成一个拟合模型的方差分析,或者比较两个或更多拟合模型的方差分析表
|
Vcov()
|
列出模型参数的协方差矩阵
|
AIC()
|
输出赤池信息统计量
|
Plot()
|
生成评价拟合模型的诊断图
|
Predict()
|
用拟合模型对新的数据集预测响应变量值
|
4. 简单线性回归
eg:
-
fit<-lm(weight~height,data=women)
-
summary(fit)
在Pr(>|t|)栏,可以看到回归系数(3.45)显著不为0(p<0.001),表明身高每增加1英寸,体重将预期地增加3.45磅
R平方项(0.991)表明模型可以解释体重99.1%的方差,它也是实际和预测值之间的相关系数(R^2=r^2)
残差的标准误(1.53lbs)则可认为模型用身高预测体重的平均误差
F统计量检验所有的预测变量预测响应变量是否都在某个几率水平之上
-
plot(women$height,women$weight,
-
xlab="Height (in inches)",
-
ylab="Weight(in pounds)")
-
abline(fit)
5. 多项式回归
-
fit2<-lm(weight~height+I(height^2),data=women)
-
summary(fit2)
-
plot(women$height,women$weight,
-
xlab="Height(in inches)",
-
ylab="Weight(in lbs)")
-
lines(women$height,fitted(fit2))
一般来说,n次多项式生成一个n-1个弯曲的曲线
car包中的scatterplot()函数,可以很容易、方便地绘制二元关系图
-
scatterplot(weight~height,
-
data=women,
-
spread=FALSE,
-
lty.smooth=2,
-
pch=19,
-
main="Women Age 30-39",
-
xlab="Height (inches)",
-
ylab="Weight(lbs.)")
6.多元线性回归
采用的数据集:state.x77
-
states<-as.data.frame(state.x77[,c("Murder","Population","Illiteracy","Income","Frost")])
检测二变量关系
-
library(car)
-
scatterplotMatrix(states,spread=FALSE,lty.smooth=2,main="Scatter Plot Matrix")
scatterplotMatrix()函数默认在非对角线区域绘制变量间的散点图,并添加平滑(loess)和线性拟合曲线
多元线性回归
-
fit<-lm(Murder~Population+Illiteracy+Income+Frost,data=states)
-
summary(fit)
7.有交互项的多元线性回归
-
fit<-lm(mpg~hp+wt+hp:wt,data=mtcars)
-
summary(fit)
通过effects包中的effect()函数,可以用图形展示交互项的结果
|
请发表评论