• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

R语言做线性回归

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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:

[plain] view plain copy
  1. fit<-lm(weight~height,data=women)  
  2. 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统计量检验所有的预测变量预测响应变量是否都在某个几率水平之上

[plain] view plain copy
  1. fitted(fit)#拟合模型的预测值  

[plain] view plain copy
  1. residuals(fit)#拟合模型的残差值  


[plain] view plain copy
  1. plot(women$height,women$weight,  
  2.      xlab="Height (in inches)",  
  3.      ylab="Weight(in pounds)")  
  4. abline(fit)  


5. 多项式回归

[plain] view plain copy
  1. fit2<-lm(weight~height+I(height^2),data=women)  
  2. summary(fit2)  


[plain] view plain copy
  1. plot(women$height,women$weight,  
  2.      xlab="Height(in inches)",  
  3.      ylab="Weight(in lbs)")  
  4. lines(women$height,fitted(fit2))  


一般来说,n次多项式生成一个n-1个弯曲的曲线

car包中的scatterplot()函数,可以很容易、方便地绘制二元关系图

[plain] view plain copy
  1. scatterplot(weight~height,  
  2.             data=women,  
  3.             spread=FALSE,  
  4.             lty.smooth=2,  
  5.             pch=19,  
  6.             main="Women Age 30-39",  
  7.             xlab="Height (inches)",  
  8.             ylab="Weight(lbs.)")  


6.多元线性回归

采用的数据集:state.x77

[plain] view plain copy
  1. states<-as.data.frame(state.x77[,c("Murder","Population","Illiteracy","Income","Frost")])  

检测二变量关系

[plain] view plain copy
  1. cor(states)  


[plain] view plain copy
  1. library(car)  
  2. scatterplotMatrix(states,spread=FALSE,lty.smooth=2,main="Scatter Plot Matrix")  


scatterplotMatrix()函数默认在非对角线区域绘制变量间的散点图,并添加平滑(loess)和线性拟合曲线

多元线性回归

[plain] view plain copy
  1. fit<-lm(Murder~Population+Illiteracy+Income+Frost,data=states)  
  2. summary(fit)  


7.有交互项的多元线性回归

[plain] view plain copy
  1. fit<-lm(mpg~hp+wt+hp:wt,data=mtcars)  
  2. summary(fit)  


通过effects包中的effect()函数,可以用图形展示交互项的结果

该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
11、R语言绘图发布时间:2022-07-18
下一篇:
linux R语言 安装发布时间:2022-07-18
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap