SPSS回归分析与数据预处理体会
关于SPSS数据预处理
拿到一份数据,或者在看到国内外某个学者的文章有想法而自己手里的数据刚好符合这个想法可以做时,在整理好数据后不要急于建模。一定要对数据做缺失值处理、异常值处理。在数据预处理的基础上再进一步建模,否则可能得到错误的结果。
心得1:数据预处理怎么做。
一是 缺失值的处理。我个人有几个看法:
数据样本量足够大,在删除缺失值样本的情况下不影响估计总体情况,可考虑删除缺失值;
二是数据样本量本身不大的情况下,可从以下两点考虑:1是采用缺失值替换,SPSS中具体操作为“转换”菜单下的“替换缺失值”功能,里面有5种替换的方法。若数据样本量不大,同质性比较强,可考虑总体均值替换方法,如数据来自不同的总体(如我做农户调研不同村的数据),可考虑以一个小总体的均值作为替换(如我以一个村的均值替换缺失值)。2是根据原始问卷结合客观实际自行推断估计一个缺失值的样本值,或者以一个类似家庭的值补充缺失值。心得2:数据预处理第二点异常值的处理。
我大概学了两门统计软件SPSS和Stata,SPSS用的时间久些,熟悉一下,Stata最近才学,不是太熟。关于这点我结合着来说。关于异常值的处理可分为两点,一是怎么判定一个值是异常值,二是怎么去处理。
判定异常值的方法我个人认为常用的有两点:1是描述性统计分析,看均值、标准差和最大最小值。一般情况下,若标准差远远大于均值,可粗略判定数据存在异常值。2是通过做指标的箱图判定,箱图上加“*”的个案即为异常个案。
发现了异常值,接下来说怎么处理的问题。大概有三种方法:
1是正偏态分布数据取对数处理。我做农户微观实证研究,很多时候得到的数据(如收入)都有很大的异常值,数据呈正偏态分布,这种我一般是取对数处理数据。若原始数据中还有0,取对数ln(0)没意义,我就取ln(x+1)处理;
2是样本量足够大删除异常值样本;
3是从stata里学到的,对数据做结尾或者缩尾处理。这里的结尾处理其实就是同第二个方法,在样本量足够大的情况下删除首尾1%-5%的样本。缩尾指的是人为改变异常值大小。如有一组数据,均值为50,存在几个异常值,都是500多(我这么说有点夸张,大概是这个意思),缩尾处理就是将这几个500多的数据人为改为均值+3标准差左右数据大小,如改为100。
总结而言,我个人认为做数据变换的方式比较好,数据变换后再做图或描述性统计看数据分布情况,再剔除个别极端异常值。
关于SPSS回归分析心得1:如何做好回归分析。
经过多次实战,以及看了N多视频,上了N多课,看了N多专业的书。我个人总结做回归的步奏如下:
1对数据进行预处理,替换缺失值和处理异常值;
2是将单个自变量分别与因变量做散点图和做回归,判定其趋势,并做好记录(尤其是系数正负号,要特别记录);
3是自变量和因变量一起做相关系数,看各个变量相关关系强弱,为下一步检验多重共线性做准备;
4是自变量多重共线性诊断。若变量存在多重共线性,可采用主成分回归,即先将存在多重共线性的变量做主成分分析合并为1个变量,然后再将合并成的新变量和其余自变量一起纳入模型做回归;
5是做残差图,看残差图分布是否均匀(一般在+-3个单位之间均匀分布就比较好);
6是报告相应结果。
心得2:看到论坛上有网友问为什么他(她)老师不建议采用后向步进法处理变量多重共线性。
记得张文彤老师说过他有个同学做过一个研究,即采用后向步进法剔除变量的方式去做回归,得到的结果犯错的几率比较大。张老师也不建议用这个方法处理多重共线性。处理多重共线性比较好的方法是做主成分回归。
心得3:有个朋友问我在报到回归结果时用未标准化的回归系数好,还是用标准化后的回归系数好。
我个人觉得这个问题仁者见仁智者见智,要看想表达什么。具体而言,如果想表达在其它条件不变的情况下,自变量X每变化1个单位,因变量变化多少个单位,这种情况用未标准化回归系数就好;如果想比较各个自变量对因变量影响的相对大小,即判断相对而言,哪个变量对因变量影响更大。这时需要消除量纲的影响,看标准化后的回归系数。
心得4:这是投稿一篇SSCI外审专家提出的意见。
我做的是 无序多分类logistic回归模型。因变量分了5类,有一类个数比较多,达到300多,有1-2类个案比较少,只有30左右。专家提到了要做稳健性检验。这个用stata软件编程加一个robust即可解决问题。不知道在SPSS里面怎么做。欢迎知道的朋友一起讨论下。我个人认为这是一个好问题的。不做稳健性检验模型可能受一些极端值的影响,结果不稳定。可能本来显著的变量剔除1-2个样本后就变得不显著了。所以做回归分析稳健性检验也比较重要。