百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

用R语言做数据分析——描述统计量

bigegpt 2024-09-17 12:37 12 浏览

统计分析分为统计描述和统计推断两个部分,统计描述是通过绘制统计图、编制统计表、计算统计量等方法来表述数据的分布特征,它是数据分析的基本步骤,也是进行统计推断的基础。这里结合R语言介绍统计描述,也就是数据的描述性分析,用R语言作数据的描述性分析,可以更加方便、直观,有利于对统计描述的理解。

已知一组观测数据为x1,x2,...,xn,它们可以是从所要研究的对象的总体X中取出的,这n个观测值就构成一个样本。在一些简单的实际问题中,这n个观测值就是所要研究问题的全体,数据分析的任务就是要对这全部n个数据进行分析,提取数据中包含的有用信息。

数据作为信息的载体,当然要分析数据中包含的主要信息,即要分析数据的主要特征,也就是说,要研究数据的数字特征。这些特征就是在之前统计章节中所介绍的数据特征,即数据的集中趋势、分散趋势和数据的分布等。

数据的集中趋势常用的衡量指标有均值、众数、中位数、百分位数。

均值

在R语言中,可用mean()函数计算样本的均值,其使用方法为:

mean(x,trim=0,na.rm=FALSE)

其中x是对象(如向量、矩阵、数组或数据框),trim是计算均值前去掉与均值差较大数据的比例,缺省值为0,即包括全部数据。当na.rm=TRUE,允许数据中有缺失值,函数的返回值是对象的均值。

> x<-1:12

> dim(x)<-c(3,4)

> x

[,1] [,2] [,3] [,4]

[1,] 1 4 7 10

[2,] 2 5 8 11

[3,] 3 6 9 12

> mean(x)

[1] 6.5

注意,当x是矩阵或数组时,函数mean()返回的一个数而不是向量,即矩阵中全部数据的平均值。如需要得到矩阵各行各列的均值,需要调用apply()函数。

> #计算矩阵各行的均值

> apply(x,1,mean)

[1] 5.5 6.5 7.5

> #计算矩阵各列的均值

> apply(x,2,mean)

[1] 2 5 8 11

如果x是数据框,则mean()的返回值就是向量。

求和

求和函数sum()是与求均值相关的函数,其使用格式为:

sum(...,na.rm=FALSE)

如果x是向量,函数length(x)的返回值是向量x的长度,因此均值可由下面计算得出:

> w<-c(75.0,64.0,47.4,66.9,62.2,58.7,63.5,66.6,64.0,57.0,69.0,56.9,50.0,72.0)

> w.mean<-mean(w)

> w.mean

[1] 62.37143

> w[1]<-750

> w

[1] 750.0 64.0 47.4 66.9 62.2 58.7 63.5 66.6 64.0 57.0 69.0 56.9

[13] 50.0 72.0

> mean(w)

[1] 110.5857

> mean(w,trim=0.1)

[1] 62.56667

使用trim参数可以有效减少由于输入误差对计算的影响,trim的取值在0至0.5之间,表示在计算均值前需要去掉异常值的比例,利用这个参数可以有效的改善异常值对计算额影响。

如果向量中存在异常值NA,此时用mean()方法无法得出得出结果,而na.rm是控制缺失数据的参数。

> w<-c(75.0,64.0,47.4,66.9,62.2,58.7,63.5,66.6,64.0,57.0,69.0,56.9,50.0,72.0,NA)

> mean(w)

[1] NA

> mean(w,na.rm=TRUE)

[1] 62.37143

加权平均值

与均值函数mean()相关的函数还有weighted.mean(),即计算数据的加权平均值,具体使用格式为:

weighted.mean(x,w,na.rm=FALSE)

其中x是数值向量,w是数据x的权,与x的维数相同。该函数可以对矩阵和数组计算加权平均值,但对数据框不适用。

排序

R语言中,sort()函数用于对数据的排序:

> x<-c(75,64,47.4,66.9,62.2,62.2,58.7,63.5)

> sort(x)

[1] 47.4 58.7 62.2 62.2 63.5 64.0 66.9 75.0

> #从大到小排序

> sort(x,decreasing=TRUE)

[1] 75.0 66.9 64.0 63.5 62.2 62.2 58.7 47.4

