R语言课件

Download Report

Transcript R语言课件

R语言与回归分析




R简介
R语言分析一个简单的线性模型
总结与展望
作业
R简介
1.S语言与R
2.R的安装与运行
3. R程序包的安装及使用
4. R语言中的几点注意事项
S语言与R
 R是一个有着强大统计分析及作图功能的软
件系统
 R语言可以看作是贝尔实验室开发的S语言
的一种实现或形式
 S语言主要内含在S-PLUS软件中,可将R
和S-PLUS视为S语言的两种形式
 S/S-PLUS方面的文档都可以直接用于R
R的安装与运行
R的安装:从网址http://www.r-project.org/
下载R的安装程序和R程序包
(R下载地址:http://cran.rproject.org/bin/windows/base/)
http://www.r-project.org/,单击download R
单击Windows ,在单击base 单击
Download R 2.11.1 for Windows
R程序包的安装
(1)菜单方式:联网条件下,按程序包 安装
程序包 
 选择CRAN镜像服务器
 选择程序包
(2)命令方式:install.packages(“PKname”)
(3)本地安装:下载需要的程序包及与之关联
的程序包,再用“程序包”菜单中的“用
本机的zip文件安装程序包”
R程序包的使用
除R的标准程序包外,新安装的程序包使用前必须载
入,两种载入方式:
(1)菜单方式:
通过“程序包”菜单中的“载入程序包”,再从已
有程序包中选定需要的一个加载;
(2) 命令方式:
在命令提示符后键入
>libiary(“PKname”) # 或 libiary(‘PK name’) ,
libiary(PKname)
R语言中的几点注意事项
 R语言区分大小写,即A与a不同;正
常情况下所有字母和数字都是可用的。
 命令由(;)分隔,或另起新行。
 基本命令由({和})合并成复合表达式
 注释以(#)开始,到行末结束。
 命令未结束,R给出提示符(+)。
R语言与线性回归
 线性回归模型的简单回顾
 如何应用R语言进行回归分析
线性回归模型的简单回顾
Y通常称为因变量或响应变量,X称为自变
量或预报变量。Y值由两部分组成,一部分
由X决定是X的函数,记为f(X);另一部分由
其他为考虑因素所产生的影响被称为随机
误差,记为e。模型记为:
Y=f(X)+e
要求 E(e)=0,特别的f(X)取为线性函数。
线性回归模型的简单回顾
 回归分析的主要目的是探寻因变量与自变
量之间的关系。
 最常用的函数形式是线性函数,含有p个自
变量的一般线性模型:
yi  0  1xi1  2 xi 2 
 p xip   i
其中 0 为常数项, j ( j  1, 2, , p) 为第j个解
释型变量 xij 的回归系数,它意味着,若 xij
变化一个单位,可以预期 yi 变化多少单位。
线性回归模型的简单回顾
对此普通线性模型做如下假定:
(1)独立性:不同观测值之间相互独立的;残
差项同解释性变量之间是独立的。
(2)常方差:即残差  i 的方差不依赖于自变量
的取值,为一个常数。
(3)正态性:即残差项 i 是服从正态分布的。
案例介绍
背景、目标、变量和分析
案例背景
 目前中国的资本市场逐渐成熟,投资于股市成
为众多企业乃至个人的重要理财方式。因此利
用上市公司当年的公开的财务指标对其来年盈
利状况予以预测就成为投资人最重要的决策依
据。
 本案例随机抽取深市和沪市2002年和2003年
各500个样本,对上市公司的净资产收益率
(return on equity, ROE)进行预测。
案例目标与变量
 目标:盈利预测
 因变量:下一年的净资产收益率(ROE)
 自变量:当年的财务信息
 样本容量:2002年500;2003年500
自变量
 ROEt: 当年净资产收益率
 ATO: 资产周转率(asset turnover ratio)
 LEV: 债务资本比率(debt to asset ratio)
反映公司基本债务状况
 PB: 市倍率(price to book ratio)
反映公司预期未来成长率
 ARR: 应收账款/主营业务收入(account
receivable over total income)
反映公司的收入质量
对模型的进一步分析
 哪个自变量在预测方面最有用?
 哪个自变量是最重要的?
 如何使用模型进行预测?
描述分析
获得对数据的整体性认识
数据读取
(1)使用函数read.table()创建数据框
>rm(list=ls()) #清理当前工作空间
a<-read.table("D:\\暑期建模
\\CH1\\roe.txt",header=T)
(2)使用函数scan()比read.table()更灵活,
并且可以指定变量的类型
Excel数据读取
(1)利用剪切板:打开Excel电子表格,选中
需要数据,复制到剪切板。然后键入命令
>a<-read.delim("clipboard")
(2)使用程序包RODBC
>library(RODBC)
b<-odbcConnectExcel("d:/暑期建模
/CH1/roe.xls")
a<-sqlFetch(b,"roe")
数据保存
 > save(a,file="a.RData")
load("d:\\我的文档\\a.RData")#调用以保存
数据
 write.table(a, "a.txt")#保存为文本文档
 write.csv(a, "a.csv")
 a1=a[a$year==2002,-1]
save(a1,file="a1.RData")
显示数据
变量的概括性度量
 a1=a[a$year==2002,-1] #从a中选出year为2002
的数据,并删除第1列,然后赋值给a1
 Mean=sapply(a1,mean) #计算a1中各列的均值
 Min=sapply(a1,min)#计算a1中各列的最小值
 Median=sapply(a1,median) #计算a1中各列的中
位数
 Max=sapply(a1,max) #计算a1中各列的最大值
 SD=sapply(a1,sd) #计算a1中各列的标准差
 cbind(Mean,Min,Median,Max,SD) #将均值、最
小值、中位数、最大值、标准差集中在一起展示
试验结果
变量间的相关性
 散点图是一种最简单的相关分析工具
通过函数 pairs()观察各个变量间的相关性
命令:> pairs(a,panel=panel.smooth)
 随机变量样本的相关系数
>round(cor(a),3)
 相关性检验 ,使用函数cor.test()
应用R语言命令:plot(a1$ROEt,a1$ROE)
绘制散点图,可以看出ROEt与ROE的相关性
模型的建立
模型、假设和参数估计
模型形式及假设
 线性回归模型
yi  0  1xi1  2 xi 2    p xip   i
 模型假设
(1)独立性假设
(2)同方差假设
(3)正态性假设
参数估计
 模型:
yi  0  1xi1  2 xi 2    p xip   i
 最小二乘估计量:

RSS   yi  ˆ0  ˆ1 xi1  ˆ2 xi 2    ˆ p xip
RSS
2
 方差估计量:ˆ 
n  p 1

2
参数估计
用矩阵形式表示线性模型记为
Y  X e
其中   (0 , 1,  p )' 是回归系数变量,
Y  ( y1 , , yn )' 是因变量向量,e  (1 , ,  n )'
是随机扰动向量,而X为设计矩阵。
当( X ' X )1 存在时,回归参数  的最小二乘
1
估计为 ( X ' X ) X 'Y 。
参数估计的R软件实现
 R语句:使用函数lm()
>lm1=lm(ROE~ROEt+ATO+PM+LE
V+GROWTH+PB+ARR+INV+ASS
ET,data=a1)
summary(lm1)
注:我们采用2002年数据拟合模型
拟合优度
 总平方和
 残差平方和
SST    yi  y 
2
SSE    yi  yˆi 
2
计算残差函数residuals()
 R-Square
SSE
R  1
SST
2
显著性检验
F检验、T检验
F检验
 假设
H0 : i  0 i vs
H1 : i  0i
 检验统计量
SST  SSE  / p

F
~ Fp,n p 1
SSE /  n  p  1
 拒绝域
F  Fp,n p1,1
T检验
 假设
H 0 : i  0
 检验统计量
 拒绝域
vs
T
ˆi
H1 : i  0
v  x ˆ
~ tn  p 1
T  tn p1,1 / 2
各个结果的含义





第一列:参数的估计值
第二列:各个参数估计的标准差
第三列:通过样本计算得T检验统计量的值
第四列:通过T检验计算的p值
Residual standard error(残差标准误)
SSE /  n  p  1
R-squared(判别系数)
显著性检验的结论
 从F检验的结果看,模型的线性关系是显著的。
 从T检验的结果看,ROEt和LEV两个变量通过
了检验,GROWTH变量在显著性水平降至0.1
时也可以通过检验,因此这三个变量与因变量
的线性关系较为显著。
 注意,这不说明应该删除其它变量!
模型的诊断
异方差性、非正态性、异常值
同方差性检验
正
常
的
残
差
图
同方差性检验
观
测
值
不
独
立
同方差性检验
差方
相差
等齐
假性
设不
不成
成立
立(
)即
方
同方差性检验
应
改
为
曲
线
正态性检验
若
 t ~ N (,  2 )
, 并且
P t  q   
 则有
  t   q   
P

 
 
 
正态性检验
 进一步,可得到
q  

 z
 以及 q  z  
 所以在正态性假设下,残差  t 与 z 应该
成线性关系。
正态性检验
Q-Q 图
 残差: 1 ,  2 ,,  n
 将残差排序:  1   2     n 
 Y:  1 ,  2 ,,  n 
 X: z1/ n , z2 / n ,, zn / n
将上面的方法应用于本案例
 目标1:检验模型是否符合三个假设
 目标2:找出异常值
 R语句:
par(mfrow=c(2,2)) #设置画图为2x2的格式
plot(lm1,which=c(1:4)) #画出lm1中对应于
模型检验的4张图,包括残差图、QQ图和
Cook距离图
 检验发现47号数据为异常值,需要将其消除
语句:a1=a1(-47)
应用上述方法,绘制拟合模型的诊断图
异常点的识别
 一般把标准化残差的绝对值大于等于2的观
测点认为是可疑点;而标准化残差的绝对
值大于等于3的观测点认为是异常点。
剔除异常点
 a1=a1[-47,] #删除a1中第47行的观测
 lm2=lm(ROE~ROEt+ATO+PM+LEV+GRO
WTH+PB+ARR+INV+ASSET,data=a1) #
用上一行命令得到的新数据a1再次拟合线
型回归模型,结果赋值给lm2
 plot(lm2,which=c(1:4)) #画出lm2中对应于
模型检验的4张图,包括残差图、QQ图和
Cook距离图
拟合结果
47为异常点去掉之后,拟合模型诊断图如下
多重共线性
含义及检验
共线性含义
 共线性问题是指拟合多元线性回归时,
自变量之间存在线性关系或近似线性关
系。
 自变量间的线性关系将隐蔽变量的显著
性,增加参数估计的误差,会产生不稳
定的模型
一个例子
 假如有两个变量x1和x2,用最小二乘法得到如
下参数估计量。
方差膨胀因子
 定义下面的回归形式为辅助回归
xi  a   b j x j  e
j i
2
R
 令 i 为辅助回归的判定系数
 则方差膨胀因子为: VIFi 
1
2
1  Ri
 它反映了在多大程度上第i个自变量所包含的
信息被其他自变量覆盖
方差膨胀因子
 R语句:函数vif()
 所有的VIF值都小于10且接近1,所以没有多
重共线性问题。
注:VIF>10,表明模型中有很强的共线性问题
变量选择
AIC准则、BIC准则
AIC 和 BIC
 AIC方法比较保守,其中p为自变量个数,与
RSS成反比。
  RSS 

AIC  n log 
  1  log  2   2  p
  n 

 使AIC达到最小的模型是最优的
 BIC相对不那么保守,因此保留的变量可能会
比较少。
  RSS 

BIC  n log 
  1  log  2   log  n   p
  n 

预测
预测值与置信区间
yˆ 0  ˆ0  ˆ1 x01  ˆ 2 x02    ˆ p x0 p
1
ˆ


P.I.: x0   tn p1ˆ 1  x0 ( X X ) x0
1
ˆ


C.I.: x0   tn p 1ˆ x0 ( X X ) x0
数据准备
 以2003年数据为检验数据,可以用如下方法
对数据进行准备
预测
R语言的特点
 免费
 浮点运算功能强大
 不依赖于操作系统
 帮助功能完善
 作图功能强大
R的特点
 统计分析能力尤为突出
 可移植性强
 强大的拓展与开发能力
 灵活而不死板