本文对应《R语言实战》第6章:基本图形;第7章:基本统计分析

==================================================================================================================================================

本章讨论的图形,主要用于分析数据前,对数据的初步掌握。想要对数据有一个初步的印象,最好的方式就是观察它,也就是将数据可视化。在这个过程中,我们不必要过于纠结图形是否漂亮美观,而重点关注各个简单图形的含义:观察数据的哪个方面时需要用到哪些图形。

条形图:主要展示类别型变量的分布(频数)

barplot(height)

  

简单条形图

堆砌条形图和分组条形图

均值条形图(用aggregate()函数处理后,得到各组均值、中位值等,即经过折叠的数据)

棘状图(对堆砌条形图进行重缩放,将不同分组高度归一化,用于比较不同组内相同分类占比的不同。package: vcd:: spine())

饼图:不推荐使用,因为相对于面积,人对长度的判断更精确。

pie(x, labels)

直方图:展示了连续型变量的分布情况

hist(x)

  

可以在直方图上添加核密度图或者正态分布曲线辅助观察数据分布

核密度图:也可以用来观察连续型变量分布,可以在直方图上叠加

#直接绘图:
plot(density(x)) #在直方图上叠加:
hist(mtcars$mpg)
#如果数据中有许多结(tie, 数据中出现相同的值)用以下语句打散
rug(jitter(mtcars$mpg))
#添加核密度曲线
lines(density(mtcars$mpg))

  

箱线图:通过绘制绘制连续型变量的五数总括,即最小值、下四分位数、中位数、上四分位数、最大值,描述连续型变量分布

boxplot(x)

  

并列箱线图:跨组比较(单因子或交叉因子。交叉因子:formula形如mpg ~ am.f * cyl.f)

boxplot(formula, data = dataframe)

  

小提琴图:是箱线图的变种,由箱线图与核密度图结合而来,package: vioplot

并不流行

点图:提供了一种在简单水平刻度上绘制大量有标签值的方法

dotchart(x, labels = )

  

对于少量数据有较为显著的洞察力,对于大量数据的实用性较差

==================================================================================================================================================

基本统计分析:

描述性统计分析

#极值、均值、分位数
summary() #变量与观测的数量、缺失值和唯一值的数量、平均值、分位数、五个最大最小值
library(Hmisc)
describe() #对数据框或时间序列进行分析
library(pastecs)
stat.desc(x, basic = TRUE, desc = TRUE, norm = FALSE, p = 0.95)
#basic = TRUE(默认),计算所有值、空值、缺失值数量,最值、值域、总和
#desc = TRUE(默认),中位数、平均数及其标准误、平均数置信度为95%的置信区间、方差、标准差以及变异系数
#norm = TRUE(不是默认),返回正态分布统计量,包括偏度和峰度 #扩展
#非缺失值的数量、平均数、标准差、中位数、截尾均值、绝对中位差、最值、值域、偏度、峰度、平均值的标准误
library(psych)
describe()

  

分组计算描述性统计量

#by()函数
vars <- c(“mpg”, “hp”, “wt”)
dstats <- function(x) (c(mean = mean(x), sd = sd(x)))
by(mtcars[vars], mtcars$am, dstats) #自定义统计量
library(doBy)
summaryBy(formula, data = dataframe, FUN = function) #概述统计量
library(psych)
describe.by(data, variables) #package reshape
#melt() cast()简洁但是需要熟练使用

  

频数表和列联表

table(var1, var2, …, varN)

使用N个类别型变量创建一个N维列联表

xtabs(formula, data)

根据一个公式和一个矩阵或一个数据框创建一个N维列联表

prop.table(table, margins)

依margins定义的边际列表将表中条目表示为分数形式

margin.table(table, margins)

依margins定义的边际列表计算表中条目的和

addmargins(table, margins)

将概述边margins(默认是求和结果)放入表中

ftable(table)

创建一个紧凑的“平铺”式列联表

注意:table()函数默认忽略缺失值(NA)要将NA视为一个有效的类别,需要设置参数useNA = “ifany”

生成二维列联表的一个更好的方式,使用library: gmodels:: CrossTable()函数

多维列联表:以上函数均可以推广到高维情况,推荐使用ftable()函数

独立性检验:

对二维列联表的行变量与列变量进行独立性检验(检验对象为列联表)

#卡方独立性检验
#假设相互独立,若p<0.05,拒绝假设(也就是相关)
chisq.test() #Fisher精确检验
#假设:边界固定的列联表中行和列是相互独立的
#注意不能用于2*2列联表
fisher.test() #Cochran-Mantel-Haenszel检验
#假设:两个名义变量在第三个变量的每一层中都是条件独立的(即不存在三阶交互作用)
mantelhaen.test()

  

相关性度量:

如果独立性检验通过(拒绝假设),继续度量相关性的强弱

相关

Pearson积差相关系数衡量了两个定量变量之间的线性相关程度

Spearman等级相关系数衡量分级定序变量之间的相关程度

Kendall’s Tau相关系数是一种非参数的等级相关度量

#计算相关系数
cor()
#计算协方差
cov()

  

偏相关:在控制一个或多个定量变量时,另外两个定量变量之间的相互关系

library(ggm)
pcor(u, S)

  

其他类型的相关

#计算混合相关矩阵,包括数值型变量之间的Pearson相关系数、数值型变量和有序变量之间的多系列相关系数
library(polycor)
hector()

  

相关性的显著性检验:

#检验一种相关关系
cor.test(x, y, alternative = , method = ) #一次作出相关矩阵及显著性检验
library(psych)
corr.test()

  

其他显著性检验:

在多元正态性的假设下,ggm包中pcor.test()函数可以用来检验在控制一个或多个额外变量时,两个变量之间的条件独立性。