中位数

median()函数用于计算数据的中位数,其使用 格式为:median(x,na.rm=FALSE)

> x<-c(75,64,47.4,66.9,62.2,NA,58.7,63.5)

> x

[1] 75.0 64.0 47.4 66.9 62.2 NA 58.7 63.5

> median(x)

[1] NA

> median(x,na.rm=TRUE)

[1] 63.5

百分位数

quantile()函数用于计算数据的百分位数,其使用格式为:

quantile(x,probs-seq(0,1,0.25),na.rm=FALSE,names=TRUE)

其中x是向量,probs是给出相应的百分位数,缺省值是0、1/4、1/2、3/4。

> x<-c(75,64,47.4,66.9,62.2,58.7,63.5)

> quantile(x,probs=seq(0,1,0.2))

0% 20% 40% 60% 80% 100%

47.40 59.40 62.72 63.80 66.32 75.00

数据的分散趋势常用的衡量指标有方差、标准差、极差、四分位极差、变异系数和标准误等。

方差和标准差

R语言中,若x是由样本构成的向量,则var(x)计算样本方差,sd(x)计算样本标准差,它们的使用格式为:

var(x,y=NULL,na.rm=FALSE,use)

sd(x,na.rm=FALSE)

与方差函数var()相关的函数还有:cov()函数求协方差矩阵,cor()求相关矩阵。

> var(x)

[1] 70.23238

> sd(x)

[1] 8.380476

极差和四分位极差

极差的计算公式为:

R = max(x) - min(x)

其中x是由样本构成的向量,样本极差是描述样本分散性的数字特征,当数据越分散,其极差越大。

样本上、下四分位数之差称为四分位极差,其计算公式为:

R1= Q3 - Q1

分布形状的度量指标主要有偏度系数和峰度系数。

偏度系数是刻划数据的对称性指标。关于均值对称的数据其偏度系数为0,右侧更分散的数据偏度系数为正,左侧更分散的数据偏度系数为负数。

峰度系数:当数据的总体分布为正态分布时,峰度系数近似为0;当分布较正态分布的尾部更分散时,峰度系数为正,否则为负。当峰度系数为正时,两侧极端数据较多,当峰度系数为负时,两侧极端数据较少。

最后编写一个统计函数,计算样本的各种描述性统计量:

> data_outline<-function(x){

+ n<-length(x)

+ m<-mean(x)

+ v<-var(x)

+ s<-sd(x)

+ me<-median(x)

+ cv<-100*s/m

+ css<-sum((x-m)^2)

+ uss<-sum(x^2)

+ R<-max(x)-min(x)

+ R1<-quantile(x,3/4)-quantile(x,1/4)

+ sm<-s/sqrt(n)

+ g1<-n/((n-1)*(n-2))*sum((x-m)^3)/s^3

+ g2<-((n*(n+1))/((n-1)*(n-2)*(n-3))*sum((x-m)^4)/s^4-(3*(n-1)^2)/((n-2)*(n-3)))

+ data.frame(N=n,Mean=m,Var=v,std_dev=s,Median=me,std_mean=sm,CV=cv,CSS=css,USS=uss,R=R,R1=R1,Skewness=g1,Kurtosis=g2,row.names=1)

+ }

> w<-c(75.0,64.0,47.4,66.9,62.2,58.7,63.5,66.6,64.0,57.0,69.0,56.9,50.0,72.0)

> data_outline(w)

N Mean Var std_dev Median std_mean CV CSS USS

1 14 62.37143 60.81451 7.798366 63.75 2.084201 12.50311 790.5886 55253.32

R R1 Skewness Kurtosis

1 27.6 9.4 -0.4240699 -0.1252641

相关推荐

方差分析简介(方差分析通俗理解)

介绍方差分析(ANOVA,AnalysisofVariance)是一种广泛使用的统计方法,用于比较两个或多个组之间的均值。单因素方差分析是方差分析的一种变体,旨在检测三个或更多分类组的均值是否存在...

正如404页面所预示,猴子正成为断网元凶--吧嗒吧嗒真好吃

吧嗒吧嗒,绘图:MakiNaro你可以通过加热、冰冻、水淹、模塑、甚至压溃压力来使网络光缆硬化。但用猴子显然是不行的。光缆那新挤压成型的塑料外皮太尼玛诱人了,无法阻挡一场试吃盛宴的举行。印度政府正...

