生物统计附试验设计

梅步俊 梁永厚 吴志红

目录

  • 1 绪论
    • 1.1 生物统计学发展史
    • 1.2 学习生物统计学的必要性
    • 1.3 常用术语和基本概念
    • 1.4 R软件的介绍
    • 1.5 进一步阅读的文献
    • 1.6 习题
  • 2 资料的描述性统计分析
    • 2.1 位置测度
    • 2.2 离散性测度
    • 2.3 R软件的应用
    • 2.4 习题
  • 3 随机变量与概率分布
    • 3.1 随机变量
    • 3.2 概率分布
    • 3.3 二维随机变量
    • 3.4 正态分布
    • 3.5 一些重要的概率分布
    • 3.6 R软件的应用
    • 3.7 习题
  • 4 参数估计方法
    • 4.1 估计量的评价准则
    • 4.2 点估计
    • 4.3 区间估计
    • 4.4 R软件的应用
    • 4.5 习题
  • 5 统计假设测验
    • 5.1 假设检验的基本问题
    • 5.2 统计检验的基本步骤
    • 5.3 抽样分布
    • 5.4 样本平均数与总体平均数差异显著性检验
    • 5.5 两个样本平均数的差异显著性检验
    • 5.6 百分数资料差异显著性检验
    • 5.7 总体参数的区间估计
    • 5.8 非参数检验
    • 5.9 R软件的应用
    • 5.10 习题
  • 6 方差分析
    • 6.1 单因素方差分析
    • 6.2 多重比较
    • 6.3 多因素方差分析
    • 6.4 方差分析需要满足的条件
    • 6.5 习题
  • 7 协方差分析
    • 7.1 协方差分析概述
    • 7.2 协方差分析的基本原理
    • 7.3 协方差分析的计算过程
    • 7.4 R软件的应用
    • 7.5 习题
  • 8 相关与回归分析
    • 8.1 变量之间的相互关系
    • 8.2 直线相关
    • 8.3 回归分析的性质
    • 8.4 一元正态线性回归统计模型
    • 8.5 多元线性回归统计模型
    • 8.6 自变量的选择与逐步回归
    • 8.7 曲线回归
    • 8.8 应用直线回归与相关的注意事项
    • 8.9 R软件的应用
    • 8.10 习题
  • 9 实验设计
    • 9.1 实验设计概述
    • 9.2 生物实验计划
    • 9.3 完全随机设计
    • 9.4 随机单位组设计
    • 9.5 拉丁方设计
    • 9.6 交叉设计
    • 9.7 正交设计
    • 9.8 R软件的应用
    • 9.9 习题
  • 10 附件
    • 10.1 复习题
R软件的应用

第三节 R软件的应用 

本节介绍了使用基本数据查看数据的一些基本方法统计摘要和图表。这些基础知识将贯穿本书的全部内容。

一、R中的数据汇总函数

表2-14列出了R中用于汇总数据的许多基本功能。请注意,通常函数名称是你期望最常用的名称,因为R被设计为相当直观的形式。例如,查找数据向量x的平均值。对于表2-14中未列出的功能,请尝试帮助。apropos()函数与预期名称的一部分一起查找确切的函数调用方法。这可能会出现你期望的结果。表2-14中的大部分函数都可以没有附加参数,并且可用于数据向量,矩阵或数据框架。

表2-14 R中的一些数据汇总函数                                                       

 

函数名称

 

 

功能

 

 

sum(x)

 

 

将x中的元素相加

 

 

prod(x)

 

 

x中元素的乘积

 

 

max(x)

 

 

x中的最大元素

 

 

min(x)

 

 

x中的最小元素

 

 

range(x)

 

 

x中元素的范围(最小值到最大值)

 

 

length(x)

 

 

x中的元素数量

 

 

mean(x)

 

 

x中元素的平均值

 

 

median(x)

 

 

x中的元素中位数(中间值)

 

 

var(x)

 

 

x中元素的方差

 

 

sd(x)

 

 

x中元素的标准偏差

 

 

cor(x,y)

 

 

x和y之间的相关性

 

 

quantile(x,p)

 

 

x的第p分位数

 

 

cov(x,y)

 

 

x和y之间的协方差

 

让我们用一个例子来应用其中的一些函数。

>x<-c(0.5,0.2,0.24,0.12,0.3,0.12,0.2,0.13,0.12,0.12,0.32,0.19)

> sum(x)

[1] 2.56

> prod(x)

[1] 2.360122e-09

> max(x)

