R语言- 基本统计分析
目的:
1.描述性统计分析
2.频数表和;列连表
3.相关系数和协方差
4.t检验
5.非参数统计
在上一节中使用了图形来探索数据,下一步就是给出具体的数据来描述每个变量的分布和关系
1.描述性统计分析
探究案例:各类车型的油耗如何?对车型的调查中,每加仑汽油行驶的英里数分布是什么形式(均值,标准差,中位数,值域等)
1.1使用内置的summary函数来获取最小值,最大值,四分位数和数值型变量的均值
myvals <- c('mpg','hp','wt')
head(mtcars[myvals])
summary(mtcars[myvals])

1.2.使用sapply和自定义函数计算描述性统计量
计算均值,长度,偏度,丰度
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,kurtois=kurt))
}
myvals <- c('mpg','hp','wt')
sapply(mtcars[myvals], mystats)

1.3第三方包实现描述性统计分析
library(Hmisc)
describe(mtcars[myvals])

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

2.频数表和列连表
探究案例:在进行新药试验后,用药组和安慰剂组的治疗结果相比如何?实验参与者的性别是否对结果有影响?
2.1一维列联表
library(vcd)
# 使用table韩式生成频数表
mytable <- with(Arthritis,table(Improved))
mytable
# 转化成比例值
prop.table(mytable)
# 转化成百分比
prop.table(mytable)*100

2.2二维列联表
结论:与接受安慰剂的治愈率16%相比,使用特效药的治愈率达到了51%
# 使用xtab函数实现多变量频数
1 mytable <- xtabs(~ Treatment + Improved,data = Arthritis)
mytable
# 下标1表示mytable数据集的第一个变量
margin.table(mytable,1)
prop.table(mytable,1)

2.3多维连列表
结论:在治疗组中男性有36%的改善,女性有59%的改善,说明性别对于药效有影响
mytable <- xtabs(~ Treatment+Sex+Improved,data=Arthritis)
mytable
ftable(mytable)
# 计算单独变量的编辑频数
margin.table(mytable,1)
margin.table(mytable,2)
margin.table(mytable,3)
# 治疗情况和改善情况的边际频数
margin.table(mytable,c(1,3))
# 治疗情况和性别的改善情况比例
ftable(prop.table(mytable,c(1,2)))
ftable(addmargins(prop.table(mytable,c(1,2)),3))

3.相关
探究案例:收入和预期寿命的相关性如何
3.1使用cor.test()来查看两个变量是否相关接近1为正相关,接近-1位负相关,接近0无关
cor.test(states[,3],states[,5])

3.2查看多个变量之间的相关性
结论:谋杀率与文盲率是最大的相关变量,与天气是最小的相关变量
library(psych)
corr.test(states, use="complete")

4.t检验
4.1 独立样本t检验
探究案例:如果你在南方犯罪,是否更有可能被判监禁?
结论:是的,在南方犯罪更容易判监禁
library(MASS)
# 在以下的代码中,使用了双马尾t检验,生成了南方group1和非南方的group0的值
t.test(Prob~So,data = UScrime)

4.2 非独立样本t检验
探究案例:年轻男性的失业率是否要比年长男性要高
结论:年轻男性的失业率高于年长男性
sapply(UScrime[c('U1','U2')], function(x){c(mean=mean(x),sd=sd(x))})
with(UScrime,t.test(U1,U2,paired = T))

5 组间差异的非参数校验
5.1两组的比较
结论:和4.1,4.2的结论相同
# 使用wilcox函数秩和检验
with(UScrime,by(Prob,So,median))
wilcox.test(Prob ~ So,data=UScrime) sapply(UScrime[c('U1','U2')],median)
with(UScrime,wilcox.test(U1,U2,paired = T))
5.2大于两组的比较
案例探究:比较美国四个地区的文盲率是否相同
结论:四个地区的文盲率不同,南部文盲率最高,北部最低
state <- data.frame(state.region,state.x77)
kruskal.test(Illiteracy~state.region,data=states)

5.3自定义远程函数处理多组因子
source('http://www.statmethods.net/RiA/wmc.txt')
state <- data.frame(state.region,state.x77)
# wmc是在远程服务器的自定义函数
wmc(Illiteracy~state.region,data=states,method='holm')


