1、我们使用SPSS做数据分析的时候,有时会因为问卷的设置或者数据的保存等原因,造成用于分析的数据部分缺失。我们分析数据前,需要先解决缺失数据问题,在再做分析。
2、在如图所示的案例中,我们需要对这几个变量做相关性分析。我们首先从Excel里面导入测试数据,依次点击“文件-打开-数据”,选择我们需要的测试数据所在的Excel表格。
3、在图示弹出的“打开Excel数据源”对话框中,我们在工作表下拉框中选择“sheet2”(因为测试数据放在sheet2了),然后单击确定即可。
4、接着,我们点开左下角的“数据视图”,仔细观看图示各变量的数据,发现中间用单个句点来标识的地方没有数据(这就是缺失数据,已用红色框标注出来)。
5、设置好后,我们点击确定,即可在输出文档看到分析的结果。结果包括:单变量的统计。估计均值,估计标准差,EM相关性和回归估计的统计量。
缺失值分为用户缺失值(User Missing Value)和系统缺失值(System Missing
Value)。用户缺失值指在问卷调查中,把被试不回答的一些选项当作缺失值来处理。用户缺失值的编码一般用研究者自己能够识别的数字来表示,如“0”、“9”、“99”等。系统缺失值主要指计算机默认的缺失方式,如果在输入数据时空缺了某些数据或输入了非法的字符,计算机就把其界定为缺失值,这时的数据标记为“•”。
一、定义缺失值
SPSS有系统缺失值和用户缺失值两类缺失值,系统默认为None(无)。当需要定义缺失值时,单击Missing下的含有“None”单元格,便进入图2-4的“缺失值”窗口。缺失值有以下3种选项:
No missing values:没有缺失值。
Discrete missing values:定义1~3个单一数为缺失值。
Range plus one optional discrete missing
values:定义指定范围为缺失值,同时指定另外一个不在这一范围的单一数为缺失值。
至于其他如单元格列长度(Columns)、单元格字符排列方向(Align)和数据量度(Measure)等均是不常用,一般使用系统默认值就可以了,以便减少工作量。
二、缺失值的处理
一般情况下,定义缺失值后的变量可以进行描述统计、相关分析等统计分析。但是,由于缺失值的出现往往会给统计分析带来一些麻烦和误差,尤其在时间序列分析中更是如此。在COMPUTE命令中,某个变量带有缺失值,则带有缺失值的个案也变成缺失值了。如图所示:
一般地,对缺失值的处理可采用如下方法:
第一,替代法。即采用统计命令Transform→Replace Missing
Values进行替代,或在相关统计功能中利用其【Opions】等参数进行替代。例如对上图表中的数据缺失值的处理:以T49这个变量中的所有数据的平均数为替代值,然后再进行COMPUTE命令处理。如图所示:
第二,剔除法。即剔除有缺失值的题目,或剔除有缺失值的整份问卷。
和大多数应用软件相同,SPSS中数据文件的管理功能基本上都集中在了File菜单上,该菜单的组织结构和WORD等也极为相似,因此这里我们只介绍比较有特色的几个菜单项。
SPSS 10.0有三个主要窗口界面:数据管理窗口、程序编辑窗口和结果浏览窗口;另有两个不常用的窗口:结果草稿浏览窗口和VBs脚本语言编辑窗口。他们共享许多菜单项,如File菜单就大部分相同,这里介绍的许多内容在五个窗口中都是通用的。
2.1.1 新建数据文件
如果你正从头开始进行一个新的课题,刚刚把数据收集上来,要做统计分析,自然需要新建一个数据库,然后将所有的数据从纸上请到计算机里。在SPSS中,新建一个数据库容易的不得了--已经到了什么都不用做的地步!是这样,当你进入SPSS系统时,系统就已经生成了一个空数据文件,即你看到的空白的数据管理界面。你只要按自己的需要定义变量,输入数据然后存盘就是了(这些操作马上会讲到)。
2.1.2 打开其他格式的数据文件
凡是做过数据输入工作的人都知道:这活又费眼睛又累人,出错太多了还要挨批评,非常影响个人的光辉形象。算了,还是在有限的经费里划几百美元出来雇个打字小姐吧(怎么用美元?因为我请了个老外!)。可是非常不幸,该同志只会用EXCEL 2000(又是一个被微软成功洗脑的家伙),数据现已输好,怎么转成SPSS数据文件呢?没关系,SPSS提供了以下几种方法来打开其他格式的数据文件。
2.1.2.1 直接打开
SPSS现在可以直接读入许多格式的数据文件,其中就包括EXCEL各个版本的数据文件。选择菜单File==>Open==>Data或直接单击快捷工具栏上的“”按钮,系统就会弹出Open File对话框,单击“文件类型”列表框,在里面能看到直接打开的数据文件格式,分别是:
SPSS(*.sav) SPSS数据文件(6.0~10.0版)
SPSS/PC+(*.sys) SPSS 4.0版数据文件
Systat(*.syd) *.syd格式的Systat数据文件
Systat(*.sys) *.sys格式的Systat数据文件
SPSS portable(*.por) SPSS便携格式的数据文件
EXCEL(*.xls) EXCEL数据文件(从5.0版~2000版)
Lotus(*.w*) Lotus数据文件
SYLK(*.slk) SYLK数据文件
dBase(*.dbf) dBase系列数据文件,(从dBase II~IV)
Text(*.txt) 纯文本格式的数据文件
data(*.dat) 纯文本格式的数据文件
选择所需的文件类型,然后选中需要打开的文件,SPSS就会按你的要求打开你要使用的数据文件,并自动转换为数据SPSS格式。
也许有视力好的朋友会注意到右下方除了“打开”和“取消”两个按钮外,中间还有一个“Paste”按钮,该按钮在SPSS的大多数对话框中都存在,是用于自动生成SPSS程序的,我们以后会专门讲解该问题。
2.1.2.2 使用数据库查询打开
SPSS可以直接打开许多类型的数据文件,但这并不是说它可以打开所有类型的数据文件(废话),比如FoxPro 3.0以上版本的*.dbf文件就不能直接打开(有兴趣的话你可以试试)。为此,SPSS还提供了另一个适用范围更广、但使用上较为专业的数据接口--数据库查询。
实际上,SPSS在这里使用的是一种叫ODBC(Open Database Capture)的数据接口,该接口被大多数数据库软件和办公软件(如MS Office)支持,通过它,应用程序可以直接访问以结构化查询语言(SQL)做为数据访问标准的数据库管理系统。
由于SPSS 10.0可以直接打开EXCEL所有系列的数据文件,因此数据库查询接口的用处不是很大。但是,在9.0及以前的版本中,该查询仍是直接打开EXCEL 95、97及2000数据文件的唯一办法。
ODBC数据引擎是独立与各种应用软件,直接安装到Windows系统中的,因此你所用的系统中ODBC所支持的数据类型取决于所安装的ODBC引擎的情况。还好,大多数支持该接口的软件都会在安装光盘上附送该引擎的安装文件(如MS Office)。不过有一点要提醒大家,许多机器的OBDC数据引擎安装有问题(尤其是D版),在SPSS中使用它往往要死机。
选择菜单File==>Open Database==>New Query,系统会弹出数据库向导的第一个窗口,其中会列出你使用的机器上已安装的所有数据库驱动程序,选中所需的数据源,然后单击下一步,向导会一步一步的提示你如何做,直至将数据读入SPSS。
我原来准备举一个具体例子,但后来发现不同版本的ODBC引擎所弹出的对话框并不相同!不仅如此,不同的数据驱动程序其对话框也各不相同!比如说,有的需要你的LoginID和Password,有的又不需要,因此我这里就不再讲了。由于它使用上太专业(尤其在10.0版中,9.0版还好些),如果确实要用,请找一个对数据库接口比较熟的人来帮你。
2.1.2.3 使用文本导入向导读入文本文件
选择菜单File==>Read Text Data,系统就会弹出Open File对话框,对!和前面的情况完全一样,只是文件类型自动跳到了Text (*.txt)。实际上,该功能在SPSS中已被整合到了Open File对话框中之所以在菜单上保留该条目有两个原因:1. 读入纯文本的情况非常普遍,放在这里更加醒目;2. 为了和SPSS老版本的使用上保持兼容。
例2.1 现有一数据文件以纯文本的形式存为“c:\Li2_1.txt”,且第一行为变量名,请将其读入SPSS。
解:在Open File对话框选中相应的文件名并单击“确定”,系统会自动启动文本导入向导对话框如下:
在SPSS 10.0中,该向导并没有重新设计,因此仍然有问题被截断无法显示完的情况出现。
可以看到该向导共分6步,这是第一步。中部为一对单选按钮,问题为“你的文本文件和预定义格式相一致吗?”,下方为按预定义格式读入的数据文件的预览。显然,SPSS的预定义格式并没有正确识别该文件。因此选择“No”并单击“下一步”,系统弹出向导的下一个对话框如下:
最上方的问题是“你的变量是如何排列的?”,下面的选项分别为Delimite(用某种字符区分)和Fixed Width(固定宽度),一般都是Delimite,第二个问题是“变量名包括在文件最前面了吗?”,我们当然选“Yes”,单击“下一步”,系统弹出第三个对话框:
最上方的句子意为“第一条记录从第几行开始?”,右侧可以输入行数。由于我们所用的数据 第一行为变量名,因此这里输入2。下面的问题是“你的记录是怎样存储在文件中的?”。可以是“每一行代表一条记录”,或者“每**个变量代表一条记录”,数据一般都是第一种情况。下一个问题是“你想导入多少条记录?”,可以是“所有记录”、“前**条”或“随机导入**%的记录”。一般也选前者。单击“下一步”,第四个对话框如下:
我这里写的非常详细,但实际使用中你可以不管大多数问题,因为SPSS一般都能自动正确设置。
最上方的问题为“变量间用的是哪种分隔符?”,可选的有Tab键、空格、逗号、分号或自行定义的其他符号。本数据采用的是空格,可见系统已经自动识别并选择了空格,而下方的数据预览窗口显示出了正确的数据读入情况。单击“下一步”,第五个对话框如下:
上方的提示为“定义在数据预览窗口中所选择的变量。”。顾名思义,在这个对话框中你可以在数据预览窗口中选择某一列变量,然后更改其变量名和类型。当然,在这里我们不用这样做,直接单击“下一步”,系统弹出文本导入向导的最后一个对话框如下:
最上面的问题为“你愿意保存这次的文件(读入)格式设置以备下次使用吗?”,第二个问题为“你是否愿意将以上操作粘贴为SPSS语句?”,一般这两个问题我们都可以不管。单击“完成”,系统最终成功的读入了Li2_1.txt。
2.1.3 保存数据文件
在对数据做了修改后,保存数据文件是必不可少的工作之一。选择菜单File==>Save,如果数据文件曾经存储过,则系统会自动按原文件名保存数据;否则,就会弹出和选择Save as 菜单时相同的Save as对话框。里面可以保存的数据类型和可以打开的几乎一样多,选择合适的类型,确定就是了。
Save命令的快捷键为^S,如果你曾经领教过Windows死机的巨大潜力,那么你一定会同意习惯性的随手按^S至少不能算是一个坏习惯。
如果你准备将数据存为SPSS以外的其他类型,要注意有些设置可能会丢失,如标签和缺失值等。尤其是缺失值,如果想存的数据格式不
用spssau分析的话,如果有空值在上传时系统会自动设置为null,通过【异常值】功能也可以进行设置。
缺失值经常在下列一些情况出现:
拒绝回答问题;
没有答案;
调查研究中的损耗;
从多个数据源中合并数据。
众所周知,在诸如收入、交通事故等问题的调查研究中,大量存在未回答的问题。以下是一些例子:
在一项消费者经济状况调查中,28%的受访者没有回答收入情况;
在一次人口调查中,20%的人没有回答收入情况,高收入者的回答率比中等收入者要低;
在严重交通事故报告中,诸如是否使用安全带和酒精浓度等关键问题在很多个案中都没有记录。
缺失值会表现为以下问题:
有缺失值的个案系统地不同于完整的个案;
有缺失值的个案表明信息不完整;
标准统计方法只接受完整数据。
以上问题意味着:
偏向:分析结果可能会有偏差;
无效:较少的有效个案导致估计精度下降;
某些情况下,诸如均值置换和列表删除等大量可用逼近方法可能过于天真,甚至是错误的
统计学家研究出一个缺失值逼近方法,如极大似然逼近(maximun likelihood,ML)。要使用ML,必须有数据模型和缺失值机制模型。数据模型可能是数据为多变量正态,缺失值机制模型可能是数据完全随机缺失(missing completely at random,MCAR)或者随机缺失(missing at random,MAR)。下面给出这些术语的定义和描述:
数据完全随机缺失(Missing Completely At Random,MCAR),表示缺失和变量的取值无关。例如,假设您在研究年龄和收入。如果缺失和年龄或收入数值无关,则缺失值方式为MCAR。要评估MCAR是否为站得住脚的假设,您可以用比较回答者和未回答者的分布来评估观察数据。也可以使用单变量t-检验或Little's MCAR多变量检验来进行更正规的评估。如果MCAR假设为真,可以使用列表删除(listwise deletion)(完整个案分析),无需担心估计偏差,尽管可能会丧失一些有效性。如果MCAR不成立,列表删除、均值置换等逼近方法就可能不是好的选择。
如果数据不为MCAR,可以考虑评估回答者和未回答者的特性差异是否能够用同时测度回答者和未回答者的变量来理解。这就引出了随时缺失(missing at random,MAR)的概念,其中缺失分布中调查变量只依赖于数据组数中有记录的变量。继续上面的例子,考虑到年龄全部被观察,而且收入有时有缺失。这样,如果收入缺失值仅依赖于年龄,缺失值就为MAR。如果收入缺失值依赖于收入值,则既不是MCAR,也不是MAR。
区别MCAR和MAR的含义在于:由于MCAR通常实际上很难遇到,应该在进行调查之前就考虑哪些重要变量可能会有非无效的未回答,还要尽量在调查中包括共变量,以便用这些变量来估算缺失值