版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第13章缺失值处理13.1概述13.2示例实践13.3练习案例13.4小结13.1概述13.1概述在实际流行病学研究和统计工作中,数据缺失极为普遍,几乎所有领域的数据分析都会面临这个问题。数据缺失可能有多种原因导致,包括人为因素、技术问题、调查方法、主观选择等。因此,了解和处理缺失数据是数据分析中不可忽视的重要问题。13.1.1缺失数据的普遍性在调查研究中,参与者可能未完整回答问卷或拒绝回答某些问题,导致样本不完整。在医学研究中,患者可能在某些事件点缺失检测结果或无法完成整个研究过程,导致数据不完整,进而影响治疗效果和疾病预后的评估。在社会科学中,参与者可能因各种原因选择不回答某些敏感问题,或在追踪调查中与参与者失去联系导致数据缺失。13.1概述13.1.2处理缺失数据的重要性准确性和可靠性。缺失数据可能导致分析结果存在偏差,降低研究的可靠性。处理缺失数据可以提高分析的准确性,并提供更可靠的结论。样本量和统计功效。数据缺失会使可用的样本量减少,从而降低统计功效和结果的可靠性。适当处理缺失数据可以最大限度地利用数据,并提高分析的统计功效。潜在信息损失。缺失数据可能包含对研究结果产生重要影响的信息。忽略缺失数据可能会丧失潜在的有价值的信息,影响对现象的全面理解。因此,在数据分析中,处理缺失数据是至关重要的一步。了解数据缺失的原因、缺失数据的类型和机制,并选择适当的处理方法,可以帮助提高数据分析的准确性和可靠性,从而得到更有意义的研究结果。13.1概述13.1.3数据缺失的原因了解数据缺失的原因至关重要。首先,有助于评估数据质量,判断缺失是否具有系统性及与研究结果相关,从而确定数据的可靠性和有效性。其次,了解数据缺失的原因有助于选择适当的处理方法(如删除、插补或使用专门的缺失数据模型),减少对分析结果的影响。此外,有助于判断结果和推断的准确性,可以进行敏感性分析,评估不同假设下结果的稳健性。最后,清晰记录和报告缺失原因,可提高研究的完整性与可重复性,其他研究人员可以更好地理解和评估研究可靠性,并采取适当的处理方法。13.1概述13.1.3数据缺失的原因常见的数据缺失原因包括:(1)非回应或拒绝参与:因时间、兴趣、隐私等因素拒绝回答或参与;(2)人为错误或录入问题:操作失误、疏忽或误解问题;(3)技术故障或设备问题:传感器故障、网络中断、设备损坏等;(4)主观选择或遗漏:因隐私、尴尬、记忆等因素有意跳过或遗漏;(5)样本选择偏差:特定群体更易缺失,引入选择偏差,影响结果可靠性;(6)自然灾害或不可预见事件:设备损坏、数据丢失或研究中断等。13.1概述13.1.4缺失数据的类型1.完全随机缺失完全随机缺失(missingcompletelyatrandom,MCAR):缺失是完全随机的,与其他变量或缺失值变量本身无关。缺失数据的发生是随机的,不会使数据分析结果产生偏差。例如,在调查中,部分参与者未回答年龄、性别、收入等问题,若缺失与个人特征或问题内容无关,则属于完全随机缺失。13.1概述13.1.4缺失数据的类型2.随机缺失随机缺失(missingatrandom,MAR):变量值缺失与其他变量有关,但与缺失变量值本身无关。缺失的概率可能与其他变量的观测值有关,但与缺失变量值本身无关。在这种情况下,缺失数据的发生也是随机的,可能会造成数据分析结果产生偏差。例如,一项健康调查中,参与者未提供体重数据但提供了身高和血压,且体重缺失与观测到的身高、血压相关;但只要体重缺失在体重变量上的分布是随机的(不局限于特定体重人群),则属于随机缺失。13.1概述13.1.4缺失数据的类型3.非随机缺失非随机缺失(missingnotatrandom,MNAR):如果缺失数据不属于MCAR或MAR,那么这种缺失类型属于非随机缺失。这种类型缺失值的分布是有偏的。例如,一项家庭收入调查中,高收入家庭更倾向于不透露具体收入,而低收入家庭则更愿意提供。这种缺失与收入变量本身有关,存在明显的分布偏倚。大部分处理缺失数据的方法都是假定数据类型属于MCAR或MAR的,研究者可以忽略缺失数据的生成机制,并且在进行适当的数据处理之后可以直接进行统计分析和建模。13.1概述13.1.5常见的缺失数据处理方法(1)删除缺失值:最简单的处理方法是直接删除含缺失值的样本或变量,适用于缺失较少或影响较小的情况。但可能导致样本减少或信息丢失,需谨慎使用。(2)简单插补缺失值:通过估计或推断填补缺失数据,常用方法包括均值插补、中位数插补、回归插补等。这些方法利用已有数据预测缺失值,但可能存在估计误差。(3)使用专门的缺失数据模型:适用于缺失数据存在特定模式或机制时。例如多重插补(MI),通过预测均值匹配(PMM)、线性回归(连续变量)或logistic回归(分类变量)等方法,生成多个完整插补数据集,模拟缺失值的不确定性,再合并分析结果,以获得更准确可靠的估计。13.1概述13.1.5常见的缺失数据处理方法(4)分析时考虑缺失数据的影响:不直接处理缺失值,而在分析过程中加以考虑。例如,使用完全数据的子样本进行分析,或采用自助重采样法(bootstrap)估计结果的不确定性。(5)敏感性分析:在不同缺失数据处理方法或假设下进行分析,评估结果的稳健性。通过对比不同处理方式下的结果差异,可判断缺失数据对分析结论的影响程度。要想选择合适的缺失数据处理方法,应考虑数据缺失的原因、缺失数据的类型、数据的性质、分析目标等因素。不同的方法有不同的假设和限制,分析时应根据具体情况综合考虑并进行合理选择。13.1概述13.1.6处理缺失数据的一般步骤(1)了解数据缺失情况。了解数据集中哪些变量存在缺失值,缺失值的数量和分布情况,以及缺失值的类型(如完全缺失、随机缺失或非随机缺失)。(2)分析缺失数据的原因。尽可能了解缺失数据产生的原因,包括非回应、录入问题、技术故障等。这有助于评估缺失数据的特点,为后续的处理方法选择提供指导。(3)初步探索缺失数据的影响。在处理缺失数据之前,可以进行初步的数据探索,比较缺失值和非缺失值之间的差异,评估缺失数据对结果的影响程度。(4)选择合适的缺失数据处理方法。根据缺失数据的类型、数据的性质、分析目标和研究假设,选择适当的缺失数据处理方法。常见的方法包括删除缺失值、插补缺失值或使用专门的缺失数据模型。13.1概述13.1.6处理缺失数据的一般步骤(5)根据选择的方法,对缺失数据进行处理。如果选择插补方法,则可以使用均值插补、回归插补、多重插补等技术进行缺失值的填补;如果选择专门的缺失数据模型,则需要进行模型的建立和参数估计
。(6)评估处理效果。处理缺失数据后,需要评估处理效果的好坏,可以比较处理前后的数据分布、统计指标或模型效果,以及处理后结果的稳健性和可靠性。(7)结果解释和报告。对处理后的数据和结果进行解释和报告,明确说明数据缺失的情况、处理方法,以及结果的可靠性和限制
。在处理缺失数据时,需要注意选择合适的方法并谨慎操作,确保处理过程的透明性和可重复性。同时,要根据具体研究领域的指导和要求,结合实际情况,灵活应用相应的方法来处理缺失数据。13.2示例实践13.2示例实践本节以survival程序包中的pbc数据集(原发性胆汁性肝硬化)为例演示缺失数据处理。该数据来自1974年至1984年梅奥诊所的一项随机安慰剂对照试验(药物:D-青霉胺),共纳入424名符合资格标准的患者。其中,前312例参与随机试验,数据基本完整;其余112例未参与试验但同意记录基本指标并进行生存随访,除去诊断后不久失访的6例外,实际纳入106例。因此,数据集中共记录418例患者。pbc数据集包含20个变量,包括生存时间、发病年龄、性别、血清胆红素、血清胆固醇等,为长格式数据,每条观测对应一名患者的一次随访记录。13.2示例实践13.2.1识别缺失值R语言使用NA表示缺失值,与此相关的,也会造成数值缺失的还有NaN等,缺失值相关符号的含义及其判别函数如表13.2所示。表13.2缺失值相关符号的含义及其判别函数符号含义判别函数NA缺失值(missingvalue)is.na()NaN不是一个数字(notanumber)is.nan()Inf正无穷大(infinity)is.infinite()-Inf负无穷大(negativeinfinity)is.infinite()13.2示例实践13.2.1识别缺失值1.显示有缺失的观测对象(演示)2.探索单个变量的缺失情况使用sum()并结合is.na()对特定变量进行计数(演示)。3.批量显示所有变量的缺失情况使用colMeans()并结合is.na()批量显示所有变量的缺失情况(演示)。4.列表统计缺失数据的分布R语言mice程序包中的md.pattern()可以快速统计数据集中各变量的缺失情况,并将其以表格的形式呈现出来(演示)。13.2示例实践13.2.1识别缺失值5.图形化展示缺失数据的分布1)md.pattern():mice程序包中的md.pattern()除了提供缺失情况的统计表格,还可以绘制图形(演示)。2)aggr():VIM程序包中的aggr()函数可直观展示数据集中各变量的缺失情况(演示)。3)matrixplot():VIM程序包中的matrixplot()可以按照缺失数据在原数据集中的分布,以不同的色彩展示出缺失数据的位置(演示)。4)marginplot():VIM程序包中的marginplot()可以进一步探索两个含缺失值的数据之间的关联(演示)。需要注意的是,此图只提供了两个变量之间的缺失数据关系的概览,并不能提供具体的统计指标。对于更深入的分析和处理缺失数据的决策,可能需要使用更多的统计方法和技术。13.2示例实践13.2.2处理缺失数据1.补充缺失数据尽可能补充缺失数据是一种最理想的处理缺失数据的方法。如果数据集中存在缺失数据,而且数据的获取成本相对较低且可行,那么补充缺失数据是一种好的选择。补充缺失数据一般包括以下方法:(1)重新调查或采集数据。如果缺失数据是调查或者采集过程中的错误或遗漏导致的,则可以考虑重新与参与者联系或进行进一步的数据采集,以获取缺失数据,这可以通过电话、面对面访谈、问卷调查等方式进行。(2)查找原始调查表或记录。如果数据集中存在缺失数据的变量有相关的原始调查表或记录,则可以尝试查找这些文档并提取缺失数据,以补充到数据集中,这可能需要与相关部门、研究人员或数据管理员进行协作。13.2示例实践13.2.2处理缺失数据(3)进一步与参与者沟通。有时,通过与参与者进行进一步的沟通,可以获取缺失数据,可以通过向参与者发送补充调查问卷、面对面访谈、电子邮件或电话交流等方式。(4)利用外部数据源。如果可行,则可以考虑利用外部数据源来补充缺失数据。例如,可以使用相关研究、公共数据库或类似研究的数据来填补缺失数据。需要注意的是,尽可能补充缺失数据可能涉及一些挑战和限制。例如,数据获取的成本、时间和资源可能限制补充缺失数据的可行性。此外,补充的数据可能存在一定的不确定性和偏差,因此在分析和解释结果时需要谨慎对待。在处理缺失数据时,需要综合考虑数据获取的可行性、成本和潜在的偏差,并根据具体情况选择合适的方法。13.2示例实践13.2.2处理缺失数据2.行删除法行删除法的基本原理是删除包含缺失数据的观测行(样本)。也就是说,如果某个观测行中存在缺失数据,那么该行将被完全删除,从而得到一个不包含缺失数据的数据集。行删除法的优点是简单易实施,不需要对缺失值进行任何估计或插补,能够保持数据集的完整性。另外,删除缺失数据的观测行还可以避免对结果产生偏差或误差。13.2示例实践13.2.2处理缺失数据2.行删除法然而,行删除法也存在一些限制和潜在的问题。(1)信息损失:通过删除包含缺失数据的观测行,会损失数据集中的信息。删除观测行还会减少样本量,从而减少了数据集的可靠性和代表性。(2)偏差引入:如果缺失数据不是随机出现的,而是与特定变量或特定观测值相关联的,那么使用行删除法可能引入偏差。删除观测行可能导致样本不再代表总体,从而影响结果的准确性和泛化能力。(3)剩余样本可能不足:在某些情况下,删除包含缺失数据的观测行可能导致剩余的样本数量不足以进行有效的分析。如果剩余样本量太少,可能限制对数据的进一步探索和建模。13.2示例实践13.2.2处理缺失数据2.行删除法因此,在使用行删除法时需要仔细考虑缺失数据的性质、原因及对结果的影响。如果缺失数据的比例较小且可以合理假设缺失数据是随机的,则行删除法可能是一个简便有效的处理方法。但在缺失数据比例较高或存在系统性的缺失模式时,行删除法可能不适用,需要考虑其他处理缺失数据的方法,如插补或建立模型等
。13.2示例实践13.2.2处理缺失数据2.行删除法行删除法的一般步骤如下(演示)。(1)检查数据集:检查数据集中每个观测行的缺失数据情况,确定哪些行包含缺失数据。(2)删除包含缺失数据的行:对于包含缺失数据的行,将其从数据集中删除。可以使用R语言的na.omit()来实现,该函数会删除包含任何缺失值的行。(3)生成新数据集:删除包含缺失数据的行后,生成一个新的数据集,该数据集不包含任何缺失数据。13.2示例实践13.2.2处理缺失数据3.多重差补在实际数据中,常存在部分观测对象在多个变量上同时出现缺失的情况。对于这类共同缺失的变量,直接进行插补往往不可行。因此,统计处理时通常需要先剔除这些共同缺失的个案,再对其余变量的缺失数据进行插补。多重插补是一种常用的处理缺失数据的方法。它基于概率模型,通过现有数据的信息来生成多个可能的填充值,从而提供一个更准确的完整数据集。多重插补的基本思想是将缺失数据视为随机缺失的结果,并使用其他已观察到的变量来预测缺失值。13.2示例实践13.2.2处理缺失数据3.多重差补多重插补的核心步骤包括以下几个阶段(演示)。(1)模型建立:首先,基于完整数据集中的已观测数据,建立一个预测模型。常用的模型包括线性回归、逻辑回归、决策树等。模型的选择应基于数据的性质和研究问题的要求。(2)缺失值生成:对于每个缺失值,根据模型的预测能力,生成多个可能的填充值。这些填充值通常是根据已观测到的数据和模型的参数分布随机生成的。(3)重复分析:对于每个生成的完整数据集分别进行所需的分析,可以是任何基于完整数据集的统计分析,如回归分析、聚类分析、假设检验等。每个完整数据集的分析结果都会略有差异。(4)结果汇总:对于多个完整数据集的分析结果,可以使用汇总统计量(如均值、标准误差、置信区间)来汇总这些结果,以获得对整体数据集的更准确的推断。13.2示例实践13.2.2处理缺失数据3.多重差补多重插补的优势在于它能够在不引入过多偏差的同时,提供对缺失数据不确定性的合理估计。通过生成多个完整数据集,并在每个数据集上进行分析,多重插补方法能够反映出缺失值的多样性和不确定性,从而得到更准确的推断和统计结果。在实践中,多重插补的实施可以使用R语言中专门的软件包或函数来完成,如mice程序包,这个程序包提供了方便的函数和方法来执行多重插补的各步骤。需要注意的是,多重插补的有效性和准确性取决于多个因素,包括模型的选择、数据的分布和缺失机制的正确假设等。因此,在应用多重插补之前,应仔细考虑数据的特点,并进行适当的敏感性分析和模型评估。13.2示例实践13.2.2处理缺失数据3.其他处理缺失值的方法医学研究中还有一种特殊的缺失值,即低于检出限的数据,这些数据的记录可能采用N.D,或者<LOD等非数字的方式,不能直接进行统计分析,这些缺失值类似但又不完全等同于缺失值NA,要采取不同的办法。对低于检出限的数据处理,最常见的方法是替代法,即将低于检出限的数据替代为检出限的一半或其他合适的数值(如检出限的平方根值)。这种方法假设低于检出限的数据集中有一定的信息,但无法准确测量。替代法的选择应基于具体的研究领域和数据特征。R语言中还有一些简单的插补方法用来处理缺失数据。这些方法可以根据已有的数据模式或统计指标来填充缺失值,以便进行后续的分析。13.2示例实践13.2.2处理缺失数据3.其他处理缺失值的方法以下是几种常见的简单插补方法。(1)均值插补:将缺失值用该变量的均值代替。在R语言中,可以使用mean()计算均值,并使用ifelse()将缺失值替换为均值。(2)中位数插补:将缺失值用该变量的中位数代替。在R语言中,可以使用median()计算中位数,并使用ifelse()将缺失值替换为中位数。(3)众数插补:将缺失值用该变量的众数代替。在R语言中,可以使用自定义的函数计算众数,并使用ifelse()将缺失值替换为众数。13.2示例实践13.2.2处理缺失数据3.其他处理缺失值的方法(4)固定值插补:将缺失值用事先确定的固定值代替,如0或-999,并可以使用ifelse()将缺失值替换为固定值。(5)最近观测值插补:使用最近的非缺失值填充缺失值,可以使用na.locf()来实现,该函数来自zoo程序包;或者使用tidyverse程序包中的fill(),该函数可以根据前一个非缺失值或后一个非缺失值来填充数据集中的缺失值。这些简单插补方法在某些情况下可能是合理的,但也存在一些限制。例如,它们无法考虑变量之间的相关性或数据的动态变化。在使用简单插补方法时,需要谨慎评估插补引入的偏差或不确定性,并结合具体的研究背景和数据特点进行判断。所以一般不建议使用,宁可删除数据,损失一部分样本量,也要尽量保证所分析数据的真实可靠。13.3练习案例13.3练习案例以下使用R语言中的内置数据集airquality来进行练习。该数据集记录了纽约市1973年5月至9月每日的空气质量情况,包括风速、日照辐射量、最高气温等变量,其中包含一些缺失值。根据前两节处理缺失数据的步骤,完成以下练习题:(1)加载数据集airquality,并查看其结构。(2)请创建一个表格,展示airquality数据集中每个变量的缺失值数量。(3)请创建一个图形,可视化airquality数据集中每个变量的缺失值分布。(4)请使用多重插补的方法来填补airquality数据集中的缺失值。13.4小结13.4小结在R语言中,对缺失数据进行处理是数据清洗过程中最重要的步骤之一。以下是本章涉及的缺失数据处理内容和方法小结。(1)检测缺失值:使用is.na()或complete.cases()函数可以检测数据集中的缺失值,判断哪些观测值或变量存在缺失。(2)缺失值统计描述:使用sum(is.na())等函数可以计算数据集中每个变量的缺失值数量,有助于了解缺失情况。(3)缺失值删除:对于包含缺失值的观测值或变量,可以使用na.omit()等函数删除缺失值所在的观测值或变量。但要注意,删除缺失值可能导致数据的偏倚或信息丢失。13.4小结(4)缺失值填充:对于缺失值较少的变量,可以使用na.locf()或tidyr::fill()函数进行缺失值的填充,使用前后的非缺失值进行插值。对于缺失值较多的变量,可以考虑使用插补方法,如多重插补或高级模型进行缺失值的估计。(5)敏感性分析:在进行数据清洗和缺失值处理时,应进行敏感性分析,尝试不同的处理方法并比较结果的差异。这有助于评估缺失数据处理对最终结果的影响。综上所述,缺失数据处理是保证数据质量与可靠性的关键步骤。R语言提供了丰富的函数与工具用于检测、描述和处理缺失数据,熟练掌握这些方法对数据清洗与分析至关重要。妥善处理缺失数据可确保数据集的完整性与准确性,减少偏误、样本量缩减及结果不确定性等问题,从而提高分析可靠性。13.4小结本章重要函数函数所属程序包描述用法is.na()base检查一个值是否为NA(缺失值)is.na(x)is.nan()base检查一个值是否为NaN(不是一个数字)is.nan(x)is.infinite()base检查一个值是否为无穷大(正无穷大或负无穷大)is.finite(x)complete.cases()stats生成一个逻辑向量,指示数据框中的每行是否完全没有缺失值(没有缺失值的行)complete.cases(...)sum(is.na())base统计特定变量(列)中缺失值的数量sum(is.na(x,...))mean(is.na())base计算特定变量(列)中缺失值的比例,并以百分比表示mean(is.na(x,...))colMeans(is.na())base计算数据框的每个变量(列)中缺失值的比例,并以百分比表示colMeans(x,.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2026学年广东揭阳真理中学下册七年级语文3月月考学情自测 含答案
- 主题教育风尚引领
- 足部去角质与干裂皲裂修复
- (正式版)DB42∕T 2541-2026 水电站公共区域运行保障标准
- 2026年济宁北湖省级旅游度假区事业单位 公开招聘工作人员(教育类)(12人)笔试参考题库及答案解析
- 钢结构安装施工指导书
- 大学城就业指导服务
- 重点领域专项巡查制度
- 2026辽宁葫芦岛市连山区赴高等院校招聘教师13人考试模拟试题及答案解析
- 政治学留学就业新选择
- 浙江省金华市(2026年)辅警协警笔试笔试真题(附答案)
- 2026年3年级竞赛试题及答案
- 养老护理员工作倦怠与应对
- 2026山西晋中市寿阳县国有资本运营有限公司及下属公司中高层管理人员招聘12人考试备考题库及答案解析
- 2026年3月15日九江市五类人员面试真题及答案解析
- 2026“蓉漂人才荟”成都东部新区事业单位公开招聘事业人员(30人)笔试参考题库及答案解析
- 机械类专职安全生产管理人员(C1)题库
- 第5课艰辛探索与曲折发展(教学课件)
- 飞机维护技术基础
- JJF 1620-2017 电池内阻测试仪校准规范-(高清现行)
- 人卫第九版骨科课件-骨折概论65页PPT
评论
0/150
提交评论