Python数据可视化:箱线图多种库画法

概念箱线图通过数据的四分位数来展示数据的分布情况。例如:数据的中心位置,数据间的离散程度,是否有异常值等。把数据从小到大进行排列并等分成四份,第一分位数(Q1),第二分位数(Q2)和第三分位数(Q3)...

多组独立(完全随机设计)样本秩和检验的SPSS操作教程及结果解读

作者/风仕在上一期,我们已经讲完了两组独立样本秩和检验的SPSS操作教程及结果解读,这期开始讲多组独立样本秩和检验,我们主要从多组独立样本秩和检验介绍、两组独立样本秩和检验使用条件及案例的SPSS操作...

方差分析 in R语言 and Excel(方差分析r语言例题)

今天来写一篇实际中比较实用的分析方法,方差分析。通过方差分析,我们可以确定组别之间的差异是否超出了由于随机因素引起的差异范围。方差分析分为单因素方差分析和多因素方差分析,这一篇先介绍一下单因素方差分析...

可视化:前端数据可视化插件大盘点 图表/图谱/地图/关系图

前端数据可视化插件大盘点图表/图谱/地图/关系图全有在大数据时代,很多时候我们需要在网页中显示数据统计报表,从而能很直观地了解数据的走向,开发人员很多时候需要使用图表来表现一些数据。随着Web技术的...

matplotlib 必知的 15 个图(matplotlib各种图)

施工专题,我已完成20篇,施工系列几乎覆盖Python完整技术栈,目标只总结实践中最实用的东西,直击问题本质,快速帮助读者们入门和进阶:1我的施工计划2数字专题3字符串专题4列表专题5流程控制专题6编...

R ggplot2常用图表绘制指南(ggplot2绘制折线图)

ggplot2是R语言中强大的数据可视化包,基于“图形语法”(GrammarofGraphics),通过分层方式构建图表。以下是常用图表命令的详细指南,涵盖基本语法、常见图表类型及示例,适合...

Python数据可视化:从Pandas基础到Seaborn高级应用

数据可视化是数据分析中不可或缺的一环,它能帮助我们直观理解数据模式和趋势。本文将全面介绍Python中最常用的三种可视化方法。Pandas内置绘图功能Pandas基于Matplotlib提供了简洁的绘...

Python 数据可视化常用命令备忘录

本文提供了一个全面的Python数据可视化备忘单,适用于探索性数据分析(EDA)。该备忘单涵盖了单变量分析、双变量分析、多变量分析、时间序列分析、文本数据分析、可视化定制以及保存与显示等内容。所...

统计图的种类(统计图的种类及特点图片)

统计图是利用几何图形或具体事物的形象和地图等形式来表现社会经济现象数量特征和数量关系的图形。以下是几种常见的统计图类型及其适用场景:1.条形图(BarChart)条形图是用矩形条的高度或长度来表示...

实测,大模型谁更懂数据可视化?(数据可视化和可视化分析的主要模型)

大家好,我是Ai学习的老章看论文时,经常看到漂亮的图表,很多不知道是用什么工具绘制的,或者很想复刻类似图表。实测,大模型LaTeX公式识别,出乎预料前文,我用Kimi、Qwen-3-235B...

通过AI提示词让Deepseek快速生成各种类型的图表制作

在数据分析和可视化领域,图表是传达信息的重要工具。然而,传统图表制作往往需要专业的软件和一定的技术知识。本文将介绍如何通过AI提示词,利用Deepseek快速生成各种类型的图表,包括柱状图、折线图、饼...

数据可视化:解析箱线图(box plot)

箱线图/盒须图(boxplot)是数据分布的图形表示,由五个摘要组成:最小值、第一四分位数(25th百分位数)、中位数、第三四分位数(75th百分位数)和最大值。箱子代表四分位距(IQR)。IQR是...

[seaborn] seaborn学习笔记1-箱形图Boxplot

1箱形图Boxplot(代码下载)Boxplot可能是最常见的图形类型之一。它能够很好表示数据中的分布规律。箱型图方框的末尾显示了上下四分位数。极线显示最高和最低值,不包括异常值。seaborn中...