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

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

1、概念和作用

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

2、基础方法

(1)中心趋势度量

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

        常见的中心趋势度量包括:平均值(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)

(2)中心趋势可视化

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

# 导入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)

(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

(4)离散程度可视化

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

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

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

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

# 安装moments包
install.packages("moments")
# 加载moments包
library(moments)
skewness(iris$Sepal.Length)
kurtosis(iris$Sepal.Length)

二、一站式描述统计函数

1、summary()函数

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

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

2、sapply()函数

        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)

3、Hmisc包中的describe()函数

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

# 下载Hmisc包
install.packages("Hmisc")
# 加载Hmisc包
library(Hmisc)
# 应用describe()函数
describe(mtcars[vars])

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

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

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

5、psych包的describe()函数

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

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

6、explore包中的explore()函数

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

install.packages("dplyr")
install.packages("explore")

library(dplyr)
library(explore)
explore(mtcars[vars])

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值