• 《R语言与农业数据统计分析及建模》学习——描述性统计分析


    一、描述性统计概念和方法

    1、概念和作用

            描述性统计是对数据进行概括和描述,便于理解数据的特征、趋势和分布,帮助我们了解数据基本情况和总体特征,为后续更深入的数据分析和建模提供基础。

    2、基础方法

    (1)中心趋势度量

            数据的中心趋势度量是描述性统计中的一类指标,用于衡量数据的集中程度。

            常见的中心趋势度量包括:平均值(mean)、中位数(median)和众数(mode)

    1. # 利用内置数据集iris进行平均数的计算
    2. # 计算平均值
    3. mean(iris$Sepal.Length)
    4. # 计算中位数
    5. median(iris$Sepal.Length)
    6. # 计算众数
    7. # 基础包中没有提供众数的计算函数,需用自编函数进行计算
    8. get_mode<-function(v){
    9. uniqv<-unique(v)
    10. uniqv[which.max(tabulate(match(v,uniqv)))]
    11. }
    12. get_mode(iris$Sepal.Length)

    (2)中心趋势可视化

            数据的中心趋势度量是描述性统计中的一类指标,用于衡量数据的集中程度。常用的可视化方法包括直方图、箱线图和密度图。

    1. # 导入ggplot2包
    2. library(ggplot2)
    3. # 导入gridExtra包
    4. library(gridExtra)
    5. # 绘制直方图
    6. p1<-ggplot(data=iris,aes(x=Sepal.Length))+geom_histogram(
    7. binwidth = 0.1,color="black",fill="lightblue"
    8. )+labs(
    9. title = "直方图-萼片长度",x="萼片长度",y="频数"
    10. )
    11. # 绘制箱线图
    12. p2<-ggplot(iris,aes(x="",y=Sepal.Length))+geom_boxplot(
    13. fill="lightgreen",color="black"
    14. )+labs(
    15. title='箱线图-萼片长度',x="",y="萼片长度"
    16. )
    17. # 绘制密度图
    18. p3<-ggplot(iris,aes(x=Sepal.Length))+geom_density(
    19. fill='pink',color='black'
    20. )+labs(
    21. title = "密度图-萼片长度",x="萼片长度",y="密度"
    22. )
    23. # 图表拼接
    24. grid.arrange(p1,p2,p3,ncol=3)

    (3)离散程度度量

            数据的离散程度度量用于衡量数据的分散程度或变异程度。常见的离散程度度量包括方差、标准差、极差和四分位差。

    1. # 计算方差和标准差
    2. var(iris$Sepal.Length)
    3. sd(iris$Sepal.Length)
    4. # 计算极差
    5. max(iris$Sepal.Length)-min(iris$Sepal.Length)
    6. # 计算四分位差
    7. q1<-quantile(iris$Sepal.Length,0.25)
    8. q3<-quantile(iris$Sepal.Length,0.75)
    9. q3-q1

    (4)离散程度可视化

            数据离散程度的可视化常用方法有:散点图、箱线图。

    1. # 绘制散点图
    2. ggplot(iris,aes(x="",y=Sepal.Length))+geom_jitter(
    3. shape=16,size=3,color="darkblue"
    4. )+labs(
    5. title="散点图-萼片长度",x="",y="萼片长度"
    6. )

    (5)数据的分布形状度量

            是指通过统计量或图形来描述数据分布的形状特征。常用的分布形状度量包括偏度(skewness)和偏度(kurtosis)。

    1. # 安装moments包
    2. install.packages("moments")
    3. # 加载moments包
    4. library(moments)
    5. skewness(iris$Sepal.Length)
    6. kurtosis(iris$Sepal.Length)

    二、一站式描述统计函数

    1、summary()函数

            基础包中的summary()函数提供最小值、最大值、四分位数和数值型变量的均值,以及因子向量和逻辑性向量的频数统计

    1. # 每加仑汽油形式英里数(mpg)、马力(hp)、车重(wt)
    2. vars<-c('mpg','hp','wt')
    3. # 展示部分数据
    4. head(mtcars[vars])
    5. # 应用summary()函数
    6. summary(mtcars[vars])

    2、sapply()函数

            sapply()函数计算自定义的任意描述性统计量。

    1. # 使用sapply()函数自定义描述性统计分析
    2. mystats<-function(x,na.omit=FALSE){
    3. if(na.omit)
    4. x<-x[!is.na(x)]
    5. m<-mean(x)
    6. n<-length(x)
    7. s<-sd(x)
    8. skew<-sum((x-m)^3/s^3)/n
    9. kurt<-sum((x-m)^4/s^4)/n-3
    10. return(c(n=n,mean=m,stdev=s,skew=skew,kurtosis=kurt))
    11. }
    12. sapply(mtcars[vars],mystats)

    3、Hmisc包中的describe()函数

            Hmisc包中的describe()函数可返回变量可观测的数量、缺失值和唯一值的数目、平均值、分位数、以及前五个最大值和最小值。

    1. # 下载Hmisc包
    2. install.packages("Hmisc")
    3. # 加载Hmisc包
    4. library(Hmisc)
    5. # 应用describe()函数
    6. describe(mtcars[vars])

    4、pastecs包的stat.desc()函数

            此函数可以计算种类繁多的描述性统计量。

    1. install.packages("pastecs")
    2. # 加载pastecs包
    3. library(pastecs)
    4. # 应用stat.desc()函数
    5. stat.desc(mtcars[vars])

    5、psych包的describe()函数

            它可以计算非缺失值的数量、平均数、标准差、中位数、截尾均值、绝对中位差、最小值、最大值、值域、偏度、峰度和平均值的标准误。

    1. install.packages("psych")
    2. # 加载psych包
    3. library(psych)
    4. # 应用describe函数
    5. describe(mtcars[vars])

    6、explore包中的explore()函数

            此函数能够实现交互式数据探索。

    1. install.packages("dplyr")
    2. install.packages("explore")
    3. library(dplyr)
    4. library(explore)
    5. explore(mtcars[vars])

  • 相关阅读:
    【js】-【链表-应用】-学习笔记
    GIS 数据结构BSP树
    线性代数 --- 投影Projection 二(投影即分量)
    git cherry pick
    k8s之PV、PVC和StorageClass
    【蓝桥杯Web】第十四届蓝桥杯(Web 应用开发)模拟赛 2 期 | 精品题解
    中小企业如何做好MES管理系统的项目实施
    npc内网穿透
    金仓数据库KingbaseES运维工具参考手册(5. 辅助运维工具)
    vueday01——文本渲染与挂载
  • 原文地址:https://blog.csdn.net/maizeman126/article/details/137424673