R语言假设检验实例整理

一、正态分布参数检验

例1. 某种原件的寿命X(以小时计)服从正态分布N(μ, σ)其中μ, σ2均未知。现测得16只元件的寿命如下:

159 280 101 212 224 379 179 264
                  222 362 168 250 149 260 485 170

问是否有理由认为元件的平均寿命大于255小时?

解:按题意,需检验

H0: μ ≤ 225     H1: μ >  225

此问题属于单边检验问题

可以使用R语言t.test

t.test(x,y=NULL,

alternative=c("two.sided","less","greater"),

mu=0,paired=FALSE,var.equal=FALSE,

conf.level=0.95)

其中x,y是又数据构成e向量,(如果只提供x,则作单个正态总体的均值检验,如果提供x,y则作两个总体的均值检验),alternative表示被则假设,two.sided(缺省),双边检验(H1:μ≠H0),less表示单边检验(H1:μ<μ0),greater表示单边检验(H1:μ>μ0),mu表示原假设μ0,conf.level置信水平,即1-α,通常是0.95,var.equal是逻辑变量,var.equal=TRUE表示两样品方差相同,var.equal=FALSE(缺省)表示两样本方差不同。

R代码:

X<-c(159, 280, 101, 212, 224, 379, 179, 264,
              222, 362, 168, 250, 149, 260, 485, 170)
       t.test(X,alternative = "greater",mu=225)

  结果:

可见P值为0.257 > 0.05 ,不能拒绝原假设,接受H0,即平均寿命不大于225小时。

例2.在平炉上进行的一项试验以确定改变操作方法的建议是否会增加刚的得率,试验时在同一个平炉上进行的,每炼一炉刚时除操作方法外,其它条件都尽可能做到相同,先用标准方法炼一炉,然后用新方法炼一炉,以后交替进行,各炼了10炉,其得率分别为

标准方法    78.1 72.4 76.2 74.3 77.4 78.4 76.0 75.5 76.7 77.3
    新方法        79.1 81.0 77.3 79.1 80.0 79.1 79.1 77.3 80.2 82.1

设这两个样本相互独立,且分别来自正态总体N(μ1, σ2)和N(μ2, σ2),其中μ1,μ2和σ2未知。问新的操作能否提高得率?(取α=0.05)

    解1:根据题意,需要假设

H0: μ1 ≥  μ2     H1: μ1 <  μ2

这里假定σ12=σ22=σ2,因此选择t.test,var.equal=TRUE

R代码:

X<-c(78.1,72.4,76.2,74.3,77.4,78.4,76.0,75.5,76.7,77.3)
    Y<-c(79.1,81.0,77.3,79.1,80.0,79.1,79.1,77.3,80.2,82.1)
    t.test(X,Y,var.equal = TRUE,alternative = "less")

结果:

可见P值<0.05,接受备择假设,即新的操作能够提高得率。

    解2:

因为数据是成对出现的,所以采用成对数据t检验比上述的双样本均值检验更准确。所谓成对t检验就是Zi=Xi-Yi,再对Z进行单样本均值检验

R代码:

X<-c(78.1,72.4,76.2,74.3,77.4,78.4,76.0,75.5,76.7,77.3)
    Y<-c(79.1,81.0,77.3,79.1,80.0,79.1,79.1,77.3,80.2,82.1)
    t.test(X-Y, alternative = "less")

结果:

可见P值<0.05,接受备择假设,即新的操作能够提高得率。并且P值更小可见比双样本均值检验更准确

例3.对例2进行方差检验,方差是否相同

    解:根据题意,需检验

H0: σ12 =  σ22   H1: σ12 ≠  σ22

方差检验可以用var.test

var.test(x, y, ratio = 1,
            alternative = c("two.sided", "less", "greater"),
            conf.level = 0.95, ...)