R语言- 基本统计分析的更多相关文章
- R语言介绍
R语言简介 R语言是一种为统计计算和图形显示而设计的语言环境,是贝尔实验室(Bell Laboratories)的Rick Becker.John Chambers和Allan Wilks开发的S语言 ...
- SQL Server 2016将内置R语言?
(此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 题记:随着大数据成为一个BuzzWord,和大数据相关的技术也变得越来越火热,其中就包括R语 ...
- R语言的前世今生(转)
最近因病休养在家,另外也算是正式的离开Snack Studio.终于有了大把可以自由支配的时间.可以自主的安排.最近闲暇的时间总算是恶补了不少前段时间行业没有时间关注的新事物.看着行业里引领潮流的东西 ...
- 统计计算与R语言的资料汇总(截止2016年12月)
本文在Creative Commons许可证下发布. 在fedora Linux上断断续续使用R语言过了9年后,发现R语言在国内用的人逐渐多了起来.由于工作原因,直到今年暑假一个赴京工作的机会与一位统 ...
- Mac下R语言环境搭建
Mac下R语言环境搭建 博主在数据分析的时候一直用的python(MATLAB太重了),最近跟其他搞学术的人合作,需要用一下R语言,所以也打算顺便学习一下R. R语言简介 R语言是用于统计分析,图形表 ...
- 用R语言分析与预測员工离职
版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/kMD8d5R/article/details/83542978 https://mmbiz.qpic ...
- SQL Server 2016将内置R语言
题记:随着大数据成为一个BuzzWord,和大数据相关的技术也变得越来越火热,其中就包括R语言.而据说SQL Server 2016将会内置R语言支持? R语言作为一个存在很久的语言,在大数据热炒之后 ...
- R语言实战(三)基本图形与基本统计分析
本文对应<R语言实战>第6章:基本图形:第7章:基本统计分析 =============================================================== ...
- R语言统计分析应用与SAS、SPSS的比较
能够用来做统计分析的软件和程序很多,目前应用比较广泛的包括:SPSS, SAS.R语言,Matlab,S-PLUS,S-Miner等.下面我们来看一下各应用的特点: SPSS: 最简单的,都是菜单操作 ...
随机推荐
- Yeslab华为安全HCIE七门之-防火墙UTM技术(5篇)
课程目录: 华为安全HCIE-第四门-防火墙UTM技术(5篇)\1_内容安全_内容过滤.avi 华为安全HCIE-第四门-防火墙UTM技术(5篇)\2_内容安全-url过滤.avi 华为安全H ...
- 【Henu ACM Round #13 B】Spider Man
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 会发现每个环可以操作的次数是固定的. (环的大小-1 也就是说一旦环确定了.其实结果就已经确定了. 则直接看操作总数的奇偶性就可以了 ...
- poj2486--Apple Tree(树状dp)
Apple Tree Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 7789 Accepted: 2606 Descri ...
- MySQL架构组成之逻辑模块组成
MySQL 能够看成是二层架构 第一层SQL Layer.包含权限推断.sql 解析.运行计划优化,query cache 的处理等等. 第二层存储引擎层(Storage Engine Lay ...
- JS中的onload与jQuery中的ready差别
jQuery的运行机制(onload与ready的差别) 结论得出前自行測试: 为了測试是否真如所说的那样,所以在页面插入了20000张照片,照片数量少得不出什么结论,所以改用console.log( ...
- SAP学习之路
此贴记录学习SAP过程~如有错误请指出~ 6.看着网上学习SAP的貌似比較花精力.学习好的话发展前景还是不错的 5.尽管还不是非常懂.可是还是充满期待,期待着java转型abap. 能够在虚拟机上安装 ...
- Hbuilder开发app实战-识岁06-face++的js实现【完结】
前言 因为识岁app比較简单.所以这节就完结吧, 当然另一些能够优化完好的地方,可是个人兴趣不是非常大, 有想继续完好的,源代码在这里:https://github.com/uikoo9/shisui ...
- 图片的title属性和alt属性的区别
在前端开发中,经常遇到有人在问图片的alt属性和title属性的区别,这是因为很多人对于alt属性和title属性没有彻底搞明白,今天零度给大家分析分析. title属性 首先,来看一下什么是titl ...
- 通过PXE安装Linux实况
通过PXE安装Linux实况 网卡引导操作系统的过程我们可以把它称为PXE(Pre-bootExecutionEnvironment),十几年前,在搞无盘NT时候,我们为了使网卡支持PXE引导要特意购 ...
- c# 装箱与拆箱的概念
1装箱 就是将值类型的数据赋值给引用类型的实例中 比如 int类型的123赋值给Object o int i=123; Object o=(Object) i; 2拆箱 就是从引用类型的数据中提取数据 ...