一份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个样本后就变得不显著了。所以做回归分析稳健性检验也比较重要.(Via:互联网分析沙龙)

原文发布于微信公众号 - 大数据挖掘DT数据分析(datadw)

原文发表时间:2015-04-13

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏AI科技评论

开发丨深度学习框架太抽象?其实不外乎这五大核心组件

许多初学者觉得深度学习框架抽象,虽然调用了几个函数/方法,计算了几个数学难题,但始终不能理解这些框架的全貌。 为了更好地认识深度学习框架,也为了给一些想要自己亲...

3334
来自专栏WOLFRAM

Wolfram 语言的新功能:增强的求导功能

1788
来自专栏北京马哥教育

高阶实战 | 如何用Python检测伪造的视频

译者注:本文以一段自打24小时耳光的视频为例子,介绍了如何利用均值哈希算法来检查重复视频帧。以下是译文。 有人在网上上传了一段视频,他打了自己24个小时的耳光。...

3045
来自专栏AI科技大本营的专栏

AI 技术讲座精选:条件概率和贝叶斯定理简介

前 言 数据科学专家必须了解概率方面的知识。通常情况下,解决许多数据科学难题的办法与概率的本质息息相关。因此,更好地理解概率能够帮助你更有效率地理解并实现与之相...

3275
来自专栏机器之心

资源 | Synonyms:一个开源的中文近义词工具包

3858
来自专栏机器之心

学界 | Jeff Dean新提出机器学习索引替代B-Trees:可提速3倍

3385
来自专栏人工智能头条

实战 | 手把手教你搭一个机器翻译模型

1926
来自专栏机器学习之旅

python开发:特征工程代码模版(二)

正题开始: 这篇文章是入门级的特征处理的打包解决方案的python实现汇总,如果想get一些新鲜血液的朋友可以叉了,只是方便玩数据的人进行数据特征筛选的代码集...

803
来自专栏数据派THU

手把手教你深度学习强大算法进行序列学习(附Python代码)

本文共3200字,建议阅读10分钟。 本文将教你使用做紧致预测树的算法来进行序列学习。

1044
来自专栏AI科技评论

开发 | Google发布自然语言处理解析器SLING,免除模块化分析级联效应产生的缺陷

AI科技评论消息,日前,Google发布自然语言框架语义解析器SLING,它能以语义框架图(semantic frame graph)的形式,将自然语言文本直接...

3477

扫描关注云+社区