t检验

#独立样本t检验
t.test(y ~ x, data)
#y为数值型变量,x为二分变量
t.test(y1, y2)
#y1和y2为数值型变量,即各组的结果变量 #非独立样本t检验(假定组间的差异呈正态分布)
t.test(y1, y2, paired = TRUE)

  

多于两组的情况:如果能够假设数据是从正态总体中独立抽样而得的,就可以使用方差分析(ANOVA)

组间差异的非参数检验

两组的比较:若独立,则可以使用Wilcoxon秩和检验

wilcox.test(y ~ x, data)
wilcox.test(y1, y2)

  

多于两组的比较:无法满足ANOVA的假设时,采用非参数方法。

如果各组独立,可以使用Kruskal-Wallis检验;如果各组不独立,使用Friedman检验。

R语言实战(三)基本图形与基本统计分析的更多相关文章

  1. R语言实战(一)介绍、数据集与图形初阶

    本文对应<R语言实战>前3章,因为里面大部分内容已经比较熟悉,所以在这里只是起一个索引的作用. 第1章       R语言介绍 获取帮助函数 help(), ? 查看函数帮助 exampl ...

  2. R语言实战(七)图形进阶

    本文对应<R语言实战>第11章:中级绘图:第16章:高级图形进阶 基础图形一章,侧重展示单类别型或连续型变量的分布情况:中级绘图一章,侧重展示双变量间关系(二元关系)和多变量间关系(多元关 ...

  3. R入门<三>-R语言实战第4章基本数据管理摘要

    入门书籍:R语言实战 进度:1-4章 摘要: 1)实用的包 forecast:用于做时间序列预测的,有auto.arima函数 RODBC:可以用来读取excel文件.但据说R对csv格式适应更加良好 ...

  4. R语言实战(五)方差分析与功效分析

    本文对应<R语言实战>第9章:方差分析:第10章:功效分析 ================================================================ ...

  5. R语言实战(十)处理缺失数据的高级方法

    本文对应<R语言实战>第15章:处理缺失数据的高级方法 本文仅在书的基础上进行简单阐述,更加详细的缺失数据问题研究将会单独写一篇文章. 处理缺失值的一般步骤: 识别缺失数据: 检查导致数据 ...

  6. R语言实战(九)主成分和因子分析

    本文对应<R语言实战>第14章:主成分和因子分析 主成分分析(PCA)是一种数据降维技巧,它能将大量相关变量转化为一组很少的不相关变量,这些无关变量成为主成分. 探索性因子分析(EFA)是 ...

  7. R 语言实战-Part 4 笔记

    R 语言实战(第二版) part 4 高级方法 -------------第13章 广义线性模型------------------ #前面分析了线性模型中的回归和方差分析,前提都是假设因变量服从正态 ...

  8. R 语言实战-Part 3 笔记

    R 语言实战(第二版) part 3 中级方法 -------------第8章 回归------------------ #概念:用一个或多个自变量(预测变量)来预测因变量(响应变量)的方法 #最常 ...

  9. R语言实战-Part 2笔记

    R 语言实战(第二版) part 2 基本方法 -------------第6章 基本图形------------------ #1.条形图 #一般是类别型(离散)变量 library(vcd) he ...

随机推荐

  1. delphi实现的RTMP播放

    其实知道原理用什么语言实现都是可以的 1. 服务器 提供http服务, 点击start运行. 2. 测试客户端 定时获取http服务的数据, 坐标是服务器中写死的, 在中国地图中画了一个圈. 如: { ...

  2. SSH框架整合项目(一)——搭建平台和引入依赖

    前言:这个项目是我的第一个实验性项目,最初的立意是制作一个个性化的BBS.由于BBS能够综合大部分功能,因此作为练手的项目来说再好不过.从写第一行代码到完成测试版大概历时2周.中间遇到了不少以前在学习 ...

  3. Android 子线程测试

    private volatile boolean mStopped = false; private int i; TextView tv1; TextView tv2; @Override prot ...

  4. mysql数据库服务日志

    mysql数据库服务日志 ①. 错误日志:error_log ②. 普通日志:general_log ③. 慢查询日志:log-slow-query #有3个参数 分割:.mv .编写定时任务并执行: ...

  5. HTTP请求 GET与POST是怎么实现?

    1.HTTP请求格式: <request line> <headers> <blank line> [<request-body>] 在HTTP请求中, ...

  6. 基于ThinkPHP开发的PHPExcel导入

    首先,我们还是要导入PHPExcel类文件...至于怎么导入.可以参考我写的导出的那篇文章(http://www.cnblogs.com/hopelooking/p/6230303.html) 但是我 ...

  7. 通达信5分钟.lc5和.lc1文件格式

    一.通达信日线*.day文件    文件名即股票代码    每32个字节为一天数据    每4个字节为一个字段,每个字段内低字节在前    00 ~ 03 字节:年月日, 整型    04 ~ 07 ...

  8. ionic项目 环境搭建及基本操作

    一.安装 1.安装node.js 3.安装ionic & cordova: 命令行输入:npm install –g cordova ionic 注:-g表示全局安装,也可以进入指定的目录安装 ...

  9. window 下 xampp 上 安装memcached

    1.下载memcache 的window 稳定版,解压到xampp 目下;比如D:\xampp\memcached 2. 打开cmd 命令界面 输入 D:\xampp\memcached\ memca ...

  10. 移动APP的开发需求分析

    一.项目概况 项目名称为上海地铁游.本项目是以上海地铁为线索,开发的一个移动APP.主要目的是帮助用户实现根据当前位置选择最方便的地铁旅游点和旅游推荐,方便出行,让更多人可以借助地铁的便利去认识和体验 ...