资讯详情

R语言与统计分析

R语言与统计分析 汤银才 主编 高等教育出版社 二○○八年五月 内容介绍 本书以常用的统计分析方法为基础,简要阐述了统计学的基本概述 在阅读、基本思想和基本方法的基础上,讲述相应R函数的实现,并通过 具体例子说明了解决统计问题的过程. 本书注重思想性、实用性和可操作性. 内容安排不仅包括基础设施 探索性数据分析、参数估计和假设检验也包括非参数统计分数 贝叶斯常用的分析方法、多元统计分析方法和统计分析方法. 每一部分都是通过的 体例侧重于R中解决问题的思想、方法和实现过程. 读者不通过这本书 根据提供的例子和相应的R程,只能快速学习R的基本原理和核心内容 学习统计计算方法和解决问题的基本编程技术,以解决更复杂的统计问题 问题奠定了坚实的基础. 本书可作为各专业本科生、研究生数学统计或应用统计课程的基础教材 或实验教材,也可作为数据统计分析研究人员和工程技术人员的工具书或工具书 参考读物. I 前言 统计学的任务是研究数据的收集、整理和分析,以便对所调查的问题进行调查 结论的方法和理论. 统计学作为一门科学,有着坚实的理论基础和研究 统计方法的理论基础构成了所谓的数理统计。 第二,统计学本质上是一门实用性很强的科学,在人类活动的各个领域都有 该领域得到了广泛的应用。因此,数理统计的理论和方法应与实,解决社会问题 会议、经济、工农业生产、生物制药、航空航天、质量管理、环境资源等领域 各种问题。最后,统计学是一门技术性很强的科学,因为研究问题越来越多 复杂,变量之间的相关性越强,数据规模越大,使得原来的计算方法没有 法实现. 现在,随着计算机的不断发展和普及,特别是近20年的统计突然计算 统计软件的不断完善和成熟,不仅可以解决这些问题,而且可以解决 而且越来越容易,越来越快. 目前,许多大学几乎所有的理工科甚至文科专业都开设了数学 一些课程,如统计或应用统计,也编写了相应的教材,这是可以接受的 喜的. 这些课程和教材的共同特点是介绍数理统计的理论和广场 法律和实际背景,以及一定数量的例子和练习. 有些学校也有统计专业和统计专业 应用数学专业的学生设立SAS或Matlab统计软件为经济统计专业的学生开设 设SPSS或EViews统计软件, 但这还远远不够. 作者长期从事概率论和数理统计、统计算和统计软件的教学工作 我们发现统计教学中常见的问题有:一、教学内容:课程有限 如今,非统计专业的学生采用统计专业的教学方法,过于强调理论 从而忽视了统计思想和数据处理能力的培养;有些人只使用一门学习 期(54小时或更少)讲授概率论和数学统计,全面的概率论教学使学生无法 学习回归分析和方差分析等重要内容. 关于软件教学:因为没有软件 无论是老师讲解例题,还是学生完成练习,都支持和运用传统的教学方法和教材 手工计算需要很多时间,错误率高. 使用软件可以使数据分析更多 II 第零章 内容介绍 直观性、灵活性和可重复性可以从一个例子中得出推论,提高学生的学习兴趣和兴趣 动手(操作或编程)能力. 三、统计教学与软件教学是否分开: 统计教学与 分开教学软件教学会产生一定的重复性,从而浪费有限的教学时间,减少学习 效率. 分开教学会使大多数非统计专业的学生无法获得统计软件操作和数字 根据分析能力的培养. 统计软件, 可以大大增加教学信息量,节省时间 培养学生统计软件的计算机操作能力;通过统计软件,大规模或大量数据 分析和精确计算是可能的,这也使得教科书中的许多附表(如常用分布的分位数表)丢失 去其必要性. 四、关于R软件: 本书采用R软件, 主要原因是它强大的数字 根据图形显示和统计分析功能,免费使用和更新以及大量可随时加载 性的软件包. 而SAS、Matlab、SPSS、EViews但都是收费软件,几乎和R功能相似 同的S-PLUS也是收费的. R高效代码,输出简单,帮助系统强大 统计教学辅助软件成为可能. 基于R开发的菜单驱动的图形界面工具R Commander和PMG(见附录B)使基础统计分析图像SPSS同样容易实现. 本书介绍了R的基本功能、常用的数据处理与分析方法及它们在R中的实 现. 全书分为十一章和三个附录: 第一章, R 介绍. 介绍了R软件的功能和安全性 装. 第二章, R基本原理和核心. 简要介绍了R软件的使用方法, 主 关注不同类型数据的操作和函数的使用. 第三章, 概率与分布. 介绍了 R中常用的四种离散连续分布和相关函数: 分布函数、概率函数、分位函数 随机数生存函数. 第四章, 探索性数据分析. 介绍了单组和多组数据 中特征量的提取方法和数据的图形显示方法. 第五章, 参数估计. 主要介绍了 点估计和区间估计,两个总体正态和两个分布参数. 第六章, 参数的假 设检验. 假设检验主要介绍了单一和两个整体正态和两个分布参数. 第七 章, 假设检查非参数. 主要介绍了几种常用的非参数检测方法. 第八章, 方 差分析. 多组数据比较的单因子和双因子方差分析和协方差分析主要介绍 方法. 第九章, 回归分析及相关分析. 介绍了随机变量之间关系的测量和回归 分析诊断方法. 第十章, 多元统计分析介绍. 介绍了多元分析中常用的主要用途 成分分析、因子分析、判别分析、聚类分析、典型相关分析及相应分析方法. 第十一章, 贝叶斯统计分析. 介绍了单参数和多参数模型的贝叶斯分析 分析层模型和回归模型. 最后是附录, 附录B介绍了基于R开发的基础 菜单工具统计分析R Commander和PMG, 附录C介绍了R的三个编程环境: R WinEdt、Tinn-R及SciViews-R. 所有程序都在R2.6.0版本上调试通 过, 原则上在其它版本上也可以运行. 这本书的特点是: 注重统计思想、实用性和可操作性. 我们设计内容 通过具体的统计知识,尽可能简化统计理论和方法的推导过程 解决问题的思想、方法和具体实现过程. 实现所有方法 都有相应的R函数调用格式,例子解释的R程序都嵌入在文本中,便便 读者举一反三,回答练习或分析其他类似的数据. 本书可作为各专业本科生、研究生数学统计或应用统计课程的基础教材 或实验教材,也可作为数据统计分析研究人员和工程技术人员的工具书或工具书 参考读物. 本书整个教材的教学安排可以按1:3的比例安排. 具体教 学习内容可根据需要选择,具体可参考下表的课时安排: 教学内容 选取章节 课时安排 R语言入门 第一章, 第二章, 附录B 12 探索性数据分析 第三章, 第四章 12 数据统计分析 第五章, 第六章, 第八章, 第九章 24 第七章 8 选讲内容 第十章 8 第十一章 8 在编写本书的过程中,参考了大量的资料和文献. 华东师范大学金融与统一 计划学院全体教师, 特别是毛诗松老师终身教授的支持. 我的学生魏晓玲参加了 本书第四和第五章初稿的编写工作,徐安察参与了本书第六和第七章初稿的编 写工作,于巧丽参与了本书第八和第九章初稿的编写工作,岳昳婕参与了本书 第十一章初稿的编写, 上海师范大学朱杰先生参与了本书第十章的编写 全书的工作和校对工作. 在整本书的编写过程中,高等教育出版社的领导和 研究生教育与学术着作分社王丽萍女士的关心和帮助, 一起提示感谢. 由于编辑水平有限,书中一定有不足甚至错误。欢迎读者不遗余力地纠正它们。. 作者 2008 年 5 月 IV 目录 目录 内容介绍 II 前言 I 第一章 R介绍 1 §1.1 S语言与R ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 §1.2 R的特点 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 §1.3 R的资源 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 §1.4 R安装与运行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.4.1 R软件的安装、启动和关闭 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.4.2 R安装和使用程序包 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 第一章习题 . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 第二章 R的基本原理与核心 8 §2.1 R的基本原理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 §2.2 R的在线帮助 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 §2.3 一个简短的R会话 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 §2.4 R的数据结构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.4.1 R的对象与属性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.4.2 浏览对象的信息 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 目录 V 2.4.3 向量的建立 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 2.4.4 数组与矩阵的建立. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 2.4.5 数据框(data frame)的建立 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 2.4.6 列表(list)的建立 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 2.4.7 时间序列(ts)的建立 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 §2.5 数据的存储与读取 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 2.5.1 数据的存储 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 2.5.2 数据的读取 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 §2.6 R 的图形功能. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 2.6.1 绘图函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 2.6.2 低级绘图命令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 2.6.3 绘图参数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 2.6.4 一个实例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 §2.7 R 编程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 2.7.1 循环和向量化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 2.7.2 用R写程序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 2.7.3 编写你自己的函数. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 2.7.4 养成良好的编程习惯 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 第二章习题 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 第三章 概率与分布 81 §3.1 随机抽样 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 §3.2 排列组合与概率的计算 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 §3.3 概率分布 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 3.3.1 离散分布的分布律. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 3.3.2 连续分布的密度函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 VI 目录 §3.4 R中内嵌的分布 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 §3.5 应用: 中心极限定理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 3.5.1 中心极限定理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 3.5.2 渐近正态性的图形检验 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 3.5.3 举例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 第三章习题 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 第四章 探索性数据分析 101 §4.1 常用分布的概率函数图 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 §4.2 直方图与密度函数的估计 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 4.2.1 直方图 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 4.2.2 核密度估计 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 §4.3 单组数据的描述性统计分析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 4.3.1 单组数据的图形描述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 4.3.2 单组数据的描述性统计 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 §4.4 多组数据的描述性统计分析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 4.4.1 两组数据的图形概括 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 4.4.2 多组数据的图形描述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 4.4.3 多组数据的描述性统计 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 4.4.4 分组数据的图形概括 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 §4.5 分类数据的描述性统计分析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 4.5.1 列联表的制作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 4.5.2 列联表的图形描述. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 第四章习题 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 第五章 参数估计 150 §5.1 矩法估计和极大似然估计 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 目录 VII 5.1.1 矩法估计 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 5.1.2 极大似然估计 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 §5.2 单正态总体参数的区间估计 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 5.2.1 均值µ的区间估计. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 5.2.2 方差σ2的区间估计 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 §5.3 两正态总体参数的区间估计 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 5.3.1 均值差µ1 µ2的置信区间 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 5.3.2 两方差比σ21{σ22的置信区间 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 §5.4 单总体比率p的区间估计 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 §5.5 两总体比率差p1 p2的区间估计. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 §5.6 样本容量的确定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 5.6.1 估计正态总体均值时样本容量的确定 . . . . . . . . . . . . . . . . . . . . . . . . 173 5.6.2 估计比例p时样本容量的确定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 第四章习题 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 第六章 参数的假设检验 179 §6.1 假设检验与检验的p值 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 6.1.1 假设检验的概念与步骤 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 6.1.2 检验的p值 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 §6.2 单正态总体参数的检验 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 6.2.1 均值µ的假设检验. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 6.2.2 方差σ2的检验: χ2检验. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186 §6.3 两正态总体参数的检验 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 6.3.1 均值的比较: t检验 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 6.3.2 方差的比较: F检验 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 §6.4 成对数据的t检验 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 VIII 目录 §6.5 单样本比率的检验 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 6.5.1 比率p的精确检验 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 6.5.2 比率p的近似检验 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 §6.6 两样本比率的检验 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 第六章习题 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 第七章 非参数的假设检验 200 §7.1 单总体位置参数的检验 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200 7.1.1 中位数的符号检验. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201 7.1.2 Wilcoxon符号秩检验. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203 §7.2 分布的一致性检验:χ2检验 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 §7.3 两总体的比较与检验. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 7.3.1 χ2独立性检验 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 7.3.2 Fisher精确检验 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 7.3.3 Wilcoxon秩和检验法和Mann-Whitney U检验 . . . . . . . . . . . . . 213 7.3.4 Mood检验 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 §7.4 多总体的比较与检验. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218 7.4.1 位置参数的Kruskal-Wallis秩和检验 . . . . . . . . . . . . . . . . . . . . . . . 218 7.4.2 尺度参数的Ansari-Bradley检验 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220 7.4.3 尺度参数的Fligner-Killeen检验 . . . . . . . . . . . . . . . . . . . . . . . . . . . 221 第七章习题 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223 第八章 方差分析 226 §8.1 单因子方差分析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 8.1.1 数学模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 8.1.2 均值的多重比较 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 8.1.3 同时置信区间: Tukey法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 目录 IX 8.1.4 方差齐性检验 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236 §8.2 双因子方差分析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 8.2.1 无交互作用的方差分析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 8.2.2 有交互作用的方差分析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 §8.3 协方差分析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248 第八章习题 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254 第九章 回归分析与相关分析 260 §9.1 相关性及其度量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260 9.1.1 相关性概念 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260 9.1.2 相关分析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261 §9.2 一元线性回归分析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264 9.2.1 数学模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264 9.2.2 估计与检验 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266 9.2.3 预测与控制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270 9.2.4 计算例子 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272 §9.3 多元线性回归分析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275 9.3.1 数学模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276 9.3.2 估计与检验 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276 9.3.3 预测与控制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280 9.3.4 计算例子 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281 §9.4 回归诊断 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285 9.4.1 残差分析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286 9.4.2 影响分析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294 9.4.3 共线性诊断 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298 §9.5 Logistic回归 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301 X 目录 第九章习题 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309 第十章 多元统计分析介绍 315 §10.1 主成分分析与因子分析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315 10.1.1 主成分的简要定义与计算 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316 10.1.2 主成分R通用程序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317 10.1.3 因子分析的简要定义与计算. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320 10.1.4 因子分析R通用程序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322 §10.2 判别分析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325 10.2.1 距离判别 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325 10.2.2 Fisher判别法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327 10.2.3 R通用程序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328 §10.3 聚类分析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332 10.3.1 基本思想 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333 10.3.2 R通用程序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334 §10.4 典型相关分析. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338 10.4.1 基本思想 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338 10.4.2 R通用程序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340 §10.5 对应分析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343 10.5.1 基本思想 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343 10.5.2 R通用程序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345 第十章习题 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348 第十一章 贝叶斯统计分析 364 §11.1 贝叶斯统计分析与经典统计分析的比较 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364 11.1.1 经典统计分析中存在的问题. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364 11.1.2 对贝叶斯统计分析的质疑及褒奖 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365 目录 XI §11.2 贝叶斯统计分析与先验分布的选取 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366 11.2.1 贝叶斯公式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367 11.2.2 先验分布的选取 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369 11.2.3 贝叶斯分析体现了科学探索过程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371 §11.3 单参数贝叶斯统计分析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372 11.3.1 两项分布下的贝叶斯推断 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372 11.3.2 正态分布下的贝叶斯统计推断 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383 §11.4 多参数贝叶斯统计分析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388 11.4.1 方法概述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388 11.4.2 正态分布参数中的贝叶斯分析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388 11.4.3 随机模拟方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389 11.4.4 一个实例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390 §11.5 分层贝叶斯统计分析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395 11.5.1 分层模型的建立及其贝叶斯推断 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397 11.5.2 N-N模型与应用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400 §11.6 贝叶斯线性回归分析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408 11.6.1 模型的表示 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408 11.6.2 后验分布 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410 11.6.3 回归拟合 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411 11.6.4 后验预测 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411 第十一章习题 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416 附录 A 秩与结的介绍 418 附录 B R的图形界面 420 §B.1 R Commander ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 420 B.1.1 功能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 420 XII 目录 B.1.2 (网络)安装 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 420 B.1.3 运行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421 B.1.4 结构与使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421 §B.2 PMG ..... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422 B.2.1 功能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422 B.2.2 安装 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423 B.2.3 结构与使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424 附录 C R的编程环境 426 §C.1 R WinEdt ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 426 C.1.1 (网络)安装 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 426 C.1.2 运行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 426 C.1.3 R WinEdt的特点 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 427 C.1.4 R WinEdt的菜单与热键. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 428 §C.2 Tinn-R .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 428 §C.3 SciViews R .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 429 参考文献 431 第一章 R介绍 本章概要 ♦ R的功能与特点 ♦ R的安装与运行 ♦ R程序包的安装与运行 §1.1 S语言与R R是一个有着强大统计分析及作图功能的软件系统,在GNU协议General Public Licence下免费发行, 最先是由Ross Ihaka和Robert Gentleman共同 创立, 现在由R开发核心小组(R Development Core Team)维护, 他们完全自 愿、工作努力负责,并将全球优秀的统计应用软件打包提供给我们共享. R可以看作是贝尔实验室(Bell Laboratories)的Rick Becker, John Chambers和Allan Wilks开发的S语言的一种实现或形式. 因此, R是一种 软件也可以说是一种语言. S语言现在主要内含在由Insightful公司经营的S- PLUS软件中. 我们可以将R和S-PLUS 视为S语言的两种形式, S/S-PLUS方面 的文档都可以直接用于R, 不过R和S在设计理念上存在着许多不同, 关于 这方面的详细内容大家可以参考Ihaka & Gentleman (1996) 或随R同时发布 的R-FAQ[16]. 本书今后主要使用R, 有时也使用R软件、R语言或R系统来称呼 这种形式的S语言. 2 第一章 R介绍 §1.2 R的特点 现在越来越多的人开始接触、学习和使用R, 因为它有其显著的优点, 主 要包括: 1) 免费: 尽管S-PLUS是非常优秀的统计分析软件,但你需要支付一笔费用, 而R是一个免费的统计分析软件(环境); 2) 浮点运算功能强大: R可以作为一台高级科学计算器, 因为R同Matlab一 样不需要编译就可执行代码; 3) 不依赖于操作系统: R可以在运行于UNIX, Linux, Windows 和Macintosh 的操作系统上, 它们的安装文件以及安装说明都可以在CRAN (Comprehensive R Archive Network) 社区上下载; 4) 帮助功能完善: R嵌入了一个非常实用的帮助系统—随软件所附 的pdf或html帮助文件可以随时通过主菜单打开浏览或打印. 通过help命 令可随时了解R所提供的各类函数的使用方法和例子; 5) 作图功能强大: 其内嵌的作图函数能将产生的图片展示在一个独立的窗 口中,并能将之保存为各种形式的文件(例如jpg, png, bmp, ps, pdf, emf, pictex, xfig); 6) 统计分析能力尤为突出: R内嵌了许多实用的统计分析函数, 统计分析的 结果也能被直接显示出来, 一些中间结果(如p-值、回归系数、残差等) 既 可保存到专门的文件中, 也可以直接用于进一步的分析. R的部分统计功能整合在R语言的底层,但是大多数功能则以包的形式 提供. 大约有25个包和R同时发布(被称为“标准”和“推荐”包),更多的 包可以通过网上或其CRAN 社区(http://CRAN.R-project.org) 得到, 它们 都配有完整的pdf帮助文件, 且其版本会随R新版本的发行得到更新, 通 过在线(或下载后)安装并加裁后就可融入原来的R中, 实现有针对性的分 析; 7) 可移植性强: ˆ R程序容易地移植到S-PLUS程序中; 反之S-PLUS的许多过程直接或 稍作修改可用于R; ˆ R与Matlab有许多相似的地方, 如都可作为高级计算器, 都可不经 过编译直接运行源代码, 但是R侧重于统计分析, 而Matlab侧重于 工程, 例如信号处理. 现在通过R.Matlab程序包可实现两者之间许 多功能的共享, 具体见程序的说明. 1.3 R的资源 3 ˆ 许多常用的统计分析软件(如SPSS, SAS, Stata及EExcel)的数据文 件都可读入R, 这样其它软件的数据或分析的中间结果可用于R, 并 作出进一步的分析. 8) 较强大的拓展与开发能力: R是开发新的交互式数据分析方法一个非常 好的工具. 例如附录A介绍的R Commander就是一个非常成功的例子. 我 们可以编制自己的函数来扩展现有的R语言, 或制作相对独立的统计分 析包. 9) 灵活而不死板: 一般的软件往往会直接展示分析的结果,而R则将这些结 果都存放在一个对象(object)里,所以常常在分析执行结束后并不显示 任何结果. 使用者(特别是初学者或非专业人员)可能会对此感到困惑,其 实这样的特点是非常有用的,因为我们可以有选择地显示我们感兴趣的 结果. 而有的软件(如SAS和SPSS)会同时显示几个窗口,内容太多会使使 用者无从选择和解释. §1.3 R的资源 R的核心开发与维护小组通过R的主页,即R工程(R Project)网 站(http://www.r-project.org)及时发布有关信息, 包括R的简介、R的更新及 宏包信息、R常用手册、已经出版的关于R的图书、R通讯和会议信息等. 你还 可通过该主页预订邮件,通过电子邮件发出求助或提供帮助. R的CRAN社区是我们获得软件(及源代码)和资源的主要场所, 通过它或其 镜像站点我们可以下载最新版本及大量的统计程序包(packages). 本书将使用Windows(95及以后)操作系统上的R,其它操作系统上R的使 用方法请参考R相关说明. 除R自带的运行平台R-GUI(R Graphic User’s In- terface)外, 本书附录A还提供了Windows下几个R的运行平台, R-Commander, R-WinEdt, R-Sciview和R-Tinn. §1.4 R的安装与运行 1.4.1 R软件的安装、启动与关闭 R的安装: 从CRAN社区下载最新的封装好的R安装程序到本地计算机,运 行可执行的安装文件, 通常缺省的安装目录为C:\Program Files\R\R-x.x.x, 4 第一章 R介绍 其中x.x.x为版本号. 安装时可以改变目录,从2.2.0以后还可以选择中文作为基 本语言,这样RGui窗口的菜单都是中文的. R的启动: 安装完成后点击桌面上R x.x.x快击图标就可启动R的交互式用 户窗口(R-GUI). R是按照问答的方式运行的, 也即你在命令提示符“>”后键 入命令并回车, R就完成一些操作. 例如输入命令 > plot(rnorm(1000)) 就可得到图1.1, 此命令的具体含义我们将在后面第二章叙述. 图 1.1 R的启动 R的退出: 在命令行键入q( )或点击R-GUI右上角的叉叉. 退出时可选择 保存工作空间, 缺省文件名为R安装目录的bin子目录下的R.RData. 以后可以 通过命令load( )或通过菜单“文件”下的“载入工作空间”加载,进而继续你 前一次的工作. 1.4.2 R程序包的安装与使用 R程序包的安装有三种方式: 1) 菜单方式: 在已经联网的条件下, 按步骤“程序包ñ安装程序包...ñ选 择CRAN镜像服务器ñ选定程序包”进行实时安装; 1.4 R的安装与运行 5 2) 命令方式: 在已经联网的条件下, 在命令提示符后键入 > install.packages("PKname") 完成程序包PKname的安装. 3) 本地安装: 在无上网条件下,先从CRAN社区下载需要的程序包及与之关 联的程序包, 再按第一种方式通过“程序包”菜单中的“用本机的zip文件 安装程序包”选定本机上的程序包(zip文件)进行安装. 除R的标准程序包(如base包)外,新安装的程序包在使用前必须先载入, 有两种载入方式: 1) 菜单方式: 按步骤“程序包ñ载入程序包...”, 再从已有的程序包中选定 需要的一个加载; 2) 命令方式: 在命令提示符后键入 > library(“PKname”) 来加载程序包PKname. 若有必要,我们还可通过步骤“程序包ñ更新程序包...”对本机的程序包 进行实时更新. 注意: R命令对大小写敏感, 这在使用命令方式安装和载入程序包时应特别注 意. 6 第一章 R介绍 第一章习题 1.1 R与你学过的统计软件, 如SPSS, SAS, Matlab有何区别, 其主要的特点 有哪些? 1.2 到CRAN社区(http://cran.r-project.org/)下载并安装R的最新(中 文)版本, 并尝试R的启动与退化. 1.3 R可以作为一台很方便的计算器. 任取二个非零实数, 试用R完成它们 的加、减、乘、除、乘方、开方、指数、对数等运算. 1.4 John Fox基于R开发了一套进行基础统计分析的菜单驱动的分析系统, 称为R Commander. 附录A介绍了一种菜单式的安装方法. 另一种是采用命令 方式进行安装与加载, 其步骤为: 1) 用命令 > install.packages("Rcmdr") 来安装程序包Rcmdr(需要等待几分种); 2) 再用命令 > load("Rcmdr") 加载程序包Rcmdr. R Commander的结构与使用方法参见附录A的说明. 1.5 animation是由谢益辉建立的概率统计动态演示程序包, 请用命令或菜 单的方法安装并加载animation, 并尝试下面的二个例子: ˆ 蒲丰投针试验: > buffon.needle(nmax = 500, interval = 0) ˆ 中心极限定理: > f = function(n) rchisq(n, 5) > clt.ani(FUN = f) 具体使用方法参见程序包中的pdf说明文件. 1.4 R的安装与运行 7 1.6 登 录R的 社 区 主 页http://cran.r-project.org/, 并 进 入 左 侧Software下的Packages, 浏览并感受R所提供的资源(程序包). 选择其中 感兴趣的进行安装与试用, 例如概率统计教学演示程序包TeachingDemos和其 在R Commander下的插件RcmdrPlugin.TeachingDemos. 第二章 R的基本原理与核心 本章概要 ♦ R的基本原理 ♦ R的求助方法 ♦ R的主要数据结构 ♦ R的图形功能 ♦ R的编程方法 §2.1 R的基本原理 如第一章所述, 如果R已经安装在你的计算机中, 它就能立即运行一些可 执行的命令了. R默认的命令提示符是‘¡’,它表示正在等待输入命令. 如果 一个语句在一行中输不完, 按回车键, 系统会自动产生一个续行符“+”, 语句 或命令输完后系统又会回到命令提示符. 在同一行中输入多个命令语句, 则需 要使用分号来隔开. 在Windows系统中, 能直接运行下拉菜单中的一些操作命 令(如在线帮助,打开文件等,见图1.1). 在学习一些R的命令之前,让我们先了 解R的基本工作原理. 首先, 同Matlab一样, R是一种编程语言, 但我们没有必要对此感到害怕, 因为R是一种解释性语言,而不是编译语言, 也就意味着输入的命令能够直接 被执行, 而不需要像其它语言(如C和FORTAN)需要编译和连接等操作. 其次, R的语法非常简单和直观. 例如,线性回归的命令lm(yx)表示 以x为自变量,y为响应变量来拟合一个线性模型. 合法的R函数总是带有圆括 号的形式,即使括号内没有内容(如ls( )). 如果直接输入函数名而不输入圆 2.1 R的基本原理 9 括号, R则会自动显示该函数的一些具体内容. 因此在R中所有的函数后都带 有圆括号以区别于对象(object). 当R运行时,所有变量、数据、函数及结果都 以对象的形式存入计算机的活动内存中,并冠有相应的名字代号. 我们可以通 过一些运算(如算术、逻辑、比较等)和一些函数(其本身也是对象)来对这些对 象进行操作. 运行一个R函数可能不需要设定任何参量,原因是所有的参量都可以被默 认为缺省值,当然也有可能该函数本身就不含任何参量. 再次, 在R中进行的所有操作都是针对存储在活动内存中的对象的. 数据、 结果或图表的输入与输出都是通过对计算机硬盘中的文件读写而实现. 用户 通过输入一些命令调用函数,分析得出的结果可以被直接显示在屏幕上,也可 以存入某个对象或被写入硬盘(如图片对象). 因为产生的结果本身就是一种对 象,所以它们也能被视为数据并能像一般数据那样被处理分析. 数据文件即可 从本地磁盘读取也可通过网络传输从远程服务器端获得. 最后, 所有能使用的R函数都被包含在一个库(library) 中, 该库存 放在R安装文件夹的library目录下. 这个目录下含有具有各种功能的 包(packages),各个包也是按照目录的方式组织起来的. 其中名为base的 包是R的核心,因为它内嵌了R语言中所有像数据读写与操作这些最基本的函 数. 在上述目录中的每个包内,都有一个子目录R,这个目录里又都含有一个 与此包同名的文件, 该文件正是存放所有函数的地方. R语言中最简单的命令莫过于通过输入一个对象的名字来显示其内容了. 例如,一个名为n的对象,其内容是数值10: > n [1] 10 方括号中的数字1表示从n的第一个元素开始显示. 其实该命令的功能在这里 与函数print( )相似,输出结果与print(n) 相同. 对象的名字必须是以一个 字母开头(A-Z 或a-z), 中间可以包含字母、数字(0–9)、点(.)及下划线( ). 因 为R对对象的名字区分大小写,所以x和X就可以代表两个完全不同的对象. 一个对象可以通过赋值操作来产生,R语言中的赋值符号一般是由一个尖 括号与一个负号组成的箭头形标志, 该符号可以是从左到右的方向,也可以相 反. 赋值也可以用函数assign( )实现, 还可以用等号“=”, 但它们很少使用. 例如 10 第二章 R的基本原理与核心 > n <- 10 > n [1] 10 > 10 -> n > n [1] 10 > assign("n", 10) > n [1] 10 > n=10 > n [1] 10 当然你也可以只是输入函数或表达式而不把它的结果赋给某个对象(如果这样 在窗口中展示的结果将不会被保存到内存中), 这时我们就可将R作为一个计 算器使用. 下面的例子说明了R中的算术运算符(加、减、乘、除、乘方、开方、 指数)的使用方法. > ((10 + 2) * 5-2^4)/4 [1] 13 > sqrt(3)+exp(-2) [1] 1.867386 更为常用的是常量、向量、矩阵、数组等其它对象的赋值与运算, 我们将在后 面讲述. 所有的高级语言都有注释语句, R中使用井号(#)表示注释的开始. §2.2 R的在线帮助 学习一门编程语言离不开语句、函数和编程的语法和语义,R中的程序包 都是由大量的进行统计分析的函数,它们的含义和使用方法对于熟练使用R进 行数据分析是至关重要的. 在此我们将R的帮助分成两类: 1) 关于R的基本知识: 通过命令 2.2 R的在线帮助 11 > help.start( ) 或R用户界面上的“帮助”菜单的“html帮助”得到. i. R的常见问题(FAQ): 系统提供了二个版本,其一为“R FAQ”,其二 为“R for Windows FAQ”, 它们随R的新版本同时发布与更新,内 容包括R的特点、安装、使用、界面、编程规则等. ii. R帮助手册,也随新版本发布与更新,共有6本手册: An Introduction to R, R Reference Manual, R Data input/output, R Language Def- inition, Writing R Extensions, R Installation and Administration. “帮助”菜单提供了它们的PDF电子版本, 便于打印. 初学者可看一 下其中的第一本. 2) 关于R中的函数或关键字符: i. 命令 > help(fun) 或 > ?fun 会立即显示名为“fun”函数的帮助页面, 而命令 > help("char") 则会显示某个具有特殊语法意义字符“char”的帮助页面. 页面的 第一行一般会显示此函数或字符的所属的程序包(package),然后是 标题,标题下面则是一些详细信息: Description: brief description. Usage: for a function, gives the name with all its arguments and the possible options (with the corresponding default values); for an operator gives the typical use. Arguments: for a function, details each of its arguments. Details: detailed description. Value: if applicable, the type of object returned by the function or the operator. See Also: other help pages close or similar to the present one. Examples: some examples which can generally be executed with- out opening the help with the function example. 12 第二章 R的基本原理与核心 默认状态下,函数help( )只会在被载入内存的程序包中搜索. 选 项try.all.package 在缺省值是FALSE, 但如果把它设为TRUE,则可 在所有已安装的程序包中进行搜索. 如果读者确实想打开这样的页 面而所属程序包又没有被载入内存时,可以使用package这个选项. 请读者试试下面的两个命令. > help("bs",try.all.packages=TRUE) > help("bs",package = "splines") ii. 命令 > apropos(fun) 或 > apropos("fun") 找出所有在名字中含有指定字符串“fun”的函数,但只会在被载入 内存中的程序包中进行搜索. 注意:如果“fun”不是完整的函数名, 则前者会出错; iii. 命令 > help.search("char") 列出所有在帮助页面含有字符“char”的函数, 它的搜索范围 比apropos("fun")更广; iv. 命令 > find(fun) 或 > find("fun") 得到名为“fun”函数所在的程序包; v. 命令 > args(fun) 或 > args("fun") 得到名为“fun”函数的自变量列表. 2.3 一个简短的R会话 13 对初学者而言,帮助中例子(Examples)部分的信息是很有用的. 而仔细阅读自 变量(Arguments)中的一些说明也是非常有必要的. 帮助中还包含了其它一些 说明部分,如注释(Notes), 参考文献(References)或作者(Author(s))等. §2.3 一个简短的R会话 下面通过一个具体的例子来说明如何利用R软件进行数据的统计分析, 此例使用R内嵌的数据集mtcars. 它在datasets(数据)包中, 此包像base一样 随R的启动自动加载. 数据的描述 命令 > ?mtcars 显示为 mtcars package:datasets R Documentation ?mtcars的结果 Motor Trend Car Road Tests Description: The data was extracted from the 1974 _Motor Trend_ US magazine, and comprises fuel consumption and 10 aspects of automobile design and performance for 32 automobiles (1973-74 models). Usage: mtcars Format: A data frame with 32 observations on 11 variables. [, 1] mpg Miles/(US) gallon [, 2] cyl Number of cylinders [, 3] disp Displacement (cu.in.) [, 4] hp Gross horsepower [, 5] drat Rear axle ratio 14 第二章 R的基本原理与核心 [, 6] wt Weight (lb/1000) [, 7] qsec 1/4 mile time [, 8] vs V/S [, 9] am Transmission (0 = automatic, 1 = manual) [,10] gear Number of forward gears [,11] carb Number of carburetors 它告诉我们数据集metars的基本信息. 它是美国Motor Trend收集 的1973到1974年期间总共32辆汽车的11个指标: 油耗及10个与设计及性能 方面的指标. 数据的浏览与编辑 1) 数据的浏览 ˆ 命令 > mtcars 可以显示数据集mtcars中全部的32个观测值. ˆ 命令 > head(mtcars) 仅显示数据集mtcars中前7个观测值. ˆ 命令 > names(mtcars) 仅显示数据集mtcars中的变量, 在此为11个指标. 2) 数据的编辑 数据的编辑主要有两种方式(函数): ˆ 命令 > data.entry(mtcars) 通过R的数据编辑器打开数据集mtcars, 除了浏览数据集外,这里 我们还可以对变量及其观测值进行修改. ˆ 命令 > MTcars <- edit(mtcars) 同样启动R的数据编辑器, 在此可对原来的数据集mtcars进行编辑, 完成后将生成的新的数据集赋给MTcars, 而原来的数据集保持不变. 如果你要修改原来的数据集,使命令edit( )前后的数据集同名即 可. 因此命令edit(mtcars) 将无法完成对数据的修改. 命令 2.3 一个简短的R会话 15 > xnew <- edit(data.frame( )) 可以编辑生成新的数据集xnew. 另外, 对于一维的数据, edit( )打 开的是R Editor. 试比较下面的例子中两个命令的区别 > x <- c(10.4, 5.6, 3.1, 6.4, 21.7) > x [1] 10.4 5.6 3.1 6.4 21.7 > data.entry(x) > edit(x) ˆ 命令 > fix(mtcars) 可以完成数据集mtcars的直接修改. 因此它等价于命令 > mtcars <- edit(mtcars) 注意: 1) 使用上面的三个命令将挂起R的对话窗口(R Console), 关闭编辑器即可 继续进行R的对话. 2) 我们这里说的数据集就是下面一小节要讲的数据框(data frame). 数据对 象中除了上面已经出现的向量和数据框外,下面一节还要讲矩阵、数组、 和列表. 命令data.entry( )和edit( )都可用于编辑向量、矩阵、数据 框和列表,前者启用的都是R的数据编辑器, 后者有所不同: 对于向量、 列表和数组edit( )启用的是R Editor. 3) 尽管我们在R中可以浏览与编辑数据集mtcars, 但它们还无法对此数据 集进行操作(分析), 例如命令 > mpg 无法看到变量mpg(每加仑公里数)的具体数值. 这时我们需要激活或挂 接(attach)数据集mtcars. 命令 > attach(mtcars) 就激活mtcars, 使之成为当前的数据集. 这时通过命令 > mpg 就可浏览变量mpg的32个值,其它分析我们将在后面进行. 16 第二章 R的基本原理与核心 属性数据的分析 变量cyl(汽缸数)为属性变量, 命令 > table(cyl) 告诉我们变量cyl取3个值:4,6,8,相应的频数为11, 7, 14. 而命令 > barplot(table(cyl)) 显示了cyl的频数直方图. 要注意的是, 命令 > barplot(cyl) 在此不适用, 它仅适用于数值型变量. 数值型数据的分析 统计分析中主要涉及数值型数据. 对此我们可考查它们的图形特征及常用 的特征量. ˆ 画茎叶图(stem-and-leaf plot), 命令为 > stem(mpg). ˆ 画直方图, 命令为 > hist(mpg). ˆ 画框须图(stem-and-leaf plot), 命令为 > boxplot(mpg). ˆ 计算平均值, 命令为 > mean(mpg). ˆ 计算截去10%的平均值, 命令为 > mean(mpg, trim = .1). ˆ 按分组变量cyl计算mpg的分组平均值, 命令为 > tapply(mpg,cyl,mean) ˆ 计算cyl为4的那些mpg的平均值, 命令为 > mean(mpg[cyl == 4]). 2.3 一个简短的R会话 17 ˆ 计算四分位数的极差(interquartile range), 命令为 > IQR(mpg). ˆ 计算样本常用的分位数: 极小、极大、中位数及两个四分位数, 命令为 > quantile(mpg) 或者 > fivenum(mpg) ˆ 计算由向量prob给定的各概率处的样本分位数, 命令为 > quantile(mpg, probs) 例如probs = c(0.1, 0.5, 99.5)/100. 可见, quantile( )比fivenum( )更 为一般. ˆ 计算常用的描述性统计量, 它们分别是最小值(Min.)、第一四分位数(1st Qu.)、中位数(Median)、平均值(Mean)、第三分位数(3rd Qu.)和最大 值(Max.), 命令为 > summary(mpg). ˆ 计算标准差, 命令为 > sd(mpg). ˆ 计算中位绝对离差(median absolute deviation), 命令为 > mad(mpg). 寻找二元关系 ˆ 画二维散点图, 例如cyl与mpg的散点图, 可通过下面的命令得到. > plot(cyl,mpg) 注意: 相仿命令 plot(hp,mpg) 可得到hp与mpg的散点图. 但32个点对应了不同的汽缸, 因此按cly为图 例作出散点图更清晰, 命令为 > plot(hp,mpg,pch=cyl) > legend(250,30,pch=c(4,6,8), > legend=c("4 cylinders","6 cylinders","8 cylinders")) 18 第二章 R的基本原理与核心 ˆ 拟合线性回归, 例如命令 > z <- lm(cyl ~ mpg) 可以得到 Call: lm(formula = cyl ~ mpg) Coefficients: (Intercept) mpg 11.2607 -0.2525 线性回归的截距为11.2607, 斜率为-0.2525. ˆ 相关系数(或R2)考查回归拟合好坏的程度. 命令 > cor(cyl,mpg) 可以得到相关系数(Pearson correlation coefficient)R, 其平方 > cor(cyl,mpg)^2 得到R2为0.72618, 表明数据变化的72.6%可以用汽缸数(cyl)与每加仑的 英里数(mpg)来刻划. ˆ 残差分析: > lm.res <- lm(cyl ~ mpg) # 将回归分析的结果作为对象 # 保存到lm.res中 > lm.resids <- resid(lm.res) # 提取残差向量 > plot(lm.resids) # 考查残差的散点图 > hist(lm.resids) # 考查残差

标签: yx3600电阻仪电阻18240600电阻尺电阻1776

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台