京公网安备 11010802034615号
经营许可证编号:京B2-20210330
数值型数据的探索分析
数据分析过程中,往往需要对数据作基本的探索性分析,查看数据是否存在问题,如缺失值数量、是否存在明显的异常值、数据是如何分布的、数据的集中趋势和离散趋势等。
探索性分析一般包括三大部分,即数据的分布情况、数据的集中与离散趋势和数据的分布形态:
首先来看看关于数据分布情况的探索性分析。一般统计中通过5数就可以大致了解数据的分布,他们是最小值、下四分位数、中位数、上四分位数和最大值。
其次看看数据的集中趋势和离散趋势,通过集中趋势可以了解数据的中心值或代表值,通过离散趋势可以了解数据远离中心的程度。关于集中趋势,一般可使用均值、众数、中位数来衡量,离散趋势一般通过标准差、极差和四分位差来体现。
最后看看数据的分布形态,数据的分布形态无非是相比于正态分布而言,即偏度和峰度。偏度是数据分布形态呈现左偏或右偏;峰度是数据分布形态呈现尖瘦或矮胖。对于偏度和峰度需要说明的是:若偏度=0,则无偏;若偏度>0,则有偏;若偏度<0,则左偏;若峰度=0,则陡峭程度与正态分布一致;如峰度>0,则分布陡峭;若峰度<0,则分布平缓。
下面从定量和定性的角度看观察数据的探索性分析过程:
自定义函数describe_statistics,函数返回变量的观测数目、缺失值数目、最小值、下四分位数、中位数、上四分位数、最大值、均值、众数、标准差、极差、四分位差、偏度和峰度。这里的自定义函数返回结果类似于SAS的输出结果形态:
```{r}
describe_statistics <- function(x){
options(digits = 3)
require(timeDate);
N = length(x);
Nmiss = sum(is.na(x));
Min = min(x, na.rm = TRUE);
Q1 = quantile(x, probs = 0.25, na.rm = TRUE);
Median = median(x, na.rm = TRUE);
Q3 = quantile(x, probs = 0.75, na.rm = TRUE);
Max = max(x, na.rm = TRUE);
Mean = mean(x, na.rm = TRUE);
Mode = as.numeric(names(table(x)))[which.max(table(x))];
Sd = sd(x, na.rm = TRUE);
Range = abs(diff(range(x)));
QRange = IQR(x, na.rm = TRUE);
Skewness = skewness(x, na.rm = TRUE);
Kurtosis = kurtosis(x, na.rm = TRUE);
#返回函数结果
return(data.frame(N = N, Nmiss = Nmiss, Min = Min, Q1 = Q1, Median = Median, Q3 = Q3, Max = Max, Mean = Mean, Mode = Mode, Sd = Sd, Range = Range, QRange = QRange, Skewness = Skewness, Kurtosis = Kurtosis))
}
```
下面我们就用这个自定义函数来测试一下,通过上面的这些统计量值来探索数据分布、集中趋势、离散趋势和分布形态。由于本文讲解的是数值型数据的探索分析,故需要将数据框中的数值型数据挑选出来,仍然自定义函数,返回数据框中所有数值型数据的字段:
```{r}
Value_Variables <- function(df){
Vars <- names(df)[sapply(df,class) == 'integer' | sapply(df,class) == 'numeric']
return(Vars)
}
```
以R中自带的iris数据集测试:
```{r}
vars <- Value_Variables(iris)
res <- sapply(iris[,vars], describe_statistics)
res
```
上面的结果呈现了鸢尾花四个数值型变量的探索性分析。
以C50包中的churnTrain数据集测试:
```{r}
library(C50)
data(churn)
vars <- Value_Variables(churnTrain)
res <- sapply(churnTrain[,vars], describe_statistics)
res
```
很显然,当变量很多时,这样的返回结果让人看的很难受,如要使输出结果便读的话,可以将返回结果转置:
```{r}
t(res)
```
这会结果要比较整齐,好看。
以上是从定量的角度来探索数据的分布、集中趋势、离散趋势和分布形态,下面我们简单介绍一下定性的方法。
从定性角度,即通过可视化来进行数据的探索性分析,强烈推荐使用GGally包中的ggpairs()函数,该函数将绘制两两变量的相关系数、散点图,同时也绘制出单变量的密度分布图:
```{r}
library(GGally)
vars <- Value_Variables(iris)
ggpairs(iris[,vars])
```
上图不仅仅反映了数据的分布情况、还得出两两变量间的散点图和相关系数,可为下一步分析做铺垫。
数据的探索性分析过程中,通过定量和定性方法的搭配,可使分析者快速的了解数据的结构、分布及内在关系。
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
商业谈判是企业采购合作、渠道签约、价格议价、项目合作、客户签约的核心关键环节,直接决定企业的合作成本、利润空间与经营风险 ...
2026-07-07在数据分析、业务效果验证、AB 测试、学术研究等场景中,T 检验是假设检验体系里最基础、应用最广泛的统计方法,也是均值差异分 ...
2026-07-07 很多数据分析师每天都在写SQL,但当被问到“数据查询语言(DQL)的本质是什么”“SELECT语句中各子句的书写顺序与实际执行顺 ...
2026-07-07【核心关键词】转化率、企业、策略、岗位、互联网、拆分、产品、运营、分析师、指标体系、数据分析、用户画像、数据诊断、产品 ...
2026-07-06在数据分析工作中,文本数据处理是高频刚需场景,用户评论、客服工单、日志信息、调研问卷、商品文案等数据都包含大量文本内容。 ...
2026-07-06 很多数据分析师写过无数个SELECT查询,但当被问到“如何新建一张表来固化中间数据”“创建视图和创建物理表有什么区别”“视 ...
2026-07-06在 CDA 数据分析师能力体系中,透视分析是数据探索、多维度汇总、业务复盘的核心基础技能。无论是 Excel 数据透视表,还是 Power ...
2026-07-03在市场竞争日趋激烈、获客成本持续攀升的当下,企业粗放式的“广撒网”获客模式早已无法适配经营需求。企业经营的核心逻辑,已经 ...
2026-07-03 很多数据分析师精通Excel函数和数据透视表,但当被问到“数据从哪里来”“表和视图有什么区别”“数据库管理系统和SQL是什么 ...
2026-07-03【核心关键词】运营、企业、核心、客户、新技术、数字化运营、数据分析、传统企业、人工录入、生产系统、技术人员、数据安全、 ...
2026-07-02在产品开发、项目立项、业务拓展、运营优化的工作中,市场调查、竞品分析、需求调研是三大核心基础工作。很多从业者容易将三者混 ...
2026-07-02 很多企业团队并非缺乏指标,而是陷入“指标失控”:仪表盘上堆满实时跳动的数据,却无法回答“当前瓶颈在哪、下一步该做什么 ...
2026-07-02在MySQL数据库运维与开发工作中,当单表数据量达到千万级、亿级后,会出现查询卡顿、索引失效、写入性能下降等问题。为优化性能 ...
2026-07-01在信息化建设、系统开发、数据分析、需求梳理的工作场景中,业务模型与逻辑模型是两个最基础、也最容易混淆的核心概念。很多项目 ...
2026-07-01 很多数据分析师能熟练计算各种指标,但当被问到“这些指标之间是什么关系”“为什么要选这个指标而不是那个”“指标体系的整 ...
2026-07-01【核心关键词】报表、数据源、客户、营销、业绩、销售、时效性、函数、可视化、运营、数据分析、数据报表、业务部门、数据运营 ...
2026-06-30在数据分析、商业预测、经济统计、运维监控等领域中,绝大多数业务数据都具备时间连续性特征,例如月度销售额、日度客流量、季度 ...
2026-06-30 很多数据分析师每天盯着GMV、DAU、转化率,但当被问到“哪些指标在所有行业都适用”“哪些指标只对电商有意义”“二者如何搭 ...
2026-06-30在 SQL Server 安装、服务启动、数据库文件操作等场景中,经常会遇到 “实例已在使用” 类报错,不同触发场景的原因与处理方式差 ...
2026-06-29在Excel数据统计、财务核算、销售复盘、库存盘点等办公场景中,经常需要在数据透视表中实现一列数据乘以另一列数据的计算需求, ...
2026-06-29