[1] 0.5

> min(x)

[1] 0.12

> range(x)

[1] 0.12 0.50

> length(x)

[1] 12

> mean(x)

[1] 0.2133333

> median(x)

[1] 0.195

> var(x)

[1] 0.01313333

> sd(x)

[1] 0.1146008

通常,将使用这些基本的描述性函数作为其他公式的一部分。例如,标准偏差(假设我们不知道它有自己的函数)是方差的平方根,可以计算为:

> sd<-var(x)^0.5

> sd

[1] 0.1146008

假设我们有一种分解蛋白质的酶,我们将称之为蛋白质酶ChopAse。假设我们有三种这种酶,三种公司(化学制造相同的酶,但制备方法不同)。我们对相同的200个氨基酸的蛋白质进行一些分析,消化时间结果如下:

> ChopAse

varietyA timeA varietyBtimeB varietyC timeC

1   a     0.12   b     0.12    c    0.13

2   a     0.13   b     0.14    c    0.12

3   a     0.13   b     0.13    c    0.11

4   a     0.12   b     0.15    c    0.13

5   a     0.13   b     0.13    c    0.12

6   a     0.12   b     0.13    c    0.13

根据这些数据及其呈现方式,很难确定任何数据有关三种Chopase的有用信息以及它们的区别。以下是使用汇总函数得到的可能非常有用的情况,用于查找数据中有趣的趋势。汇总函数同时调用许多的描述函数列在表2-14中,在处理大数据集时可能非常有用,以数据框快速呈现一些基本的描述性统计信息,如Chopase例子:

> summary(ChopAse)

varietyA timeA     varietyB   timeB    varietyC   timeC

a:6  Min. :0.120   b:6   Min. :0.1200   c:6    Min. :0.1100

1st Qu.:0.120       1st Qu.:0.1300        1st Qu.:0.1200

Median :0.125       Median :0.1300       Median :0.1250

Mean :0.125        Mean :0.1333         Mean :0.1233

3rd Qu.:0.130       3rd Qu.:0.1375        3rd Qu.:0.1300

Max. :0.130         Max. :0.1500         Max. :0.1300

这给出了一些关于数据集的快速定量信息,而没有打破数据框或做多个函数调用。例如平均值,对于B而言,似乎高于A或C的平均时间。这可能具有统计显著性,并且这种观察可以用于统计数据差异。

二、R的画图技术

通常情况下,呈现正在探索的数据通常用图形格式。R基本包中包含各种图形格式,许多其他包也提供了额外的图形功能。这个部分着重于了解R中的图形环境以及如何实现控制图形环境的功能。

