《R语言数据挖掘:实用项目解析》——第2章,第2.1节一元分析

本文涉及的产品
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介:

本节书摘来自华章出版社《R语言数据挖掘:实用项目解析》一书中的第2章,第2.1节一元分析,作者[印度]普拉迪帕塔·米什拉(Pradeepta Mishra),更多章节内容可以访问云栖社区“华章计算机”公众号查看

第2章
汽车数据的探索性分析
探索性数据分析是数据挖掘中不可或缺的一环。它包括数据集中变量的数值描述和图形化表示,这将使数据集变得易于理解并有助于用户快速得出结论。对数据集有一个初步的理解很重要,比如该选择什么样的变量进行分析、不同变量之间的关联等。创建交叉二维表有助于理解分类变量之间的关系,并对数据集实施经典统计检验来验证对可测试数据的种种假设。
通过本章的学习,读者应了解以下知识点:
如何使用基本统计获悉单个和多个变量的属性。
如何计算两个或多个变量之间的相关性和关联性。
执行多元数据分析。
任意数据集的各种概率函数的统计特性。
对数据进行统计检验,从而做出假设。
对比两个或多个样本。

2.1 一元分析
要实现一个数据集的一元统计,我们需要按照两类方法进行:一种是针对连续型变量的方法;另一种是针对离散或分类变量的方法。对连续型变量的一元统计包括数值测度,例如平均数(平均值)、方差、标准差、分位数、中位数等。平均值代表数据集中的每一个点,方差表示单个数据点与平均值(即分布中心)之间的波动/偏离。分位数也称作百分位数,即将分布切分为100等分。第10个百分位数等同于第一个十分位数,第25个百分位数等同于第1个四分位数,第75个百分位数等同于第3个四分位数。
此外还有集中趋势测度,用以理解一个数据集的一元特性。中位数和众数描述的是位置,但仍可以用众数来检查一个连续型变量是否是一个双峰值序列。若是双峰值序列,计算分布中心会很困难。计算有序数据或等级数据的平均值时,将其表示出来是个好主意,建议用中位数或者众数来表示一元统计结果。通过比较平均值、中位数、众数与偏度、峰度以及标准差,将得到一个关于数据分布形状的清晰描绘。所有这些关于集中趋势测度和离中趋势测量都可以通过单行命令算得,也可以用如下多行独立的代码。
这里,我们将用到diamonds.csv和Cars93.csv两个数据集。它们都是R中的内置库,作演示之用。
让我们在R中加入几行代码,以便更好地了解这两个数据集:


c4059d3adab87dfba76dbfcdf711deba905fff81

Cars93.csv数据集包含之前提到的变量名,它有27个变量和93条观测记录。变量类型可用str()函数输出:


bd0cc9689bf1330d3901c21ff2742d47363ceb32


e25a06fc8883663737664a283ae36c0e181a653b

一些连续型变量(Price、MPG.city和MPG.highway)和离散型变量(Type、AirBags和Man.trans.avail)的一元统计计算在这里显示。你可以练习余下的变量,以便全面了解这个数据集。
mean()函数用于计算算数平均值,median()函数用于计算中位数,range()函数用于计算由min()和max()组成的向量。var()函数用于计算样本方差,cor()函数用于计算两个向量之间的相关性。rank()函数用于计算得到一个由向量中值的排位组成的向量。quantile()函数用于算得一个向量,该向量包括原向量的最小值、下四分位数、中位数、上四分位数及其最大值。
对单变量使用summary()函数的代码如下:


6117d9f654a32972d8df1fe7680138873bdb3e89

现在我们来看在数据框上使用summary函数所得到的输出结果。如果是一个连续型变量,计算的是集中趋势测度;如果是一个分类变量,则计算的是分类频数。代码如下:


59112a2218f8e135ad05d0a5ab3bbdf86fcd34b4


dbd0312650fcb5be11e6795908945ba670f3007d

对于RPM、horsepower等的连续型变量,summary命令输出的是最小值、第1个四分位数、平均值、中位数、第3个四分位数和最大值。单变量统计分类变量,如car type、airbags、manual transmission availability等,输出的是频数表。频数最高的类被称作众数类。
有fivenum()和describe()函数也可产生类似的概括统计,它们比summary函数提供了更多的输出信息:


b237be515e518c5d9372112801ad33080045f6bb

Hmisc库中的describe()函数可用于加深对数据描述的了解:


6ffcfd47493976ff6279e076563ce38b4e7b15bd


3a37d3a43b8d131e5ee16006c0db4c459c29de64

apply()函数也可用于进行一元概括统计。一元统计描绘了分布的形状:


dd11657ce6fafd69b7c103d058a5bcb0bbb8c4db

为了理解一个变量分布的形状,我们可以利用偏度和盒状图,也可以在库(e1071)中调用skewness函数:

我们可以创建自定义函数,再结合apply()函数来测量偏度:


f34aa04c0ed321b314302a5ca81ef60351a09b59