x,y是来自两样本数据构成的向量,ratio是方差比的原假设,缺省值为1.alternative是备择假设,two.sided表示双边检验(H1:σ1222<ratio),greater表示单边检验(H1:σ12

R代码:

X<-c(78.1,72.4,76.2,74.3,77.4,78.4,76.0,75.5,76.7,77.3)
    Y<-c(79.1,81.0,77.3,79.1,80.0,79.1,79.1,77.3,80.2,82.1)

var.test(X,Y)

结果:

可见P值为0.559>0.05,接受原假设,认为两者方差相同

二、二项分布参数检验

    例4.有一批蔬菜种子的平均发芽率p0=0.85,现随即抽取500粒,用种衣剂进行浸种处理,结果有445粒发芽。试检验种衣剂对种子发芽率有无效果。

解:根据题意,所检验的问题为

H0:p=p0=0.85, H1:p≠p0

可以用R语言的binom.test

binom.test(x, n, p = 0.5,
                    alternative = c("two.sided", "less", "greater"),
                     conf.level = 0.95)

其中x是成功的次数;或是一个由成功数和失败数组成的二维向量。n是试验总数,当x是二维向量时,此值无效。P是原假设的概率。

R语言代码:

binom.test(445,500,p=0.85)

结果:

可知P值0.01207<0.05,拒绝原假设,说明种衣剂对种子的发芽率有显著效果。

三、其它重要的非参数检验法

  3.1.理论分布完全已知的情况下,进行皮尔森卡方拟合优度检验

    例5.某消费者协会为了确定市场上消费者对5种品牌啤酒的喜好情况,随即抽取了1000名啤酒爱好者作为样品进行试验:每个人得到5种品牌的啤酒各一瓶,但未标明牌子。这5种啤酒分别按着A、B、C、D、E字母的5张纸片随即的顺序送给每一个人。下表是根据样本资料整理的各种品牌啤酒爱好者的频数分布。试根据这些数据判断消费者对这5种品牌啤酒的爱好有无明显差异?

最喜欢的牌子    A          B          C          D          E

人数X               210      312       170      85        223

解:如果消费者对5种品牌的啤酒无显著差异,那么,就可以认为喜好这5种拍品啤酒的人呈均匀分布,即5种品牌啤酒爱好者人数各占20%。据此假设

H0:喜好5种啤酒的人数分布均匀

可以使用Pearson χ2拟合优度检验,R语言中调用chisq.test(X)

chisq.test(x, y = NULL, correct = TRUE,
                   p = rep(1/length(x), length(x)), rescale.p = FALSE,
                   simulate.p.value = FALSE, B = 2000)

其中x是由观测数据构成的向量或者矩阵,y是数据向量(当x为矩阵时,y无效)。correct是逻辑变量,标明是否用于连续修正,TRUE(缺省值)表示修正,FALSE表示不修正。p是原假设落在小区间的理论概率,缺省值表示均匀分布,rescale.p是逻辑变量,选择FALSE(缺省值)时,要求输入的p满足和等于1;选择TRUE时,并不要求这一点,程序将重新计算p值。simulate.p.value逻辑变量(缺省值为FALSE),当为TRUE,将用仿真的方法计算p值,此时,B表示仿真的此值。

R语言代码:

X<-c(210, 312, 170, 85, 223)

chisq.test(X)

结果:

例6.为研究电话总机在某段时间内接到的呼叫次数是否服从Poisson分布,现收集了42个数据,如下表所示,通过对数据的分析,问能否确认在某段时间内接到的呼叫次数服从Poisson分布(α = 0.1)?

R语言代码:

#输入数据
    X<-0:6; Y<-c(7, 10, 12, 8, 3, 2, 0)
    #计算理论分布,其中mean(rep(X,Y))为样本均值
    q<-ppois(X, mean(rep(X,Y))); n<-length(Y)
    p[1]<-q[1]; p[n]<-1-q[n-1]
    for (i in 2:(n-1))
    p[i]<-q[i]-q[i-1]
    #作检验
    chisq.test(Y,p=p)

提示结果可能不准确,因为皮尔森卡方拟合由度检验要求分组后每组的频数至少要大于等于5,而后三组中出现的频率分别为3,2,0,均小于5,解决问题的方法是将后三组合成一组,此时的频数为5,满足要求,重写R语言代码

R语言代码:

#输入数据
    X<-0:6; Y<-c(7, 10, 12, 8, 3, 2, 0)
   #计算理论分布,其中mean(rep(X,Y))为样本均值
    q<-ppois(X, mean(rep(X,Y))); n<-length(Y)
    p<-rep(0,n)
    p[1]<-q[1]; p[n]<-1-q[n-1]
    for (i in 2:(n-1))
      p[i]<-q[i]-q[i-1]
    #重新分组
    Z<-c(7, 10, 12, 8, 5)
    #重新计算理论分布
    n<-length(Z); p<-p[1:n-1]; p[n]<-1-q[n-1]
    #作检验
    chisq.test(Z,p=p)

可见P值>>0.1,可以确认在某段时间之内接到的电话次数服从Poisson 分布

3.2.理论分布依赖于若干个未知参数的情况,Kolmogorov-Smirnov K 检验

例7.对一台设备进行寿命检验,记录10次无故障工作时间,并按从小到大的次序排列如下:(单位)

420  500 920  1380  1510  1650  1760 2100 2300 2350

试用Kolmogorov-Smirnov K 检验方法检验此设备无故障工作时间分布是否服从λ = 1/1500的指数分布?

ks.test(x, y, ...,
    alternative = c("two.sided", "less", "greater"),
    exact = NULL)    # x

时间: 2024-10-29 19:12:10

R语言假设检验实例整理的相关文章

R语言画图实例-参考R语言实战

1 dose <- c(20, 30, 40, 45,60) 2 drugA <- c(16, 20, 27, 40, 60) 3 drugB <- c(15, 18, 25, 31, 40) # 数据准备 4 5 opar <- par(no.readonly=T) # 保存画图环境 6 7 par(lwd=2, cex=1.5, font.lab=2) # 设置画图环境 8 plot(dose, drugA, type="b", pch=15, lty=1,

在 SPSS Statistics 和 Modeler 中调用 R 语言的实现和应用

http://www.ibm.com/developerworks/cn/data/library/ba/ba-1401spss-r/index.html 登录 | 注册   IBM 技术主题 软件下载 社区 技术讲座 搜索 developerWorks 打印本页面 用电子邮件发送本页面 新浪微博 人人网 腾讯微博 搜狐微博 网易微博 Digg Facebook Twitter Delicious Linked In developerWorks 中国 技术主题 Information Mana

R语言中文社区历史文章整理(类型篇)

R语言中文社区历史文章整理(类型篇) R包: R语言交互式绘制杭州市地图:leafletCN包简介 clickpaste包介绍 igraph包快速上手 jiebaR,从入门到喜欢 Catterplots包,让你绘制不一样的图 今天再来谈谈REmap包 ggplot2你需要知道的都在这... R访问数据库管理系统(通过RODBC包和RMySQL包两种方式) NLP--自然语言处理(三)text2vec包 Rattle:数据挖掘的界面化操作 借助caret包实现特征选择的工作 R语言的高质量图形渲染

R语言重要数据集分析研究——需要整理分析阐明理念

1.R语言重要数据集分析研究需要整理分析阐明理念? 上一节讲了R语言作图,本节来讲讲当你拿到一个数据集的时候如何下手分析,数据分析的第一步,探索性数据分析. 统计量,即统计学里面关注的数据集的几个指标,常用的如下:最小值,最大值,四分位数,均值,中位数,众数,方差,标准差,极差,偏度,峰度 先来解释一下各个量得含义,浅显就不说了,这里主要说一下不常见的 众数:出现次数最多的 方差:每个样本值与均值的差得平方和的平均数 标准差:又称均方差,是方差的二次方根,用来衡量一个数据集的集中性 极差:最大值

数据分析实例--R语言如何对垃圾邮件进行分类

Coursera上数据分析实例 --R语言如何对垃圾邮件进行分类 Structure of a Data Analysis 数据分析的步骤 l  Define the question l  Define the ideal data set l  Determine what data you can access l  Obtain the data l  Clean the data l  Exploratory data analysis l  Statistical predictio

R语言基因组数据分析可能会用到的data.table函数整理

R语言data.table包是自带包data.frame的升级版,用于数据框格式数据的处理,最大的特点快.包括两个方面,一方面是写的快,代码简洁,只要一行命令就可以完成诸多任务,另一方面是处理快,内部处理的步骤进行了程序上的优化,使用多线程,甚至很多函数是使用C写的,大大加快数据运行速度.因此,在对大数据处理上,使用data.table无疑具有极高的效率.这里主要介绍在基因组数据分析中可能会用到的函数. fread 做基因组数据分析时,常常需要读入处理大文件,这个时候我们就可以舍弃read.ta

K-means算法原理与R语言实例

聚类是将相似对象归到同一个簇中的方法,这有点像全自动分类.簇内的对象越相似,聚类的效果越好.支持向量机.神经网络所讨论的分类问题都是有监督的学习方式,现在我们所介绍的聚类则是无监督的.其中,K均值(K-means)是最基本.最简单的聚类算法. 在K均值算法中,质心是定义聚类原型(也就是机器学习获得的结果)的核心.在介绍算法实施的具体过程中,我们将演示质心的计算方法.而且你将看到除了第一次的质心是被指定的以外,此后的质心都是经由计算均值而获得的. 首先,选择K个初始质心(这K个质心并不要求来自于样

R语言︱异常值检验、离群点分析、异常值处理

在数据挖掘的过程中,数据预处理占到了整个过程的60% 脏数据:指一般不符合要求,以及不能直接进行相应分析的数据 脏数据包括:缺失值.异常值.不一致的值.重复数据及含有特殊符号(如#.¥.*)的数据 数据清洗:删除原始数据集中的无关数据.重复数据.平滑噪声数据.处理缺失值.异常值等 缺失值处理:删除记录.数据插补和不处理 主要用到VIM和mice包 install.packages(c("VIM","mice")) 1.处理缺失值的步骤 步骤: (1)识别缺失数据:

大数据时代的精准数据挖掘——使用R语言

老师简介: Gino老师,即将步入不惑之年,早年获得名校数学与应用数学专业学士和统计学专业硕士,有海外学习和工作的经历,近二十年来一直进行着数据分析的理论和实践,数学.统计和计算机功底强悍. 曾在某一世界500强公司核心部门担任高级主管负责数据建模和分析工作,在实践中攻克统计建模和数据分析难题无数,数据处理与分析科学精准,在实际应用中取得良好的效果. Gino老师担任数据分析培训师多年,探索出一套以实例讲解带动统计原理理解和软件操作熟悉的方法,授课的学生能迅速理解统计原理并使用统计软件独立开展数