R小姐:描述性统计分析

作者: 鲨瓜 | 来源:发表于2018-11-26 19:23 被阅读0次

往期文章中,我们已经学会了使用图形探索数据,例如可以用条形图了解类别变量的分布,用堆砌条形图或分组条形图比较不同类别的组间差异。同时,我们也学会了使用直方图、密度图、箱线图以及点图了解连续型变量的分布,比较组间差异。

而图形探索数据之后,通常的做法是进行描述性统计分析。

本期的R语言实现过程较为简单,但重要的是理解各个统计量的意义,统计量数值的大小能说明什么问题?

大家看的愉快。

1

数据集

本期使用Motor Trend杂志的车辆路试(mtcars)数据集。我们关注的变量是每加仑汽油行驶的英里数(mpg)、马力(hp)、车重(wt)。

#创建一个自己想调取的变量集
myvars <- c('mpg','hp','wt')
#查看所需数据集
head(mtcars[myvars])

|
| mpg | hp | wt |
| --- | --- | --- | --- |
| Mazda RX4 | 21.0 | 110 | 2.620 |
| Mazda RX4 Wag | 21.0 | 110 | 2.875 |
| Datsun 710 | 22.8 | 93 | 2.320 |
| Hornet 4 Drive | 21.4 | 110 | 3.215 |
| Hornet Sportabout | 18.7 | 175 | 3.440 |
| Valiant | 18.1 | 105 | 3.460 |

2

入门

我们首先从基础安装包入手,利用summary( )函数获取统计量。

#创建一个自己想调取的变量集
myvars <- c('mpg','hp','wt')
#查看所需数据集
summary(mtcars[myvars])
mpg hp wt
Min. :10.40 Min. : 52.0 Min. :1.513
1st Qu.:15.43 1st Qu.: 96.5 1st Qu.:2.581
Median :19.20 Median :123.0 Median :3.325
Mean :20.09 Mean :146.7 Mean :3.217
3rd Qu.:22.80 3rd Qu.:180.0 3rd Qu.:3.610
Max. :33.90 Max. :335.0 Max. :5.424

summary( )函数提供了最小值、最大值、四分位数和数值型变量的均值,以及因子和逻辑型变量的频数统计。我们也可以使用apply( )函数或sapply( )函数计算选择的任意统计量。

他们的使用格式为:sapply( x, FUN, options)

其中 x 是你的数据框,FUN是任意函数。如果指定了options,他们将被传递给FUN。例如你可以在这里插入mean( ),sd( ),var( ),min( ),max( ),median( ),length( ),range( ),quantile( )。函数fivenum( )可以返回图基五总数(最小值、下四分位数,中位数、上四分位数、最大值)。

#创建一个计算函数FUN
#将行删除设为FALSE
mystats <- function(x,na.omit=F){
  #如果存在缺失值
  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[myvars],mystats)
mpg hp wt
n 32.000000 32.0000000 32.00000000
mean 20.090625 146.6875000 3.21725000
stdev 6.026948 68.5628685 0.97845744
skew 0.610655 0.7260237 0.42314646
kurtosis -0.372766 -0.1355511 -0.02271075

对于mpg来说,其偏度(skew)为+0.6,分布呈现右偏;峰度(kurtosis)为-0.37,比正态分布稍平。

3

进阶

pastecs包中的stat.desc( )函数能返回种类繁多的描述性统计量。

使用格式为:

stat.desc(x,basic=T,desc=T,norm=F,p=0.95)

其中 x 代表数据框,basic默认值为TRUE,计算所有值、空值、缺失值的数量、最大值、最小值、值域、总和。desc默认值为TRUE,计算中位数、均值、均值的标准误差、均值置信度为95%的置信区间、方差、标准差、变异系数。若norm=TRUE,返回偏度和峰度(以及他们的统计显著程度)、Shapiro-Wilk正态检验结果。

