目的:

  1.描述性统计分析

  2.频数表和;列连表

  3.相关系数和协方差

  4.t检验

  5.非参数统计

在上一节中使用了图形来探索数据,下一步就是给出具体的数据来描述每个变量的分布和关系

1.描述性统计分析

  探究案例:各类车型的油耗如何?对车型的调查中,每加仑汽油行驶的英里数分布是什么形式(均值,标准差,中位数,值域等)

  1.1使用内置的summary函数来获取最小值,最大值,四分位数和数值型变量的均值

  1. myvals <- c('mpg','hp','wt')
  2. head(mtcars[myvals])
  3. summary(mtcars[myvals])

  1.2.使用sapply和自定义函数计算描述性统计量

    计算均值,长度,偏度,丰度

  1. mystats <- function(x,na.omit=F){
  2. if(na.omit){
  3. x <- x[!is.na(x)]
  4. }
  5. m <- mean(x)
  6. n <- length(x)
  7. s <- sd(x)
  8. skew <- sum((x-m)^3/s^3)/n
  9. kurt <- sum((x-m)^4/s^4)/n-3
  10. return(c(n=n,mean=m,stdev=s,skew=skew,kurtois=kurt))
  11. }
  12. myvals <- c('mpg','hp','wt')
  13. sapply(mtcars[myvals], mystats)

  1.3第三方包实现描述性统计分析

  1. library(Hmisc)
  2. describe(mtcars[myvals])

  1.4分组计算描述性统计量

  1. # by()第一个参数数数据集,第二个参数是要分组的项,第三个参数是要执行的统计函数
    1 dstats <- function(x){sapply(x, mystats)}
  2. by(mtcars[myvals],mtcars$am,dstats)

2.频数表和列连表

  探究案例:在进行新药试验后,用药组和安慰剂组的治疗结果相比如何?实验参与者的性别是否对结果有影响?

  2.1一维列联表

  1. library(vcd)
  2. # 使用table韩式生成频数表
  3. mytable <- with(Arthritis,table(Improved))
  4. mytable
  5. # 转化成比例值
  6. prop.table(mytable)
  7. # 转化成百分比
  8. prop.table(mytable)*100

  2.2二维列联表

   结论:与接受安慰剂的治愈率16%相比,使用特效药的治愈率达到了51%

  1. # 使用xtab函数实现多变量频数
    1 mytable <- xtabs(~ Treatment + Improved,data = Arthritis)
  2. mytable
    # 下标1表示mytable数据集的第一个变量
  3. margin.table(mytable,1)
  4. prop.table(mytable,1)

  2.3多维连列表

  结论:在治疗组中男性有36%的改善,女性有59%的改善,说明性别对于药效有影响

  1. mytable <- xtabs(~ Treatment+Sex+Improved,data=Arthritis)
  2. mytable
  3. ftable(mytable)
  4. # 计算单独变量的编辑频数
  5. margin.table(mytable,1)
  6. margin.table(mytable,2)
  7. margin.table(mytable,3)
  8. # 治疗情况和改善情况的边际频数
  9. margin.table(mytable,c(1,3))
  10. # 治疗情况和性别的改善情况比例
  11. ftable(prop.table(mytable,c(1,2)))
  12. ftable(addmargins(prop.table(mytable,c(1,2)),3))

  

3.相关

 探究案例:收入和预期寿命的相关性如何

 3.1使用cor.test()来查看两个变量是否相关接近1为正相关,接近-1位负相关,接近0无关

  1. cor.test(states[,3],states[,5])

 3.2查看多个变量之间的相关性

     结论:谋杀率与文盲率是最大的相关变量,与天气是最小的相关变量

  1. library(psych)
  2. corr.test(states, use="complete")

4.t检验

 4.1 独立样本t检验

 探究案例:如果你在南方犯罪,是否更有可能被判监禁?

 结论:是的,在南方犯罪更容易判监禁

  1. library(MASS)
    # 在以下的代码中,使用了双马尾t检验,生成了南方group1和非南方的group0的值
  2. t.test(Prob~So,data = UScrime)

  4.2 非独立样本t检验

  探究案例:年轻男性的失业率是否要比年长男性要高

  结论:年轻男性的失业率高于年长男性

  1. sapply(UScrime[c('U1','U2')], function(x){c(mean=mean(x),sd=sd(x))})
  2. with(UScrime,t.test(U1,U2,paired = T))

5 组间差异的非参数校验

 5.1两组的比较

 结论:和4.1,4.2的结论相同

  1. # 使用wilcox函数秩和检验
  2. with(UScrime,by(Prob,So,median))
  3. wilcox.test(Prob ~ So,data=UScrime)
  4.  
  5. sapply(UScrime[c('U1','U2')],median)
  6. with(UScrime,wilcox.test(U1,U2,paired = T))

 5.2大于两组的比较

 案例探究:比较美国四个地区的文盲率是否相同

 结论:四个地区的文盲率不同,南部文盲率最高,北部最低

  1. state <- data.frame(state.region,state.x77)
  2. kruskal.test(Illiteracy~state.region,data=states)

  5.3自定义远程函数处理多组因子

  1. source('http://www.statmethods.net/RiA/wmc.txt')
  2. state <- data.frame(state.region,state.x77)
  3. # wmc是在远程服务器的自定义函数
  4. wmc(Illiteracy~state.region,data=states,method='holm')

  

