R语言,一种自由软件编程语言与操作环境,主要用于统计分析、绘图、数据挖掘. 虽然 R是一款统计软件,但也可用于数值分析和矩阵计算. 本书是 R语言的一本入门教材,讲授学习 R必备的内容. 仅使用最基本的统计知识,介绍 R函数的使用方法,以及如何使用 R的内置函数去解决统计中的问题. 介绍 R中与数值分析相关的内容,并利用相应算法来学习 R语言的编程. 介绍 R的绘图功能,及相关的绘图函数. 本书的每一章是针对一类问题设计的,讨论的内容由浅入深、循序渐进. 并在最后一章介绍扩展 R的方法,读者可以根据自己的需求扩展 R的相关功能.
本书适合于理工、经管和生物等专业的本科生、研究生,或者相关专业的技术人员学习 R使用,可以作为“统计计算”课程的教材或教学参考书,也可作为数学建模竞赛培训的辅导教材.
《统计建模与 R软件》一书出版 (2007年 4月出版 )已有 7个年头 ,当初编写此书的主要目的是希望学生在数学建模竞赛中 ,使用 R软件解决他们可能遇到的统计问题 .随着 R软件在中国的普及与发展 ,此书有幸成为 R语言初学者的入门教材 1 .因此 ,当有人向我建议,专门编写一本 R语言的入门教材时,本人欣然同意,并着手这方面的工作.
真正开始编写教材后 ,遇到的困难超出我的想象 .首先 ,R语言涵盖的内容非常广泛 ,而且国内近年来已出版了大量与 R语言有关的书籍 ,哪些内容是初学者必备的知识 ?其次 ,如何处理本书与前一本书的关系 ,哪些内容需要保留 ,哪些知识又需要补充 ?再次 ,统计知识介绍到什么程度 ?R语言是进行统计分析的工具 ,如果本书 “只是讲解 R”,是不可能做到的 .
R语言是一种自由软件编程语言与操作环境 ,主要用于统计分析、绘图、数据挖掘 .R本来是由新西兰奥克兰大学的 Ross Ihaka和 Robert Gentleman开发(也因此称为 R),现在由 “R开发核心团队 ”负责开发 .虽然 R是主要用于统计分析的软件 ,但也有人用作矩阵计算,其分析速度可媲美专用于矩阵计算的自由软件 GNU Octave和商业软件 MATLAB2 .
本书是 R语言的一本入门教材 ,它包括 R软件下载与安装、程序包的载入和基本的 R命令 ,这些都是学习 R所必备的内容 .为了避免同时讲授统计知识和 R语言可能产生的困难,本书假定读者对相关的统计知识有了一定的了解 .书中只是结合最基本的统计知识 ,介绍相关函数的使用方法 ,以及如何使用内置函数去解决统计中的问题 ,相关统计知识的介绍是为了更好地理解函数中相应参数的意义.
虽然 R是一款统计软件 ,但它也涉及数值分析的相关内容 ,而且这些内容是统计计算中不可缺少的内容 .因此 ,本书用一章的篇幅对数值分析的部分内容作了简要的介绍 .介绍它们的另一个目的是学习 R语言的编程 ,R与其他计算机语言一样 ,是可以进行编程的 .学会编程可以扩展 R的使用范围 ,这也是使用 R进行科学研究必备的条件 .R的另一个强大的功能是绘图 ,本书也用一章的篇幅系统地介绍了 R语言的绘图函数 ,以及绘图参数的设置.
本书的每一章 ,基本上是针对一类 (统计 )问题设计的 ,讨论的内容由浅入深、循序渐进.完成一章的学习后 ,基本上能完成相关内容的计算与分析 .虽然是一本入门教材 ,但了解 R的扩展功能还是必不可少的 ,本书以多元分布为例 ,介绍扩展包的下载与安装、扩展函数的使用,为读者学会下载和使用与自己学习和工作相关的扩展函数打下基础.
本书的主要内容 :第 1章,R语言入门 .主要介绍 R的基本使用方法 ,如 R的下载与安装;向量、矩阵、数组、列表、数据框等对象的特点 ,以及数据的读写、控制流和相应程序设计.第 2章,数值计算 .主要介绍与数值分析相关的部分内容 ,如非线性方程组求解、函数求极值、数据拟合与数值积分等 .第 3章,R语言绘图 .主要介绍 R中的绘图函数 ,如高、低水平绘图函数 ,以及绘图参数的设置 .第 4章,概率、分布与随机模拟 .主要介绍 R中重要分 布函数的计算 ,以及随机抽样与随机模拟的方法 .第 5章,假设检验 .主要介绍重要的参数检验 ,如 t检验、 F检验和重要的非参数检验 ,如秩检验、分布检验、列联表检验 .第 6章,回归分析 .主要介绍各种回归方法 ,如线性回归、稳健回归、非线性回归和广义线性回归 .第 7章,多元统计分析 .介绍各种多元分析方法 ,如方差分析、判别分析、聚类分析、主成分分析、因子分析和典型相关分析 .第 8章,多元分布 .主要介绍多元正态分布函数和相应的检验方法 ,如均值向量的检验 ,以及相关程序包的下载 ,这部分内容是需要下载扩展程序包才能完成的.
本书所介绍的 R函数均以 R-2.15.2版本 1为基准 ,所有函数 (包括自编函数 )均通过测试,读者如果需要书中例题的相关程序 ,以及例题和部分习题的数据文件 ,可以发送电子邮件向作者索取,邮件地址:xueyi@bjut.edu.cn.
本书是一本 R语言入门教材 ,适合于理工、经济、管理、生物等专业的本科生、研究生 ,或者相关专业的技术人员学习 R软件使用 ,可以作为 “统计计算 ”课程的教材或教学参考书,也可作为数学建模竞赛培训的辅导教材.
由于受编者水平所限 ,书中一定存在不足甚至错误之处 ,欢迎读者不吝指正 ,作者的电子邮件地址是: xueyi@bjut.edu.cn (薛毅); chenliping@bjut.edu.cn (陈立萍).
编者
2014年 3月于北京工业大学
第1章R语言入门
1.1R语言简介
1.1.1R软件的下载与安装
1.1.2初识R
1.1.3下拉式菜单与快捷方式
1.2向量
1.2.1基本运算
1.2.2数据对象
1.2.3向量赋值
1.2.4产生有规律的向量
1.2.5逻辑向量
1.2.6向量中的缺失数据
1.2.7字符型向量
1.2.8用vector函数生成向量
1.2.9复数向量
1.2.10向量的下标运算
1.2.11与数值向量有关的函数
1.3因子
1.3.1factor函数
1.3.2gl函数
1.3.3与因子有关的函数
1.4矩阵..
1.4.1矩阵的生成
1.4.2与矩阵运算有关的函数
1.4.3矩阵下标
1.5数组..
1.5.1数组的生成
1.5.2数组下标
1.5.3apply函数
1.6对象和它的模式与属性
1.6.1固有属性:mode和length
1.6.2修改对象的长度
1.6.3attributes和attr函数
1.6.4对象的class属性
1.7列表
1.7.1列表的构造
1.7.2列表的修改
1.7.3返回值为列表的函数
1.8数据框
1.8.1数据框的生成
1.8.2数据框的引用
1.8.3attach函数
1.8.4with函数
1.8.5列表与数据框的编辑
1.8.6lapply函数和sapply函数
1.9读、写数据文件
1.9.1读纯文本文件
1.9.2读取其他软件格式的数据文件
1.9.3读取Excel表格数据
1.9.4数据集的读取
1.9.5写数据文件
1.10控制流
1.10.1分支函数
1.10.2中止语句与空语句
1.10.3循环函数
1.11R程序设计
1.11.1函数定义
1.11.2定义新的二元运算
1.11.3有名参数与默认参数
1.11.4递归函数
1.11.5程序运行
1.11.6程序调试
第2章数值计算
2.1向量与矩阵的运算
2.1.1向量的四则运算
2.1.2向量的内积与外积
2.1.3矩阵的四则运算
2.1.4矩阵的函数运算
2.1.5求解线性方程组
2.1.6矩阵分解
2.2非线性方程(组)求根
2.2.1非线性方程求根
2.2.2求解非线性方程组
2.3求函数极值
2.3.1一元函数极值
2.3.2多元函数极值
2.4插值
2.4.1多项式插值
2.4.2分段线性插值
2.4.3分段Hermite插值
2.4.4三次样条函数
2.5数据拟合
2.5.1最小二乘原理
2.5.2求解超定线性方程组的QR分解方法
2.5.3多项式拟合
2.6数值积分
2.6.1梯形求积公式
2.6.2Simpson求积公式
2.6.3integrate函数
第3章R语言绘图
3.1高水平绘图函数.
3.1.1基本绘图函数--plot函数
3.1.2多组图--pairs函数
3.1.3协同图--coplot函数
3.1.4点图--dotchart函数
3.1.5饼图--pie函数
3.1.6条形图--parplot函数
3.1.7直方图--hist函数
3.1.8箱线图--boxplot函数
3.1.9Q-Q图--qqnorm函数
3.1.10三维透视图--persp函数
3.1.11等值线--contour函数
3.2图形参数
3.2.1高水平绘图函数中的参数
3.2.2图形参数的永久设置
3.2.3图形参数的临时设置
3.2.4图形元素控制
3.3低水平图形函数
3.3.1添加点、线、文字、符号或数学表达式
3.3.2添加直线、线段和图例
3.3.3添加图题、边与盒子
3.3.4添加多边形或图形阴影
3.3.5交互图形函数
3.4图形参数(续)
3.4.1坐标轴与坐标刻度
3.4.2图形边空
3.4.3多图环境
3.5图形设备
第4章概率、分布与随机模拟
4.1组合数与概率计算
4.1.1生成组合方案
4.1.2生成组合数
4.1.3概率计算
4.2分布函数
4.2.1分布函数
4.2.2分位数
4.3常用的分布函数
4.3.1正态分布
4.3.2均匀分布
4.3.3指数分布
4.3.4二项分布
4.3.5Poisson分布
4.3.6χ2分布
4.3.7t分布
4.3.8F分布
4.3.9R的内置函数
4.4样本统计量
4.4.1样本均值
4.4.2样本方差
4.4.3顺序统计量
4.4.4中位数
4.4.5分位数
4.4.6样本的k阶矩
4.4.7偏度系数与峰度系数
4.4.8经验分布函数
4.5随机抽样与随机模拟
4.5.1随机数的生成
4.5.2随机抽样
4.5.3随机模拟
第5章假设检验
5.1假设检验的基本思想
5.1.1基本概念
5.1.2基本思想
5.1.3两类错误
5.1.4P值
5.2重要的参数检验
5.2.1t检验
5.2.2F检验
5.2.3二项分布的近似检验
5.2.4二项分布的精确检验
5.2.5Poisson检验
5.2.6功效检验
5.3符号检验与秩检验
5.3.1符号检验
5.3.2秩检验与秩检验
5.3.3尺度参数检验
5.4分布检验
5.4.1Pearson拟合优度χ2检验
5.4.2Kolmogorov-Smirnov检验
5.4.3正态性检验
5.5列联表检验
5.5.1Pearsonχ2独立性检验
5.5.2Fisher精确独立性检验
5.5.3McNemar检验
5.5.4三维列联表的条件独立性检验
5.6相关性检验
5.6.1Pearson相关检验
5.6.2Spearman相关检验
5.6.3Kendall相关检验
5.6.4cor.test函数
5.7游程检验
第6章回归分析
6.1线性回归
6.1.1线性回归模型
6.1.2线性回归模型的计算
6.1.3预测区间与置信区间
6.1.4其他函数
6.2回归诊断
6.2.1为什么要作回归诊断
6.2.2残差检验
6.2.3影响分析
6.3Box-Cox变换
6.4多重共线性
6.4.1多重共线性现象
6.4.2岭估计
6.5逐步回归
6.5.1“最优”回归方程的选择
6.5.2逐步回归的计算
6.6稳健回归
6.6.1稳健回归的基本概念
6.6.2稳健回归
6.6.3抗干扰回归
6.7非线性回归
6.7.1多项式回归
6.7.2局部多项式回归
6.7.3非线性回归
6.8广义线性回归模型
6.8.1glm函数
6.8.2Logistic回归模型
6.8.3Poisson分布族
6.8.4正态分布族
第7章多元统计分析
7.1方差分析
7.1.1方差分析的数学模型
7.1.2方差分析的计算
7.1.3多重均值检验
7.1.4与方差分析有关的函数
7.1.5方差分析的进一步讨论
7.1.6秩检验
7.1.7协方差分析
7.2判别分析
7.2.1判别分析的数学模型
7.2.2判别分析的计算
7.3聚类分析
7.3.1距离和相似系数
7.3.2系统聚类法
7.3.3类个数的确定
7.3.4实例
7.3.5K均值聚类
7.4主成分分析
7.4.1主成分分析的数学模型
7.4.2主成分分析的计算
7.4.3主成分分析的应用
7.5因子分析
7.5.1因子分析的数学模型
7.5.2因子分析函数
7.5.3因子分析的计算
7.6典型相关分析
7.6.1典型相关分析的数学模型
7.6.2典型相关分析的计算
第8章多元分布
8.1基本概念
8.1.1多元分布函数与概率密度函数
8.1.2多元正态分布
8.1.3与多元正态分布有关的R函数
8.2样本统计量及抽样分布
8.2.1样本统计量
8.2.2抽样分布
8.3多元正态总体均值向量的检验
8.3.1单个总体均值向量的检验
8.3.2两个总体均值向量的检验
8.3.3R中的均值检验函数
8.4扩展包中的其他函数
8.4.1多元t分布
8.4.2多元非参数检验
8.4.3多元正态性检验
索引
参考文献