刚刚学习数据分析的人应该知道回归分析是作为预测用的一种模型,它主要是通过函数来表达因变量(连续值)和自变量变量的关系,通俗的来说就是Y和X的关系通过公式表达出来;这样能够表明因变量和自变量之间的显著关系并且是函数关系,还可以表明多个自变量对一个因变量的影响强度,回归分析主要运用在预测分析上,虽然说是预测,但是有时候我们的回归模型只是被用来解释现场,并不需要去预测,例如,科学家猜想人的体重和某种特定的食物消耗有关; 1、线性回归 在古典的线性回归模型中是要满足几个假定: A假设自变量和因变量存在线性关系,具体的说就是假设因变量Y,是一些自变量X1,X2,..,XN的一个线性函数它的表达式 B零均值假定,就是假定回归线通过X与Y的条件均值组成的点; C同方差假定,就是各个随机误差项的离散程度是相同的,也就是说对于每个X,随机项相对均值的分散程度是相同 D无自相关,就是随机扰动项之间是互不相关的,互补影响,也就是说随机扰动项是完全随机分布的 E因变量和扰动项是完全不相关的假定; F扰动项正态性假定,就是假定扰动项服从均值为零,方差为司格马的正太分布 其中回归模型的表达式写法如下 其中e是随机扰动项,也有写法是这样,Y=a+bX+e,其中a是截距项,b是斜率,e是随机扰动项; 参数最优---最小二乘法 竟然存在参数,那么如何获取到最佳的参数呢,简单线性模型使用的普通最小二乘法,这里就不写明写详细步骤了,这个可以利用搜索引擎查的得到,我就说说它的主要思想就好,因为我们在拟合过程的时候我们要使回归线尽量靠近所有的样本点,这时候我们就要使它们残差尽量小,因为残差是有负有正,所以我们就采用平方去处理,采用平方和最小原则,通过求导,使其导数为零,求解得到最优的参数,这样就能够使回归模型应该使所有观察值的残差平方和最小;大致就是这样,文字描述有些吃力,有什么问题可以评论一起交流 R语言实践 这里我使用的我最近读和做笔记的R语言核心技术手册的包nutshell中的team.batting.00to08数据,这个数据是2000年到2008年棒球队的数据,我们想要看看棒球队的得分和每个变量的关系; 载入数据 library(nutshell) data("team.batting.00to08") 查看数据的前六行 这就说明了数据已经被我们完全的载入进来了,也知道有多少个变量以及变量的名字,这时候我们要大体的知道一下大体的概括,这时候使用的summary()函数 summary(team.batting.00to08) 在棒球中RUNS就是球队的得分,时间是从2000年到2008年等 这时候想看看各个变量之间相关性如何 ,粗劣的使用cor函数得到它们之间的相关系数矩阵,因为数据框存在字符,所以我们要提出第一第二列 cor(team.batting.00to08[,3:10]) 大致可以判断的出来得分和跑动距离和全垒打(homerus)相关系数较大; 这里我们经常使用R语言里面的Lm函数去拟合以上变量,然后得到模型,然后使用summary()函数打印更多关于模型的信息 runs.lm <- lm(runs~singles+doubles+triples+homeruns+walks+hitbypitch+sacrificeflies+stolenbases+caughtstealing,data=team.batting.00to08) summary(runs.lm) 从上图结果可以知道,R的可决系数是0.9114,模型F值较大,通过显著性检验,其中变量caughtstealing和stolenbases和runs不显著的关系,这个需要剔除; 我们可以手动剔除也可以使用step函数自动剔除 runs.lm_a <- lm(runs~singles+doubles+triples+homeruns+walks+hitbypitch+sacrificeflies,data=team.batting.00to08) runs.lm_b<-step(runs.lm) 这个就讲到这里,这个下面几篇文章会讲到用什么方法得到这样的结果 参考文献代码 R语言核心技术手册 End 号外:12月29日周四晚,甲骨文公司商务智能资深技术顾问赵昌明主讲《Oracle大数据分析之数据探索在金融业的应用》 报名方式 :扫描下方二维码 | 阅读原文 |
|