在启动时,R启动一个图形设备驱动器。该驱动程序控制一个特殊的用于显示图形的图形窗口。无需打开此窗口调用图形,使用函数windows()(用于Windows操作系统,Unix上用x11(),Mac操作系统上用macintosh()。在R中使用图形的命令可以分为三种类型:高级绘图函数,低级绘图函数和图形参数函数。我们来看看这些类型的绘图命令。

1.高级绘图函数

高级绘图函数在图形设备上创建一个新图。最简单的高级绘图函数是plot(),如下所示

> x<-c(1,2,3,4,5,6,7,8)

> y<-c(1,2,3,4,5,6,7,8)

>plot(x,y)

这产生了如上的简单图。此函数也适用于只有一个参数,例如:plot(x)。plot是一个通用的函数和有多种可选参数。例如,如果你输入help(plot),您将看到帮助屏幕。例如,假设我们想要制作一个更美观的图,并使用一些可用的参数:

>plot(x,y,xlim=range(0:10),ylim=range(0:10),type='b',main="Xvs Y")  

              2-15 部分高级绘图函数                                               

 

函数名称

 

 

功能

 

 

boxplot(x)

 

 

盒须图

 

 

pie(x)

 

 

圆形饼图

 

 

hist(x)

 

 

x频率的直方图

 

 

barplot(x)

 

 

x值的直方图

 

 

stripchart(x)

 

 

带状图

 

 

dotchart(x)

 

 

点阵图

 

 

pairs(x)

 

 

有双变量图

 

 

plot.ts(x)

 

 

x相对于时间的绘图

 

 

contour(x,y,z)

 

 

向量x和y,z的轮廓图

 

 

image(x,y,z)

 

 

与contour图相同,但使用颜色而不是线条

 

 

persp(x,y,z)

 

 

三维等高线图

 

    2.低级绘图函数

低级绘图函数会将附加信息添加到现有绘图中,例如将线添加到现有图。请注意,一些低级绘图函数对应一些高级绘图函数的参数。例如,添加标题可以作为高级函数的参数完成(main=“”等)或作为低级绘图函数(title(main=“”)等)。

我们可以使用低级绘图函数添加图形。我们添加一个标题,一些文字指示线的斜率和连接点的线。

>text(4,6,label="Slope=1")                

表2-16列出了附加的低级绘图函数。请注意,大部分这些函数不仅适用于plot(),还适用于其他高级绘图函数。如果你正在处理多个图形窗口,所使用的低级绘图函数将应用于最近使用的图形,所以你应该按照适当的顺序编写你的代码。

表2-16 部分低级绘图函数                                           

 

函数名称

 

 

功能

 

 

points(x,y)

 

 

添加点

 

 

lines(x,y)

 

 

添加行

 

 

text(x,y,label  =“”)

 

 

在坐标处添加文本

 

 

segments(x0,y0,x1,y1)

 

 

从点(x0,y0)到点(x1,y1)绘制一条线

 

 

abline(a,b)

 

 

绘制一条斜线a和一条截距b

 

 

title(“”)

 

 

为主题添加主标题;  也可以添加字幕

 

 

rug(x)

 

 

在x轴上绘制垂直线

 

 

rect(x0,y0,x1,y1)

 

 

绘制一个指定的矩形

 

 

legend(x,y,legend =,...)

 

 

在坐标x,y处添加图例

 

 

axis()

 

 

添加附加轴到当前图

 

3.图形参数函数

图形参数函数可以分为两类:控制图形窗口和微调图形外观的函数,如窗口的颜色,文字,字体等,其中大部分可以用一个函数来控制,par()的基础包,可用于访问和修改设置图形设备。par()是一个非常重要的图形函数。

par相关的最常见的任务之一就是拆分图形屏幕,在图形设备上显示多个图,可以使用par函数的mfrow或mfcol参数来执行此操作。mfrow和mfcol都需要参数(rows,columns)作为行数和列数。Mfrow按行顺序绘制图(第1行第1列,第1行第2列等),而mfcol按列顺序绘制图(第1行1列,第2行第1列)。图形参数还可以控制图形的显示方式。表2-17列出了一些基本的图形参数。这些参数可以作为par的参数来实现,在这种情况下它们在图形窗口的所有图表中实现,或者作为高级的参数实现低级绘图功能,在这种情况下,它们只影响指定函数。我们来看一个使用来自NCBI碱基对数和序列数据的par函数的例子。

> NCBIdata

Year BasePairs Sequences

1 1982 680338 606

2 1983 2274029 2427

3 1984 3368765 4175

4 1985 5204420 5700

5 1986 9615371 9978

20 2001 15849921438 14976310

21 2002 28507990166 22318883 

表2-17 部分图形参数                               

 

函数名称

 

 

功能

 

 

bg

 

 

指定(图形窗口)背景颜色

 

 

col

 

 

控制符号,轴,标题等的颜色

 

(col.axis,col.lab,col.title等)

 

 

font

 

 

控制文本样式(0  =正常,1-  =斜体,2  =粗体,

 

3  =粗体斜体)

 

 

lty

 

 

指定线型(1:实线,2:虚线,3:虚线等)

 

 

lwd

 

 

控制线条的宽度

 

 

cex

 

 

控制文本和符号的大小(cex.axis,cex.lab等)

 

 

pch  

 

 

控制符号的类型,提供一个数字从1到25,或“”中的任何字符

 

使用NCBI数据,让我们按年份绘制碱基对,并按年份绘制序列在同一个图形窗口上。

> #Convert Base PairData to Millions

>MBP<-NCBIdata$BasePairs/1000000

> #Convert SequenceData to Thousands

>ThousSeq<-NCBIdata$Sequences/1000

> #Set par to have a2-column (2 graph) setup

> #Use cex to setlabel sizes

>par(mfcol=c(1,2),cex.axis=0.7,cex.lab=1)

> #Plot base pairdata by year

>plot(NCBIdata$Year,MBP,xlab="Year",ylab="BP in Millions",

+ main="Base Pairsby Year")

> #Add line to plot,color blue

>lines(NCBIdata$Year,MBP,col="Blue")

> #Similarily, plotsequence data and line

>plot(NCBIdata$Year,ThousSeq,xlab="Year",ylab="Seq. inThousands",

+ main="Sequencesby Year")

>lines(NCBIdata$Year,ThousSeq,col="red")