R学习日记——线性回归分析
来源:互联网 发布:小型购物网站源码 编辑:程序博客网 时间:2024/06/06 15:41
先来介绍线性回归定义,本人较懒,直接引用百度百科的解释。
在统计学中,线性回归(LinearRegression)是利用称为线性回归方程的最小平方函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析。这种函数是一个或多个称为回归系数的模型参数的线性组合。只有一个自变量的情况称为简单回归,大于一个自变量情况的叫做多元回归。(这反过来又应当由多个相关的因变量预测的多元线性回归区别,[引文需要],而不是一个单一的标量变量。)
线性回归分析主要有两大用途,他们为:
1.预测:线性回归可以用来对观测数据集的和X的值拟合出一个预测模型。当完成这样一个模型以后,对于一个新增的X值,在没有给定与它相配对的y的情况下,可以用这个拟合过的模型预测出一个y值。(百度百科)
2.相关强度:给定一个变量y和一些变量X1,...,Xp,这些变量有可能与y相关,线性回归分析可以用来量化y与Xj之间相关性的强度,评估出与y不相关的Xj,并识别出哪些Xj的子集包含了关于y的冗余信息。
首先我们先看看回归分析的假设,我们在随后的分析中会用到这些假设。他们分别为:
1.独立性:自变量相互独立,没有相关性
2.同方差性:对自变量的所有观测值,随机误差项均有相同的方差
3.正态性:随机误差项服从正态分布。
OK,我们开始建立线性回归模型进行预测。
这次的要预测的内容是:利用上市公司当年公开的财务指标对来年的盈利状况进行预测。本次案例随机抽取了深市和沪市02年和03年各500个样本,对上市公司的净资产收益率(returnon equity ROE)进行预测。(案例内容,莫吐槽)。
先来看看我们有哪些变量:
因变量:下一年的净资产收益率(ROE,也是我们要预测的变量)
自变量:1.ROEt:当年净资产收益率
建模第一步,数据探索。
建模之前,我们要熟悉一下整体数据的情况,看是否需要标准化处理。下图为数据情况。
然后进行数据探索,观察这些数据的均值、中位数等情况。
第三,进行相关分析,看看各自变量间是否独立。
这时会发现,ROEt与因变量ROE有强相关性(吼吼,但是与其他自变量没有相关性)
>plot(a1$ROEt,a1$ROE)
第二,开始初步建模,并检验模型(检验模型的三个假设,前文已经验证了一个)。
1.初步建模。
通过F检验,发现初步建模的模型线性关系显著。但从T检验发现,只有ROEt、LEV和GROWTH三个自变量与因变量线性关系较为显著(注意,并不是说其余字段可以剔除)。
2.模型诊断,即显著性检验。
>par(mfrow= c(2,2)) #设置画图为 2x2的格式
>plot(lm1,which=c(1:4))#画出 lm1 中对应于模型检验的 4 张图, 包括残差图(自变量随机误差项是否同方差)、QQ图(检验随机误差项是否正态分布)和Cook距离图(检验异常值)
从上图分析得出,模型符合假设,但47号数据是异常数据,应以剔除。
>a1=a1(-47)
剔除后模型拟合效果及检验:
>lm2=lm(ROE~ROEtATO+PM+LEV+GROWTH+PB+ARR+INV+ASSET,data=a1)
>summary(lm2)
第三,检验自变量多重共线性(实际当中我很少考虑,呵呵,偷工减料了)
通过方差膨胀因子检验。定义:容忍度的倒数,VIF越大,显示共线性越严重。经验判断方法表明:当0<VIF<10,不存在多重共线性;当10≤VIF<100,存在较强的多重共线性;当VIF≥100,存在严重多重共线性。
根据数据发现,各个自变量的VIF都在10以内,没有多重共线性问题。模型检验结束。
再给一个R中线性回归选择变量的方法。通过AIC和BIC选择。
AIC方法比较保守,其中p 为自变量个数, 与RSS 成反比。使AIC达到最小的模型是最优的。
BIC相对不那么保守,因此保留的变量可能会比较少。
第四,模型建立完毕,我们进行模型的效果检验及各个模型之间的效果比对。
以2003年数据为检验数据,可以用如下方法对数据进行准备。
建立模型机效果比对。阅读全文
0 0
- R学习日记——线性回归分析
- R中的线性回归分析
- R语言学习-线性回归
- R语言——线性回归
- 利用R进行多元线性回归分析
- R假设检验与一元线性回归分析
- R软件做线性回归分析
- R语言多元线性回归分析
- 应用统计学与R语言实现学习笔记(九)——线性回归
- 机器学习-5 线性回归 with R
- 机器学习--线性回归R语言
- R语言学习之简单线性回归
- R语言系列—回归分析
- 【机器学习算法】基于R语言的多元线性回归分析
- R 线性回归拟合
- R多元线性回归
- R语言线性回归
- R---简单线性回归
- 创建公有 Pods 库
- window提取一个文件夹内所有文件的名称
- 进程等待-wait_event_interruptible 使用方法
- Spring容器中的Bean几种初始化方法和销毁方法的先后顺序
- Linux Bash4种变量
- R学习日记——线性回归分析
- 【Unity3D入门】Unity3D学习笔记003——在Unity中创建一个工程
- Web开发的MVVM模式
- ODPS使用之上传下载数据
- 奥威Power-BI数据可视化分析--渠道销售管理驾驶舱
- Unity中FixedUpdate和Update的区别
- bos_fore_宣传办款,点击图片进入详情
- Java学习之旅--集合的使用(Map集合)
- 自编STM32轻量级操作系统(三)------内存管理