描述性统计是对数据进行概括和描述,便于理解数据的特征、趋势和分布,帮助我们了解数据基本情况和总体特征,为后续更深入的数据分析和建模提供基础。
数据的中心趋势度量是描述性统计中的一类指标,用于衡量数据的集中程度。
常见的中心趋势度量包括:平均值(mean)、中位数(median)和众数(mode)
- # 利用内置数据集iris进行平均数的计算
- # 计算平均值
- mean(iris$Sepal.Length)
- # 计算中位数
- median(iris$Sepal.Length)
- # 计算众数
- # 基础包中没有提供众数的计算函数,需用自编函数进行计算
- get_mode<-function(v){
- uniqv<-unique(v)
- uniqv[which.max(tabulate(match(v,uniqv)))]
- }
- get_mode(iris$Sepal.Length)
数据的中心趋势度量是描述性统计中的一类指标,用于衡量数据的集中程度。常用的可视化方法包括直方图、箱线图和密度图。
- # 导入ggplot2包
- library(ggplot2)
- # 导入gridExtra包
- library(gridExtra)
- # 绘制直方图
- p1<-ggplot(data=iris,aes(x=Sepal.Length))+geom_histogram(
- binwidth = 0.1,color="black",fill="lightblue"
- )+labs(
- title = "直方图-萼片长度",x="萼片长度",y="频数"
- )
- # 绘制箱线图
- p2<-ggplot(iris,aes(x="",y=Sepal.Length))+geom_boxplot(
- fill="lightgreen",color="black"
- )+labs(
- title='箱线图-萼片长度',x="",y="萼片长度"
- )
- # 绘制密度图
- p3<-ggplot(iris,aes(x=Sepal.Length))+geom_density(
- fill='pink',color='black'
- )+labs(
- title = "密度图-萼片长度",x="萼片长度",y="密度"
- )
- # 图表拼接
- grid.arrange(p1,p2,p3,ncol=3)
数据的离散程度度量用于衡量数据的分散程度或变异程度。常见的离散程度度量包括方差、标准差、极差和四分位差。
- # 计算方差和标准差
- var(iris$Sepal.Length)
- sd(iris$Sepal.Length)
- # 计算极差
- max(iris$Sepal.Length)-min(iris$Sepal.Length)
- # 计算四分位差
- q1<-quantile(iris$Sepal.Length,0.25)
- q3<-quantile(iris$Sepal.Length,0.75)
- q3-q1
数据离散程度的可视化常用方法有:散点图、箱线图。
- # 绘制散点图
- ggplot(iris,aes(x="",y=Sepal.Length))+geom_jitter(
- shape=16,size=3,color="darkblue"
- )+labs(
- title="散点图-萼片长度",x="",y="萼片长度"
- )
是指通过统计量或图形来描述数据分布的形状特征。常用的分布形状度量包括偏度(skewness)和偏度(kurtosis)。
- # 安装moments包
- install.packages("moments")
- # 加载moments包
- library(moments)
- skewness(iris$Sepal.Length)
- kurtosis(iris$Sepal.Length)
基础包中的summary()函数提供最小值、最大值、四分位数和数值型变量的均值,以及因子向量和逻辑性向量的频数统计
- # 每加仑汽油形式英里数(mpg)、马力(hp)、车重(wt)
- vars<-c('mpg','hp','wt')
- # 展示部分数据
- head(mtcars[vars])
- # 应用summary()函数
- summary(mtcars[vars])
sapply()函数计算自定义的任意描述性统计量。
- # 使用sapply()函数自定义描述性统计分析
- mystats<-function(x,na.omit=FALSE){
- if(na.omit)
- x<-x[!is.na(x)]
- m<-mean(x)
- n<-length(x)
- s<-sd(x)
- skew<-sum((x-m)^3/s^3)/n
- kurt<-sum((x-m)^4/s^4)/n-3
- return(c(n=n,mean=m,stdev=s,skew=skew,kurtosis=kurt))
- }
- sapply(mtcars[vars],mystats)
Hmisc包中的describe()函数可返回变量可观测的数量、缺失值和唯一值的数目、平均值、分位数、以及前五个最大值和最小值。
- # 下载Hmisc包
- install.packages("Hmisc")
- # 加载Hmisc包
- library(Hmisc)
- # 应用describe()函数
- describe(mtcars[vars])
此函数可以计算种类繁多的描述性统计量。
- install.packages("pastecs")
- # 加载pastecs包
- library(pastecs)
- # 应用stat.desc()函数
- stat.desc(mtcars[vars])
它可以计算非缺失值的数量、平均数、标准差、中位数、截尾均值、绝对中位差、最小值、最大值、值域、偏度、峰度和平均值的标准误。
- install.packages("psych")
- # 加载psych包
- library(psych)
- # 应用describe函数
- describe(mtcars[vars])
此函数能够实现交互式数据探索。
- install.packages("dplyr")
- install.packages("explore")
-
- library(dplyr)
- library(explore)
- explore(mtcars[vars])