描述性统计
建立对基本描述性统计术语的理解。
统计学被广泛应用于商业、医学研究、社会科学、制造业等多个领域。
我们利用统计学分析数据并做出明智的决策。它帮助我们从整体上观察数据,识别其中的模式、趋势和关系,从而用于预测和发现改进机会。
描述性统计是统计学的一个分支,涉及数据的收集、分析、解释、展示和组织。我们使用描述性统计方法来描述和总结数据集的主要特征,例如通过集中趋势(均值、中位数、众数)和离散程度(极差、方差、标准差)等指标。其目标是提供一个简洁而有意义的数据概览。
集中趋势的度量
集中趋势的度量关注位于数据中间位置的数值,反映了数据的一般特征和现状。尽管这些概念广为人知,但仍值得简要回顾。
均值
均值也称为数据的平均值,通过将所有数值相加后除以数值个数得到。通常用符号 表示。在 R 语言中,可以使用 mean() 函数计算均值。
通用公式如下:
中位数
中位数是指将样本数据排序后位于中间位置的数值。当数据个数为偶数时,没有单一的中间数,此时中位数取两个中间数值的平均值。在 R 中,可以使用 median() 函数求得中位数。
1median(<data>) # 语法结构
众数
众数指样本中出现频率最高的数值。R 语言没有内置的众数计算函数,但可以通过自定义函数实现。以下公式可在 R 中返回众数:
1# 语法结构 2names(which.max(table(<sample>)))
该公式首先统计数据中不同类别的数量,然后选出出现次数最多的类别,并返回其名称。
下图展示了数据集中均值、中位数和众数的直观表示。
在上述图示中,我们对原始数据进行排序,并确定集中趋势的三个关键点:最频繁出现的值是 2(出现 3 次),数据中间的值是 18,数据的平均值为 25.63(282 ÷ 11)。
接下来,我们练习使用 iris 数据集计算集中趋势的度量。
1# 本练习使用 "iris" 数据集 2# 计算均值 3print('--------- `Sepal.Length` 列的均值 -------------------') 4mean(iris$Sepal.Length) # 计算 "Sepal.Length" 列的均值 5print('---------- `Sepal.Width` 列的均值 -----------------') 6mean(iris$Sepal.Width) # 计算 "Sepal.Width" 列的均值 7print('-------- `Petal.Length` 列的中位数 --------------------------') 8# 计算中位数 9median(iris$Petal.Length) # 查找 "Petal.Length" 列的中位数 10print('----------- `Petal.Width` 列的中位数 ----------------------') 11median(iris$Petal.Width) # 查找 "Petal.Width" 列的中位数 12print('----------- `Species` 列中唯一类别的数量 ------------') 13# 查找众数 14table(iris$Species) # 查找唯一值的数量 15print('最频繁类别的名称及其出现次数') 16which.max(table(iris$Species)) # 找出频率最高的唯一值 17print('---------- 出现次数最多的类别 -------------------') 18names(which.max(table(iris$Species))) # 提取 "Species" 列中众数的名称
百分位数与分位数
分位数是一个通用术语,用于描述将数据集划分为若干个大小相等组的数值。例如,四分位数就是一种将数据分成四等份的分位数。
百分位数是分位数的一种特殊形式,将数据集划分为 100 个相等的部分。第 个百分位数是指低于该值的数据占总数的 。例如,第 50 个百分位数即为中位数,表示有 50% 的数据低于此值。它是衡量某个数值在数据集中相对位置的一种方式。
第 25、50 和 75 个百分位数在统计分析中经常使用,它们被称为四分位数,因为它们界定了数据的四个部分。
中位数对应第 50 个百分位数,也称为第二四分位数(Q2)。第 25 个百分位数是第一四分位数(Q1),第 75 个百分位数是第三四分位数(Q3)。四分位数将数据划分为四个区间。
我们可以通过向 quantile() 函数传入对应的百分比来获取特定分位数的值。例如,第 13 个百分位数的语法如下:
1quantile(<data>, 0.13)
四分位距
四分位距(IQR) 是衡量数据集中数值分布范围的统计量。它通过用第三四分位数(Q3)减去第一四分位数(Q1)来计算。IQR 反映了第一和第三四分位数之间的数值范围,即覆盖了数据中间 50% 的部分,能很好地反映数据的离散程度。
下面我们通过实际数据来实验分位数的计算。
1# 本练习使用 "sleep" 数据集 2head(sleep) # 查看数据集前几行 3print('-------------------------') 4print(paste("数据的第 10 个百分位数:", quantile(sleep$extra, 0.1))) 5print('---------------------------') 6print(paste("数据的第 42 个百分位数:", quantile(sleep$extra, 0.42))) 7print('---------------------------') 8print(paste("数据的第一四分位数:", quantile(sleep$extra, 0.25))) 9print('---------------------------') 10print(paste("数据的中位数或第二四分位数:", quantile(sleep$extra, 0.5))) 11print('----- IQR: --------') 12Iqr <- quantile(sleep$extra, 0.75) - quantile(sleep$extra, 0.25) 13print(Iqr)
变异性的度量
变异性的度量是一类用于描述数据集中数值分散程度的统计技术。它们提供了数据值相对于平均值或中心趋势的波动情况信息。
最大值、最小值与极差
我们可以使用 max() 和 min() 函数分别找出最大值和最小值。range() 函数则同时返回最大值和最小值。这些指标有助于识别数据中的极端值。
了解最大值和最小值后,我们可以推测数据的分布形态、跨度和潜在规律。例如,若数据均值为 3.5,而极差在 1 到 100 之间,则明显表明数据分布不对称。
此外,还可以使用 summary() 函数检查数据集的关键统计量,该函数返回最大值、最小值、第一四分位数、第三四分位数、均值和中位数等信息。
标准差
标准差是一个数值,用于说明数据点偏离均值的程度。通常用符号 表示。
标准差的计算步骤如下:
- 将每个数值减去均值;
- 对结果进行平方;
- 将所有平方值相加;
- 将总和除以数据个数;
- 对结果开平方根。
在 R 中,可以使用 sd() 函数计算标准差。标准差越接近零,说明数据越一致、越相似。
方差
与标准差类似,方差也是衡量数据集中数值离散程度的指标。
高方差表示数据分布较广,低方差则说明数据集中在均值附近。
方差通常用符号 表示,其平方根即为标准差。在 R 中,可以使用 var() 函数计算方差。
现在开始编码实践。
1# 本练习使用 "beaver1" 数据集 2print(head(beaver1)) # 查看数据集前几行 3print('---------------最大值---------------------') 4max(beaver1$temp) # 查找 "temp" 列的最大值 5print('---------------最小值---------------------') 6min(beaver1$temp) # 查找 "temp" 列的最小值 7print('---------------极差值---------------------') 8range(beaver1$temp) # 查找 "temp" 列的极差 9print('---------------密度值---------------------') 10density(beaver1$temp) # 查找 "temp" 列的密度值 11print('---------------标准差---------------------') 12sd(beaver1$temp) # 查找 "temp" 列的标准差 13print('---------------方差---------------------') 14var(beaver1$temp) # 查找 "temp" 列的方差
变量与关系分析
我们可以通过观察变量随时间的变化行为,来分析不同数据集之间的关系。
因变量与自变量
因变量是指在统计模型或实验中被研究且受一个或多个自变量影响的变量。
假设我们要研究股票价格如何受到经济指标、公司业绩和市场情绪等因素的影响。在此情境下,股票价格是因变量,因为它是一个结果,会受到自变量的影响。自变量可能包括国内生产总值增长、利率水平和通货膨胀率等。
相关性和回归分析是研究两个变量之间关系的两种主要方法。相关性衡量的是变量间关系的强度和方向,但不说明因果关系。
回归分析则建立两个或多个变量之间的数学模型,旨在根据一个变量的值来解释或预测另一个变量的值。它试图揭示因果关系,并基于所研究的变量进行预测。