前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【R语言经典实例3】计算基本统计量

【R语言经典实例3】计算基本统计量

作者头像
统计学家
发布2019-04-10 10:34:30
2.1K0
发布2019-04-10 10:34:30
举报
文章被收录于专栏:机器学习与统计学

问题

如何使用R软件计算下列统计量:均值、中位数、标准差、方差、协方差和相关系数。

解决方案

采用如下函数进行计算,其中x、y均为向量: mean(x) median(x) sd(x) var(x) cor(x, y) cov(x, y)

讨论

我初次阅读R软件帮助文件是为了寻找“标准差的计算过程”这一内容,原本认为帮助文件会以一整章篇幅介绍这一重要概念。

实际上没有那么复杂。

R软件中,用简单的函数便能完成标准差和其他基本统计量的计算。一般来说,函数参数是一个数值向量,而函数返回计算出的统计量: > x <- c(0,1,1,2,3,5,8,13,21,34) > mean(x) [1] 8.8 > median(x) [1] 4 > sd(x) [1] 11.03328 > var(x) [1] 121.7333

其中sd函数计算样本标准差,var函数计算样本方差。

cor函数以及cov函数分别计算两变量间的相关系数与协方差: > x <- c(0,1,1,2,3,5,8,13,21,34) > y <- log(x+1) > cor(x,y) [1] 0.9068053 > cov(x,y) [1] 11.49988

上述函数对于是否存在缺失值(NA)很敏感。某个变量中的一个缺失值就有可能导致函数返回NA结果,甚至可能造成计算机在计算过程中报错: > x <- c(0,1,1,2,3,NA) > mean(x) [1] NA > sd(x) [1] NA

虽然R软件对于缺失值的敏感程度有时会造成用户的不便,但这种处理方式也是合情合理的。对于R软件返回的结果你应该慎重地考虑:数据中的缺失值是否会严重影响统计结果?如果是,那么R软件返回错误结果是正确的;如果不是,则可以通过设置参数na.rm=TRUE, 告知R软件忽略缺失值:

> x <- c(0,1,1,2,3,NA) > mean(x, na.rm=TRUE) [1] 1.4 > sd(x, na.rm=TRUE) [1] 1.140175

mean函数和sd函数能巧妙地处理数据框数据,自动将数据框中的每一列认为是不同的变量,并对每列数据分别进行计算。下面的例子展示了mean和sd函数对有三列的数据框的计算结果: > print(dframe) small mediumbig 1 0.6739635 10.526448 99.83624 2 1.5524619 9.205156 100.70852 3 0.3250562 11.427756 99.73202 4 1.2143595 8.533180 98.53608 5 1.3107692 9.763317 100.74444 6 2.1739663 9.806662 98.58961 7 1.6187899 9.150245 100.46707 8 0.8872657 10.058465 99.88068 9 1.9170283 9.182330 100.46724 10 0.7767406 7.949692 100.49814 > mean(dframe) small medium big 1.245040 9.560325 99.946003 > sd(dframe) small medium big 0.5844025 0.9920281 0.8135498

注意,mean和sd函数都会返回3个值,每个数值对应着对数据框中一列数据的计算结果(一般地,R软件会以一个包含三个元素的向量返回结果,其中每个元素的names属性由数据框中各个列的名称得来)。

var函数也能处理数据框数据,但处理方式与mean函数和sd函数有些许不同。var函数计算每两列变量间的协方差,并以协方差矩阵的形式返回结果: > var(dframe) small medium big small 0.34152627 -0.21516416 -0.04005275 medium -0.21516416 0.98411974 -0.09253855 big -0.04005275 -0.09253855 0.66186326

同样,如果x是一个数据框或矩阵,则cor(x) 返回其相关系数矩阵;而cov(x) 返回其协方差矩阵:

> cor(dframe) small medium big small 1.00000000 -0.3711367 -0.08424345 medium -0.37113670 1.0000000 -0.11466070 big -0.08424345 -0.1146607 1.00000000 > cov(dframe) small medium big small 0.34152627 -0.21516416 -0.04005275 medium -0.21516416 0.98411974 -0.09253855 big -0.04005275 -0.09253855 0.66186326

median函数无法辨认数据框形式的数据。

求土豪给知识的搬运工一点奖励:

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2015-08-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 机器学习与统计学 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档