install.packages('pastecs')
library('pastecs')
stat.desc(mtcars[myvars],norm = T)
mpg hp wt
nbr.val 32.0000000 32.00000000 32.00000000
nbr.null 0.0000000 0.00000000 0.00000000
nbr.na 0.0000000 0.00000000 0.00000000
min 10.4000000 52.00000000 1.51300000
max 33.9000000 335.00000000 5.42400000
range 23.5000000 283.00000000 3.91100000
sum 642.9000000 4694.00000000 102.95200000
median 19.2000000 123.00000000 3.32500000
mean 20.0906250 146.68750000 3.21725000
SE.mean 1.0654240 12.12031731 0.17296847
CI.mean.0.95 2.1729465 24.71955013 0.35277153
var 36.3241028 4700.86693548 0.95737897
std.dev 6.0269481 68.56286849 0.97845744
coef.var 0.2999881 0.46740771 0.30412851
skewness 0.6106550 0.72602366 0.42314646
skew.2SE 0.7366922 0.87587259 0.51048252
kurtosis -0.3727660 -0.13555112 -0.02271075
kurt.2SE -0.2302812 -0.08373853 -0.01402987
normtest.W 0.9475647 0.93341934 0.94325772
normtest.p 0.1228814 0.04880824 0.09265499

4

精通

对于有类别型变量的数据来说,我们往往需要分组计算统计量。

by( data ,* INDICES *, FUN)

其中data代表数据框,INDICES是一个因子,FUN是任意函数

#调用mystats中的所有函数
dstats <- function(x)sapply(x,mystats)
#传递dstats并进行分组
by(mtcars[myvars],mtcars$am,dstats)
mtcars$am: 0
mpg hp wt
n 19.00000000 19.00000000 19.0000000
mean 17.14736842 160.26315789 3.7688947
stdev 3.83396639 53.90819573 0.7774001
skew 0.01395038 -0.01422519 0.9759294
kurtosis -0.80317826 -1.20969733 0.1415676
mtcars$am: 1
mpg hp wt
n 13.00000000 13.0000000 13.0000000
mean 24.39230769 126.8461538 2.4110000
stdev 6.16650381 84.0623243 0.6169816
skew 0.05256118 1.3598859 0.2103128
kurtosis -1.45535200 0.5634635 -1.1737358

今天的文章就到这里,最关键的还是数学方面的理解。

祝福冰姐又老了一岁,谢谢各位。

下期再见。

你可能还想看

等你很久啦,长按加入古同社区

image

相关文章

  • R小姐:描述性统计分析

    往期文章中,我们已经学会了使用图形探索数据,例如可以用条形图了解类别变量的分布,用堆砌条形图或分组条形图比较不同类...

  • 流程整理

    一、基本统计分析 1、描述性统计分析 (1)summary() apply函数族 分组描述性统计 group /b...

  • R基本统计分析

    一、描述性统计分析 基本描述性统计 summary( ) 比fivenum 多一个均值 fivenum( ) ...

  • SPSS基本统计分析

    描述性统计分析 描述性统计分析可以对数据进行基本描述,例如:平均值、众数、中位数、方差、总数。 频数分析,对数据进...

  • R action 7

    20180316(从有道迁移) 基本统计分析 描述性统计分析常用库:基础方法summary;summary()函数...

  • [R语言实战笔记] 第7章 基本统计分析

    本章内容 描述性统计分析频数表和列联表相关系数和协方差t检验非参数统计 7.1 描述性统计分析 连续型变量的中心趋...

  • 描述性数据分析

    本小节介绍什么是描述性统计分析,以及常用的指标 一、什么是描述统计分析(Descriptive Analysis)...

  • R描述性统计分析与绘图

    setwd("D:/《用商业案例学R语言数据挖掘》教材代码及数据/data")dat0 <- read.csv("...

  • ggplot2|扩展包从0开始绘制雷达图

    雷达图通常在财务报表分析中使用较多,当前在描述性统计分析中,雷达图正在被越来越多的人使用。 本文利用R语言 ggp...

  • 【数据分析师必备】九大常用数据分析方法汇总(上)

    一、描述性统计 定义:描述性统计是一类统计方法的汇总,揭示了调查总体的数据分布特性。描述性统计分析要对调查总体所有...

网友评论

    本文标题:R小姐:描述性统计分析

    本文链接:https://www.haomeiwen.com/subject/tvkiqqtx.html