R语言- 基本统计分析的更多相关文章

  1. R语言介绍

    R语言简介 R语言是一种为统计计算和图形显示而设计的语言环境,是贝尔实验室(Bell Laboratories)的Rick Becker.John Chambers和Allan Wilks开发的S语言 ...

  2. SQL Server 2016将内置R语言?

    (此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 题记:随着大数据成为一个BuzzWord,和大数据相关的技术也变得越来越火热,其中就包括R语 ...

  3. R语言的前世今生(转)

    最近因病休养在家,另外也算是正式的离开Snack Studio.终于有了大把可以自由支配的时间.可以自主的安排.最近闲暇的时间总算是恶补了不少前段时间行业没有时间关注的新事物.看着行业里引领潮流的东西 ...

  4. 统计计算与R语言的资料汇总(截止2016年12月)

    本文在Creative Commons许可证下发布. 在fedora Linux上断断续续使用R语言过了9年后,发现R语言在国内用的人逐渐多了起来.由于工作原因,直到今年暑假一个赴京工作的机会与一位统 ...

  5. Mac下R语言环境搭建

    Mac下R语言环境搭建 博主在数据分析的时候一直用的python(MATLAB太重了),最近跟其他搞学术的人合作,需要用一下R语言,所以也打算顺便学习一下R. R语言简介 R语言是用于统计分析,图形表 ...

  6. 用R语言分析与预測员工离职

    版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/kMD8d5R/article/details/83542978 https://mmbiz.qpic ...

  7. SQL Server 2016将内置R语言

    题记:随着大数据成为一个BuzzWord,和大数据相关的技术也变得越来越火热,其中就包括R语言.而据说SQL Server 2016将会内置R语言支持? R语言作为一个存在很久的语言,在大数据热炒之后 ...

  8. R语言实战(三)基本图形与基本统计分析

    本文对应<R语言实战>第6章:基本图形:第7章:基本统计分析 =============================================================== ...

  9. R语言统计分析应用与SAS、SPSS的比较

    能够用来做统计分析的软件和程序很多,目前应用比较广泛的包括:SPSS, SAS.R语言,Matlab,S-PLUS,S-Miner等.下面我们来看一下各应用的特点: SPSS: 最简单的,都是菜单操作 ...

随机推荐

  1. cp---复制文件

    cp命令用来将一个或多个源文件或者目录复制到指定的目的文件或目录.它可以将单个源文件复制成一个指定文件名的具体的文件或一个已经存在的目录下.cp命令还支持同时复制多个文件,当一次复制多个文件时,目标文 ...

  2. PHP抓取网页内容的几种方法

    方法1: 用file_get_contents 以get方式获取内容 <?php $url='http://www.domain.com/?para=123'; $html = file_get ...

  3. Exception in thread &quot;main&quot; java.lang.UnsupportedClassVersionError: org/apache/ma ven/cli/Maven

    安装maven 中出现例如以下异常: Exception in thread "main" java.lang.UnsupportedClassVersionError: org/ ...

  4. 关于cocos2dx之lua使用TableView

    在手机游戏的开发中,滚动是一项很重要的操作,而cocos2dx中使用的最广泛的就属于TableView了,只是由于cocos2dx的接口比較晦涩,所以须要一个熟悉的过程.本文主要解说怎样使用Table ...

  5. centOS6.3(64bit)Hadoop的Eclipse开发环境搭建

    操作系统centos6.3(64位) 一个namenode 两个datanode Hadoop版本号:hadoop-1.1.2 Eclipse版本号:eclipse-standard-kepler-S ...

  6. 漫漫人生路,学点Jakarta基础-Java8函数式编程

    接口默认方法 Java8版本以后新增了接口的默认方法,不仅仅只能包含抽象方法,接口也可以包含若干个实例方法.在接口内定义实例方法(但是注意需要使用default关键字) 在此定义的方法并非抽象方法,而 ...

  7. 一款开源Office软件---Lotus Symphony在Linux系统下的应用

    点击下载观看试用录像   Linux系统下的办公软件有OpenOffice.永中Office.红旗Red Office.金山Wps Office及StarOffice等,今天我为大家介绍IBM推进军O ...

  8. OpenCV —— 轮廓

    把检测出的边缘像素组装成轮廓  ——  cvFindContours OpenCV 使用内存存储器来统一管理各种动态对象的内存.内存存储器在底层被实现为一个有许多相同大小的内存块组成的双向链表 内存储 ...

  9. ErrorSet

    1.获取路径的失误: 例子是对一个列表项的悬浮操作: ~(function() { var lists = $(".footer_log>li"); lists.each(f ...

  10. python爬虫之『入门基础』

    HTTP请求 1.首先需要了解一下http请求,当用户在地址栏中输入网址,发送网络请求的过程是什么? 可以参考我之前学习的时候转载的一篇文章一次完整的HTTP事务过程–超详细 2.还需要了解一下htt ...