偏度是就对称分布的一种测度,其值体现了一个分布是正偏斜还是负偏斜。若偏度值为0或接近0,则表明分布是对称的,且平均值、中位数和众数完全相等;若偏度值小于0,则表明平均值小于众数,因为正态分布的极端值都偏向了负数;若偏度值大于0,则表明平均值大于众数,因为正态分布的极端值集中在右边部分。因为离群点的识别与移除都非常重要,所以测量偏度将对此有益,但这不是鉴别离群点的唯一方法。其他方法还有盒状图以及自定义的异常监测公式。如果观察之前那三个变量,可以发现price、MPG.city和MPG.highway的偏度都大于0,这表示离群点可能在价格正态分布曲线的正数侧。为了验证离群点的存在,我们可以画出盒状图并输出离群点。

目录
打赏
0
0
0
0
1408
分享
相关文章
金融数据分析:解析JavaScript渲染的隐藏表格
本文详解了如何使用Python与Selenium结合代理IP技术,从金融网站(如东方财富网)抓取由JavaScript渲染的隐藏表格数据。内容涵盖环境搭建、代理配置、模拟用户行为、数据解析与分析等关键步骤。通过设置Cookie和User-Agent,突破反爬机制;借助Selenium等待页面渲染,精准定位动态数据。同时,提供了常见错误解决方案及延伸练习,帮助读者掌握金融数据采集的核心技能,为投资决策提供支持。注意规避动态加载、代理验证及元素定位等潜在陷阱,确保数据抓取高效稳定。
56 17
时间序列预测新突破:深入解析循环神经网络(RNN)在金融数据分析中的应用
【10月更文挑战第7天】时间序列预测是数据科学领域的一个重要课题,特别是在金融行业中。准确的时间序列预测能够帮助投资者做出更明智的决策,比如股票价格预测、汇率变动预测等。近年来,随着深度学习技术的发展,尤其是循环神经网络(Recurrent Neural Networks, RNNs)及其变体如长短期记忆网络(LSTM)和门控循环单元(GRU),在处理时间序列数据方面展现出了巨大的潜力。本文将探讨RNN的基本概念,并通过具体的代码示例展示如何使用这些模型来进行金融数据分析。
725 2
R语言从数据到决策:R语言在商业分析中的实践
【9月更文挑战第1天】R语言在商业分析中的应用广泛而深入,从数据收集、预处理、分析到预测模型构建和决策支持,R语言都提供了强大的工具和功能。通过学习和掌握R语言在商业分析中的实践应用,我们可以更好地利用数据驱动企业决策,提升企业的竞争力和盈利能力。未来,随着大数据和人工智能技术的不断发展,R语言在商业分析领域的应用将更加广泛和深入,为企业带来更多的机遇和挑战。
基于qwen2.5的长文本解析、数据预测与趋势分析、代码生成能力赋能esg报告分析
Qwen2.5是一款强大的生成式预训练语言模型,擅长自然语言理解和生成,支持长文本解析、数据预测、代码生成等复杂任务。Qwen-Long作为其变体,专为长上下文场景优化,适用于大型文档处理、知识图谱构建等。Qwen2.5在ESG报告解析、多Agent协作、数学模型生成等方面表现出色,提供灵活且高效的解决方案。
524 49
中国CRM市场深度分析:主流供应商排名与特点解析
随着中国企业数字化转型的深入,CRM(客户关系管理)软件市场迅速发展,形成了多个优秀解决方案提供商。销售易、纷享销客、明源云客、金蝶云之家、简道云、红圈营销和爱客CRM等供应商各具特色。销售易在大型企业市场表现突出,提供全链路营销销售一体化及强大的AI能力;纷享销客以易用性和高性价比著称,适合中小企业;明源云客专注房地产行业,提供全流程解决方案;金蝶云之家与ERP系统深度整合,适合传统制造业;简道云是低代码平台,灵活性高;红圈营销专注零售业,支持全渠道营销;爱客CRM则主打智能营销功能。企业在选择CRM时需综合考虑实施难度、价格定位、技术支持等因素,并结合自身需求进行试用和调研,确保选择最适合
使用Python解析和分析源代码
本文介绍了如何使用Python的`ast`模块解析和分析Python源代码,包括安装准备、解析源代码、分析抽象语法树(AST)等步骤,展示了通过自定义`NodeVisitor`类遍历AST并提取信息的方法,为代码质量提升和自动化工具开发提供基础。
240 8
|
4月前
|
核心概念解析:进程与线程的对比分析
在操作系统和计算机编程领域,进程和线程是两个基本而核心的概念。它们是程序执行和资源管理的基础,但它们之间存在显著的差异。本文将深入探讨进程与线程的区别,并分析它们在现代软件开发中的应用和重要性。
134 4
R语言是一种强大的统计分析工具,提供了丰富的函数和包用于时间序列分析。
【10月更文挑战第21天】时间序列分析是一种重要的数据分析方法,广泛应用于经济学、金融学、气象学、生态学等领域。R语言是一种强大的统计分析工具,提供了丰富的函数和包用于时间序列分析。本文将介绍使用R语言进行时间序列分析的基本概念、方法和实例,帮助读者掌握R语言在时间序列分析中的应用。
109 3
基于Qwen2.5的大规模ESG数据解析与趋势分析多Agent系统设计
2022年中国上市企业ESG报告数据集,涵盖制造、能源、金融、科技等行业,通过Qwen2.5大模型实现报告自动收集、解析、清洗及可视化生成,支持单/多Agent场景,大幅提升ESG数据分析效率与自动化水平。
291 0

推荐镜像

更多
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等