
数值型数据的探索分析
数据分析过程中,往往需要对数据作基本的探索性分析,查看数据是否存在问题,如缺失值数量、是否存在明显的异常值、数据是如何分布的、数据的集中趋势和离散趋势等。
探索性分析一般包括三大部分,即数据的分布情况、数据的集中与离散趋势和数据的分布形态:
首先来看看关于数据分布情况的探索性分析。一般统计中通过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
CDA 数据分析师:就业前景广阔的新兴职业 在当今数字化时代,数据已成为企业和组织决策的重要依据。数据分析师作为负责收集 ...
2025-06-30探秘卷积层:为何一个卷积层需要两个卷积核 在深度学习的世界里,卷积神经网络(CNN)凭借其强大的特征提取能力 ...
2025-06-30探索 CDA 数据分析师在线课程:开启数据洞察之旅 在数字化浪潮席卷全球的当下,数据已成为企业决策、创新与发展的核心驱 ...
2025-06-303D VLA新范式!CVPR冠军方案BridgeVLA,真机性能提升32% 编辑:LRST 【新智元导读】中科院自动化所提出BridgeVLA模型,通过将 ...
2025-06-30LSTM 为何会产生误差?深入剖析其背后的原因 在深度学习领域,LSTM(Long Short-Term Memory)网络凭借其独特的记忆单元设 ...
2025-06-27LLM进入拖拽时代!只靠Prompt几秒定制大模型,效率飙升12000倍 【新智元导读】最近,来自NUS、UT Austin等机构的研究人员创新 ...
2025-06-27探秘 z-score:数据分析中的标准化利器 在数据的海洋中,面对形态各异、尺度不同的数据,如何找到一个通用的标准来衡量数据 ...
2025-06-26Excel 中为不同柱形设置独立背景(按数据分区)的方法详解 在数据分析与可视化呈现过程中,Excel 柱形图是展示数据的常用工 ...
2025-06-26CDA 数据分析师会被 AI 取代吗? 在当今数字化时代,数据的重要性日益凸显,数据分析师成为了众多企业不可或缺的角色 ...
2025-06-26CDA 数据分析师证书考取全攻略 在数字化浪潮汹涌的当下,数据已成为企业乃至整个社会发展的核心驱动力。数据分析师作 ...
2025-06-25人工智能在数据分析的应用场景 在数字化浪潮席卷全球的当下,数据以前所未有的速度增长,传统的数据分析方法逐渐难以满足海 ...
2025-06-25评估模型预测为正时的准确性 在机器学习与数据科学领域,模型预测的准确性是衡量其性能优劣的核心指标。尤其是当模型预测结 ...
2025-06-25CDA认证:数据时代的职业通行证 当海通证券的交易大厅里闪烁的屏幕实时跳动着市场数据,当苏州银行的数字金融部连夜部署新的风控 ...
2025-06-24金融行业的大数据变革:五大应用案例深度解析 在数字化浪潮中,金融行业正经历着深刻的变革,大数据技术的广泛应用 ...
2025-06-24Power Query 中实现移动加权平均的详细指南 在数据分析和处理中,移动加权平均是一种非常有用的计算方法,它能够根据不同数据 ...
2025-06-24数据驱动营销革命:解析数据分析在网络营销中的核心作用 在数字经济蓬勃发展的当下,网络营销已成为企业触达消费者 ...
2025-06-23随机森林模型与 OPLS-DA 的优缺点深度剖析 在数据分析与机器学习领域,随机森林模型与 OPLS-DA(正交偏最小二乘法判 ...
2025-06-23CDA 一级:开启数据分析师职业大门的钥匙 在数字化浪潮席卷全球的今天,数据已成为企业发展和决策的核心驱动力,数据分析师 ...
2025-06-23透视表内计算两个字段乘积的实用指南 在数据处理与分析的过程中,透视表凭借其强大的数据汇总和整理能力,成为了众多数据工 ...
2025-06-20CDA 一级考试备考时长全解析,助你高效备考 CDA(Certified Data Analyst)一级认证考试,作为数据分析师领域的重要资格认证, ...
2025-06-20