在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
预测回归方法都比较基础,适合初学者。 绿色部分为R语言实现的代码。 一、 样本导入 包:openxlsx ##用来导入excel的包 选择好相关需测试的样本(以excel为例),导入。 library(openxlsx) 二、OLS多元回归 包:car 直接从多元开始,一元就变得很简单啦。 1. 检验变量间的相关性() library(car) 嗯以上函数跑出来的表和图就如下所示(我回归的变量太多啦),讲一下图的具体看法是:对角线上的为每个变量的密度图和轴须图,非对角线的部分就是变量间的散点图,以及R自动添加的平滑和线性拟合线。 嗯以上函数跑出来的表和图就如下所示(我回归的变量太多啦),讲一下图的具体看法是:对角线上的为每个变量的密度图和轴须图,非对角线的部分就是变量间的散点图,以及R自动添加的平滑和线性拟合线。 2. 回归 用lm() 函数进行回归,可以使用逐步增加或逐步减少变量的方式来找出合适的拟合方程(合适的方程一般为每个变量都显著、调整后的R方最接近1)。 myfit<-lm(y~x1+x2+x3+x4+x5+x6+x7+x8+x9+x10+x11+x12,data=b) ##data= 指数据源的意思,我这里的x1,x2...都是b中的列名 summary(myfit) ##查看模型拟合的基本情况,如下图
3. 回归诊断 回归诊断非常重要,因为它可以对你拟合出来的结果进行可行性的判断。一方面,可以判断是否符合OLS的回归假设,一方面,可以找出是否有离群点,因为离群点的无规律性会造成数据的无序,从而影响预测变量和响应变量间的关系。很多时候 剔除离群点后再回归R方会明显升高。 par(mfrow=c(2,2)) ##将画面分成2*2的图 plot(myfit) ##绘制plot()函数,一共是4幅图 4幅图的OLS解读(从左到右,从上到下): 1)线性:若x与y线性相关,则残差和拟合应该没有任何系统关联,如果图1)呈现出曲线,可能要考虑给方程加二次项。 2)正态性:当预测变量的值固定时,因变量成正态分布,因此残差也应该为均值为0的正态分布。Q-Q图是在正态分布对应的值下,标准化残差的概率图。若满足正态假设,则图上的点应落在图中的45度线上。若不是,则违反了正态分布的假设。 3)同方差性:若满足方差不变则3)中的点应均匀分布在红色水平线两侧。 4)离群点、杠杆值、强影响点:在4)中可以看到观测点75是个强影响点,依据是它距离cook's distance 距离较远(其实除此之外75也没满足前3个图中的假设),因此删除它可以使得拟合效果更好。不过,删变量要尽量谨慎,不能一昧追求回归效果好而删原始值(因为我们是用模型匹配数据,不是用数据去匹配模型)。 以上只是回归诊断的基本方法,之后会逐渐更新更好的方法。 三、 跨期测试 用非样本的数据跑模型,看模型预测的情况。一般可以画图或者计算残差平方和、R方来看跨期拟合的情况。 rss <-sum((actual-predict) ^ 2) ##残差平方和,也称rss rsq <- 1 - (rss/tss) ## R方=1-(rss/tss),当然R方也有别的算法,比如 R方=sse/tss,其中sse即解释平方和。 多说一句,RSS,TSS,SSE以及R方的公式如下,具体理解建议参考知乎的高赞回答,和我大学老师解释的方法一样,清楚且易于理解。 |
请发表评论