专栏首页机器学习AI算法工程一份SPSS回归分析与数据预处理的心得体会

一份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)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

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

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 基于高斯分布和OneClassSVM的异常点检测

    大多数数据挖掘或数据工作中,异常点都会在数据的预处理过程中被认为是“噪音”而剔除,以避免其对总体数据评估和分析挖掘的影响。但某些情况下,如果数据工作的目标就是围...

    机器学习AI算法工程
  • 年薪至少20万,大数据人才到底值钱在什么地方?

    周末跟一做人才外包服务朋友聊天,提到自己正在学习大数据[注]技术的时候。他直接就说到他现在有需求,但就是招不到合适的人才。然后提到说现在大数据人才的价值,收入,...

    机器学习AI算法工程
  • [python案例]金融知识图谱构建流程

    查询与“平安银行”相关信息(所属概念板块、发布公告、属于深股通/沪股通、股东信息)

    机器学习AI算法工程
  • 华中科大骆清铭:开启“脑空间信息计划”,连接脑科学与类脑人工智能

    【新智元导读】华中科技大学(苏州)脑空间信息技术研究院启动在即,旨在使工业级高分辨率脑图成为神经科学的标准工具。这一项目由华中科技大学生物医学成像研究者骆清铭领...

    新智元
  • React Native 一站式开发解决方案

    分享一个RN快速开发库:react-native-easy-app 。一款为React Native App开发提供基础服务的纯JS库(支持 IOS & And...

    rufeng008
  • SpringMVC异常的处理机制

    **系统的dao、service、controller出现异常都通过throws Exception向上抛出,最后由springmvc前端控制器交由异常处理器进...

    一只胡说八道的猴子
  • LeetCode题目28:实现strStr()

    给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存...

    二环宇少
  • 课程笔记2--fMRI数据结构

    时间分辨率(temporal resolution):时间分辨率由扫描一张图片所需的时间决定,事实上扫描一张图片的时间是由一个扫描时的参数TR决定的。他决定了我...

    锦小年
  • 让二次元妹子动起来,用一张图生成动态虚拟主播

    我使用的方法结合了之前两项研究。一是 Pumarola et al. 2018 年的 GANimation 论文《GANimation: Anatomicall...

    机器之心
  • ROS 2工具-rqt, logger, bag, doctor-

    ros2 bag play rosbag2_2019_12_11-20_47_57

    zhangrelay

扫码关注云+社区

领取腾讯云代金券