所有由刘重杰发布的文章

使用回归分析,样本过少时不妨好先作图看看

回归分析往往是学统计、学计量课程时接触的第一个统计模型了,甚至不少人可能认为回归分析理所当然成为计量的绝大部分内容——毕竟很多教材中提到统计模型的时候,往往就一个OLS为主的讲法。回归分析的内容当然很广泛,也在学科中占据相对基础的位置。

学会OLS,有人还明白了ML等方法的含义;现在学统计分析的时候,或多或少会安排统计软件的实践课程,于是大家学会了使用Excel,乃至SAS中如何来做经典的回归分析。看过不少的文献,很多都忽略了回归分析模型诊断这个环节——可能很多标准教科书没有强调,甚至是没有讲;这不能不说是一个遗憾。

回归分析使用最广泛,误用的情况也多了些。下面使用一个经典的例子,来“恶心”一下那些“过分钟爱”经典回归分析的人——我在很多课堂上都举过这个例子(Anscombe),作为从基础课程向中级乃至高级课程的开场白。

x1 x2 x3 x4    y1   y2    y3    y4
1  10 10 10  8  8.04 9.14  7.46  6.58
2   8  8  8  8  6.95 8.14  6.77  5.76
3  13 13 13  8  7.58 8.74 12.74  7.71
4   9  9  9  8  8.81 8.77  7.11  8.84
5  11 11 11  8  8.33 9.26  7.81  8.47
6  14 14 14  8  9.96 8.10  8.84  7.04
7   6  6  6  8  7.24 6.13  6.08  5.25
8   4  4  4 19  4.26 3.10  5.39 12.50
9  12 12 12  8 10.84 9.13  8.15  5.56
10  7  7  7  8  4.82 7.26  6.42  7.91
11  5  5  5  8  5.68 4.74  5.73  6.89

上面有四对x,y,分别做经典回归分析的话,结果如下:

[[1]]
Estimate Std. Error  t value    Pr(>|t|)
(Intercept) 3.0000909  1.1247468 2.667348 0.025734051
x1          0.5000909  0.1179055 4.241455 0.002169629
[[2]]
Estimate Std. Error  t value    Pr(>|t|)
(Intercept) 3.000909  1.1253024 2.666758 0.025758941
x2          0.500000  0.1179637 4.238590 0.002178816
[[3]]
Estimate Std. Error  t value    Pr(>|t|)
(Intercept) 3.0024545  1.1244812 2.670080 0.025619109
x3          0.4997273  0.1178777 4.239372 0.002176305
[[4]]
Estimate Std. Error  t value    Pr(>|t|)
(Intercept) 3.0017273  1.1239211 2.670763 0.025590425
x4          0.4999091  0.1178189 4.243028 0.002164602

这时候你会发现p值、s.e.值都好的很,截距项和斜率项也非常好,甚至连R square都简直一模一样。

往往讲到这个时候,机灵点的学生就开始皱眉头了:数据差别挺大的,怎么模型都是一样呢!?

学过回归诊断的人立刻就嚷嚷来做个回归诊断来看看,四种情况下是不是有的属于“模型前提假设”不满足的情况。(当然,似乎本科阶段,教师没有过分强调这点的,很少有学生能自己自主的想到这点,所以往往让人感叹教学过程中的不完善。)

紧接着我就给他们做出一幅图:

anscombe

这时候他们有点明白,能回答说左上是我们“常见”的回归;右上完全就是二次曲线嘛;左下存在一个“异常点”;而右下,完全就属于“诡异”情形。

所以可以归纳一下:做统计模型的时候,一定记得要模型诊断下——重点就分析下残差是不是符合假设——这个是标准套路。如果你想“偷懒”,在只有一个自变量的时候,不妨在样本量不多(现在的统计软件已经非常强大了,数万对点很容易搞定;如果数据太多,你也可以抽样来试试嘛。)这样,“一眼”就能看出个大概了——这恐怕就是人比机器厉害的地方,人比模型厉害的地方。

Rcmdr: 山寨版的SPSS

可以认为R最传统的工作方式为命令行,估计大多数人最开始使用R的时候也会直接在console中就干活了。然后就是有的人使用R自带的那个脚本编辑器(至今为止,绝大部分时候面临较为简单的工作的时候,我还是用它),有的人则发现这个编辑器实在是太简陋了点,属于Notepad的精简版,从而会选择一个自己喜欢的编辑器来编写脚本。

很多人在介绍R的时候,就不约而同会描述“命令行,没鼠标点击完成”,有的人还会过犹不及的介绍说这显示了R的“先进性”等等。其实这应该算误解,在R中 也可以实现SPSS的那种“鼠标为主”的工作方式,其实SAS的一些模块也是“鼠标为主”,Stata、Splus等莫不如此。而我们的R也有完全可以支 持这种“鼠标为主”的用户工作方式,其实John Fox的Rcmdr包就是一个相当赞的尝试。而该包主要使用了R中最基础的tcl/tk等包,可以说只要你安装了推荐的一些包,再加上Rcmdr中的图像 框架就实现了很多人所要求的“鼠标”操作。 继续阅读Rcmdr: 山寨版的SPSS

刘重杰:和统计接触的经历

首次遇到益辉应该是在一个论坛上,讨论了各类专业统计软件的使用情况,就聊到了R。接着就开始到cos灌水,慢慢就认识了这个领域里面的很多朋友。而益辉等兄弟姐妹为在统计这个领域的推广“正确”方面实在是做出了极其有益处,乃至可以称为辉煌的工作。

我对统计学所知实在是业余水平。首先,我没系统正式的学过统计专业的课程;最多算一个自学者。其次,所从事的正式工作和职业中,和统计直接相关的几乎没有;最多只是擦边球式的“应用”了下统计技术和相应的软件。所以受邀而来,实在是汗颜。不过接触统计学倒是比较多,也足见这门学科的普遍和重要性。 继续阅读刘重杰:和统计接触的经历