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

devtools/2024/10/18 6:09:47/

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

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)/nkurt<-sum((x-m)^4/s^4)/n-3return(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])


http://www.ppmy.cn/devtools/14221.html

相关文章

【vue2+onlyoffice】基础预览demo运行+问题解决

之前其实写过Onlyoffice的使用&#xff0c;但是写得不太完整&#xff0c;这次补充下。 一、OnlyOffice简介 ONLYOFFICE&#xff0c;是一个包含常用办公套件&#xff0c;Word 、Excel、PPT大办公套件搬到了云端&#xff0c;只需要一个浏览器即可以在线使用 Office 的各种功能。…

tensorflow-serving实战

相关代码见文末 Tensorflow-Serving使用方法 1.打开主页 GitHub - tensorflow/serving: A flexible, high-performance serving system for machine learning models 2.docker pull tensorflow/serving 下载完我们只需要其中的一个训练好的模型而已 3.git clone GitHub …

MybatisPlus 常用注解

一、前言 Mybatis-Plus是一个在Mybatis基础上进行增强的ORM框架&#xff0c;提供了许多便捷的注解来简化数据库操作。本文将介绍Mybatis-Plus常用的注解以及它们的使用方法。 二、常用注解 2.1、TableName TableName注解用于指定实体类对应的数据库表名。使用该注解可以省去…

react实现时钟翻牌效果

需求&#xff1a;随着数字的变动要求有时钟翻动动效 问题&#xff1a;只在加载时有动效 解决方案&#xff1a;通过判断数字改变&#xff08;这里通过新旧数值变动来判断&#xff0c;不贴代码啦&#xff09;&#xff0c;每次变动的时候手动把animationIterationCount设置为inf…

node.js 解析post请求 方法一

前提&#xff1a;依旧以前面发的node.js服务器动态资源处理代码 具体见 http://t.csdnimg.cn/TSNW9为模板&#xff0c;在这基础上进行修改。与动态资源处理代码不同的是&#xff0c;这次的用户信息我们借用表单来实现。post请求解析来获取和展示用户表单填写信息 1》代码难点&…

❤️新版Linux零基础快速入门到精通——第一部分❤️

❤️新版Linux零基础快速入门到精通——第一部分❤️ 非科班的我&#xff01;Ta&#xff01;还是来了~~~1. 来认识一下Linux吧!1.1 操作系统概述1.1.1 操作系统概述1.1.2 操作系统的发展史1.1.2.1 Unix1.1.2.2 Minix1.1.2.3 Linux 1.1.3 操作系统的发展 1.2 Linux初识1.2.1 Lin…

力扣经典150题第三十九题:赎金信

目录 力扣经典150题第三十九题&#xff1a;赎金信引言题目详解解题思路代码实现示例演示复杂度分析总结 力扣经典150题第三十九题&#xff1a;赎金信 引言 本篇博客介绍了力扣经典150题中的第三十九题&#xff1a;赎金信。题目要求判断字符串 ransomNote 是否能由字符串 maga…

计算机网络4——网络层2

文章目录 一、地址解析协议ARP二、IP数据报格式1、IP 数据报首部的固定部分中的各字段2、IP 数据报首部的可变部分 三、IP 层转发分组的过程1、流程2、案例分析3、最长前缀匹配4、分组转发算法5、使用二叉线索查找转发表 一、地址解析协议ARP 在实际应用中&#xff0c;我们经常…