重编码可以处理python 缺失值处理吗

spss 怎么设置缺失值?_百度知道
spss 怎么设置缺失值?
我有更好的答案
缺失值分为用户缺失值(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命令处理。如图所示:
第二,剔除法。即剔除有缺失值的题目,或剔除有缺失值的整份问卷。
缺失值经常在下列一些情况出现:  拒绝回答问题;  没有答案;  调查研究中的损耗;  从多个数据源中合并数据。  众所周知,在诸如收入、交通事故等问题的调查研究中,大量存在未回答的问题。以下是一些例子:  在一项消费者经济状况调查中,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通常实际上很难遇到,应该在进行调查之前就考虑哪些重要变量可能会有非无效的未回答,还要尽量在调查中包括共变量,以便用这些变量来估算缺失值
众所周知,在诸如收入、交通事故等问题的调查研究中,大量存在未回答的问题。以下是一些例子:  在一项消费者经济状况调查中,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通常实际上很难遇到,应该在进行调查之前就考虑哪些重要变量可能会有非无效的未回答,还要尽量在调查中包括共变量,以便用这些变量来估算缺失值MCAR举例   图一显示了相关系数为0.6的两个高斯变量X和Y的1000个观测值的散点图。图一  假设对X和Y随机地删除了大约5%的回答。在这样的随机机制下,期望结果数据为MCAR。对结果变量XMISS和YMISS进行相关分析,相关系数用基于列表删除的方法来计算,期望这个相关是已知相关0.6的无偏估计。图二显示了SPSS相关分析的结果。  在图二中,我们看到XMISS有956个有效观测值,YMISS有948个。经过列表删除以后,相关性用907个完整个案来计算。相关系数为0.596,和已知值0.6非常接近。  图三是在SPSS MVA中用极大似然估计计算的相关系数,以及Little's MCAR检验。  p-值为0.874,表示不具显著性。这样就不能拒绝零假设(数据为MCAR)。MAR举例  图四显示了相关系数为0.6的两个高斯变量X和Y的400个观测值的散点图。图四  通过随机地设置X值大于0的个案中40%的Y值缺失,以判断Y值的缺失对X值是否是偶然的,这样就形成了缺失值结构MAR。  图五显示设为缺失(预示变量Ind等于1)的个案:图五图六只显示了回答完整的个案。图六  通过列表删除,YMISS和X之间的相关系数是0.576(331个个案)  图七显示了对Y变量缺失值进行均值置换的效果:图七  图七阐明了均值置换的一个主要问题:保持YMISS的均值时,YMISS和X之间的相关性是曲解的。均值置换的YMISS和X之间的相关系数为0.505(400个观测量)。  假设不进行均值置换,而用YMISS对X的回归构造一个回归方程,然后预示YMISS缺失的个案的YMISS。图八显示了结果:图八  天真的回归估算的问题是估算值的方差太小。回归估算的YMISS和X之间的相关系数为0.627,夸大了Y和X的相关系数。  图九显示了在SPSS MVA中使用极大似然估计作出的估计相关性:  估计值为0.591,与Y和X已知的相关系数0.6非常接近。请注意Litter's MCAR检验非常具有统计显著性。由于数据被构造成展示MAR缺失值方式,我们不应对数据不是MCAR感到奇怪。  最后,图10显示了使用SPSS MVA回归估算时YMISS和X的散点图。图十  SPSS MVA 回归估算是单步极大似然逼近,加入了保持相关结构的误差条件。回归估算的YMISS和X之间的相关系数为0.601,与已知值0.6非常接近。
和大多数应用软件相同,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以外的其他类型,要注意有些设置可能会丢失,如标签和缺失值等。尤其是缺失值,如果想存的数据格式不
其他1条回答
为您推荐:
其他类似问题
缺失值的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。以下试题来自:
问答题简答题简述处理缺失值的主要方法。
①找一个中间值代替,如该变量的平均值或量表的中间值;
②用一个逻辑答案代替;
③删除处理。
为您推荐的考试题库
您可能感兴趣的试卷
你可能感兴趣的试题
1.问答题 对开放性问题的回答进行编码需要采用以下连个步骤:
①列出答案:对于开放性问题的编码,编码员首先要将回答者的答案浏览......2.问答题
①及时性审核;
②完整性审核;
③正确性审核(又称真实性审核);
④数据资料间相关性审核;
⑤数据资料变化规律的审核。
①确定预测目标;
②收集和分析有关资料;
③选择预测方法;
④进行预测;
⑤分析评价预测结果。
4.问答题 概率抽样包括:①简单随机抽样;②等距离抽样技术;③分层抽样技术(分层比例抽样分层精确抽样经济抽样多次分......5.问答题 优点:①真实性高;②受调查人员偏见影响较小。缺点:①观察不到调查对象的心理动机等内在因素;......深度学习自动编码中的数据预处理方法有那些呢? - 知乎有问题,上知乎。知乎作为中文互联网最大的知识分享平台,以「知识连接一切」为愿景,致力于构建一个人人都可以便捷接入的知识分享网络,让人们便捷地与世界分享知识、经验和见解,发现更大的世界。20被浏览720分享邀请回答arxiv.org/abs/7),Recurrent Batch Normalization()这个是为数不多的可以应用在工业中的神经网络优化的论文,推荐好好看一下。1添加评论分享收藏感谢收起注:本文是的学习笔记
标称型特征编码(Encoding categorical feature)
有些情况下,某些特征的取值不是连续的数值,而是离散的标称变量(categorical)。
比如一个人的特征描述可能是下面的或几种:
features ['male', 'female'], ['from Europe', 'from US', 'from Asia'], ['use Firefox', 'use Chorme', 'use Safari', 'Use IE']。
这样的特征可以被有效的编码为整型特征值(interger number)。
['male', 'US', 'use IE']
['femel', 'Asia', 'use Chrome']
--&& [1,2,1]
但是这些整数型的特征向量是无法直接被sklearn的学习器使用的,因为学习器希望输入的是连续变化的量或者可以比较大小的量,但是上述特征里面的数字大小的比较是没有意义的。
一种变换标称型特征(categorical features)的方法是使用one-of-K或者叫one-hot encoding,在类OneHotEncoder里面就已经实现了。这个编码器将每一个标称型特征编码成一个m维二值特征,其中每一个样本特征向量就只有一个位置是1,其余位置全是0。
enc = preprocessing.OneHotEncoder()
enc.fit([[0,0,3],[1,1,0],[0,2,1],[1,0,2]])
enc.transform([[0,1,3]]).toarray()
第一列的取值有两个,使用两个数字编码;第二列取值有单个,使用三个数字编码;第三列取值有4个,使用四个数字编码。一共使用九个数字进行编码。
默认情况下,每个特征分量需要多少个值是从数据集中自动推断出来的。我们还可以通过参数n_values进行显式的指定。上面的数据集中,有两个性别,三个可能的地方以及四个浏览器。然后fit之后在对每一个样本进行变换。结果显示,前两个值编码了性别,接下来的三个值编码了地方,最后的四个值编码了浏览器。
注意:如果训练数据中某个标称型特征分量的取值没有完全覆盖其所有可能的情况,则必须给OneHotEncoder指定每一个标称型特征分量的取值个数,设置参数:n_values。
enc = preprocessing.OneHotEncoder(n_values=[2,3,4])
enc.fit([[1,2,3],[0,2,0]])
enc.transform([[1,0,0]]).toarray()
缺失值处理(Imputation of missing values)
由于各种各样的原因,很多真实世界中的数据集包含有缺失值,通常使用blanks,NaNs or other placeholders来代替。这样的数据集是无法直接被sklearn的学习器模型处理的。
一个解决的办法是将包含缺失值得整行或者整列直接丢弃。然而这样可能会丢失很多有价值的数据。
一个更好的办法是补全缺失值,也就是从已知的部分数据推断出未知的数据。
Imputer类提供了补全缺失值得基本策略: 使用一行或者一列的均值,中值,出现次数最多的值来补全,该类也允许不同缺失值得编码。
from sklearn.preprocessing import Imputer
imp = Imputer(missing_values='NaN', strategy='mean', axis=0)
imp.fit([[1,2], [np.nan,3], [7,6]])
X = [[np.nan,2], [6, np.nan], [7,6]]
imp.transform(X)
使用训练得数据来进行补全。
Imputer类支持稀疏矩阵:
import scipy.sparse as sp
X = sp.csc_matrix([[1,2], [0,3], [7,6]])
imp = Imputer(missing_values=0, strategy='mean', axis=0)
imp.fit(X)
X_test = sp.csc_matrix([[0,2], [6,0], [7,6]])
imp.transform(X_test)
多项式特征(Generating polynominal features)
为输入数据添加非线性特征可以增加模型的复杂度,实现这一点的常用的简单方法是使用多项式特征(polynominal features),他可以引入特征的高阶项和互乘积项。
sklearn的PolynominalFeatures类可以用来在出入数据的基础上构造多项式特征。
from sklearn.preprocessing import PolynomialFeatures
X = np.arange(6).reshape(3,2)
poly = PolynomialFeatures(2)
poly.fit_transform(X)
有些情况下,我们只想要原始输入特征分量之间的互乘积项,这时可以设置参数:interaction_only=True,这时将不会出现次方项。
自定义转换器(Custom transformers)
有时候,你需要把一个已经有的Python函数变为一个变换器transformer来进行数据的清理和预处理。
借助于FunctionTransformer类,你可以从任意的Python函数实现一个transformer。比如,构造一个transformer实现对数变换。
from sklearn.preprocessing import FunctionTransformer
transformer = FunctionTransformer(np.log1p)
X = np.array([[0,1], [2,3]])
transformer.transform(X
阅读(...) 评论()stata mi多重插补能插补所有缺失值吗_百度知道
stata mi多重插补能插补所有缺失值吗
我有更好的答案
根据缺失值比例选择方法
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。

我要回帖

更多关于 r语言缺失值多重插补 的文章

 

随机推荐