假设检验:参数检验运用样本的统计量来估计总体的参数,如用样本均值估计总体均值,用样本标准差估计总体标准差。

非参数检验则不考虑数据的具体值,而更多地运用了数据大小排序的信息,因此不可能以此估计总体的参数

1.原假设和备择假设

原假设(null hypothesis)——原假设又称“ 0假设”,总是有符号 =, ≥ 或≤,表示为 H0。是研究者想收集证据予以反对的假设(生产实践中常对应正常情形,如均值与设计一致);一般来说,原假设是一旦拒绝便要采取行动的假设。因此, 原假设总是“受到保护的假设” ,没有充分的证据是不能拒绝原假设的。例如,对一家信誉很好的工厂的产品进行检验,原假设一般是“ 产品合格”。备择假设(alternative hypothesis)——研究者想收集证据予以支持的假设, 一旦发生就要采取行动, 是与原假设对立的假设,也称“研究假设”,总是有符号 ≠, > 或 <,表示为 H1。

同时在实际应用中,我们有不同的需求,因此又有双侧检验和单侧检验的区分。

  • 双侧检验——备择假设没有特定的方向性,并含有符号“=”的假设检验,称为双侧检验或双尾检验(two-tailed test)
  • 单侧检验——备择假设具有特定的方向性,并含有符号“>”或“<”的假设检验,称为单侧检验或单尾检验(one-tailed test)。其中备择假设的方向为“<”,称为左侧检验,备择假设的方向为“>”,称为右侧检验。

原假设与备择假设形式:

双侧检验:

左侧检验:

2.非参数检验:

1.正态W检验

例1.   已知15名学生体重如下,问是否服从正态分布

解:

R语言代码:

w <- c(75.0, 64.0, 47.4, 66.9, 62.2, 62.2, 58.7, 63.5,
       66.6, 64.0, 57.0, 69.0, 56.9, 50.0, 72.0)
    shapiro.test(w)

P值>0.05,接受原假设,认为来自正态分布总体。

例2 :H0:数据集服从正态分布

H1:数据集不服从正态分布

#是否服从正态分布
#随机抽取3000个样本
mysample <- error[sample(1:nrow(error), 3000, replace=FALSE),]
shapiro.test(mysample$B1)
shapiro.test(mysample$Q1)

#显示p值小于2.2e-16,因此认为不服从正太分布

2.Kolmogorov-Smirnov 检验

例3.  假定从分布函数未知的F(x)和G(x)的总体中分别抽出25个和20个观察值的随即样品,其数据由下表所示。现检验F(x)和G(x)是否相同。

R语言代码:

X<-scan( )
        0.61 0.29 0.06 0.59 -1.73 -0.74 0.51 -0.56
        1.64 0.05 -0.06 0.64 -0.82 0.37 1.77
        2.36 1.31 1.05 -0.32 -0.40 1.06 -2.47
        0.39 1.09 -1.28
        Y<-scan( )
        2.20 1.66 1.38 0.20 0.36 0.00
        0.96 1.56 0.44  1.50 -0.30 0.66

2.31 3.29 -0.27 -0.37 0.38 0.70
        0.52 -0.71
        ks.test(X,Y)

P值>0.05,无法拒绝原假设,说明F(x)和G(x)分布函数相同。

例子:

> ks.test(error$B1,error$Q1)Two-sample Kolmogorov-Smirnov testdata:  error$B1 and error$Q1
D = 0.11508, p-value < 2.2e-16
alternative hypothesis: two-sided    Two-sample Kolmogorov-Smirnov testdata:  error$B1 and error$Q1
D = 0.11508, p-value < 2.2e-16
alternative hypothesis: two-sided

P值<0.05,可以拒绝原假设,说明B1,Q1分布函数相同。

3.列联表数据的检验

例4.  为了研究吸烟是否与患肺癌相关,对63位肺癌患者及43名非肺癌患者(对照组)调查了其中的吸烟人数,得到2x2列联表,如下表所示

解:

进行Pearson卡方检验

R语言代码:

x<-c(60, 3, 32, 11)
        dim(x)<- c(2,2)
        chisq.test(x,correct = F)

P值<0.05,拒绝原假设,认为吸烟与患肺癌相关。

4.符号检验

例5.  用两种不同的饲料养猪,其增重情况如下表所示。试分析两种饲料养猪有无显著差异。

R语言代码:

x<-scan()
     25 30 28 23 27 35 30 28 32 29 30 30 31 16

y<-scan()
     19 32 21 19 25 31 31 26 30 25 28 31 25 25

binom.test(sum(x<y), length(x))

sum(x < y)表示样品X小于样品Y的个数。计算出P值大于0.05,无法拒绝原假设,可以认为两种饲料养猪无显著差异。

例子6:H0:两组数据无显著的差别

H1:两组数据有明显的差别

binom.test(sum(error$B1<error$Q1), length(error$B1))
> binom.test(sum(error$B1<error$Q1), length(error$B1))Exact binomial testdata:  sum(error$B1 < error$Q1) and length(error$B1)
number of successes = 34950, number of trials = 65535, p-value <2.2e-16
alternative hypothesis: true probability of success is not equal to 0.5
95 percent confidence interval:0.5294742 0.5371285
sample estimates:
probability of success 0.5333028

P<0.05,所以拒绝原假设,接受两组数据有明显的差别

在符号检验法中,只计算符号的个数,而不考虑每个符号差所包含的绝对值的大小,因此常常使用弥补了这个缺点的wilcoxon符号秩检验。

5.符号秩检验

在R中,wilcox.test()函数可以用来做Wilcoxon秩和检验,也可以用于做Mann-Whitney U检验。当参数为单个样本,或者是两个样本相减,或者是两个参数,paired=F时,是Wilcoxon秩和检验。当paired = FALSE(独立样本)时,就是Mann-Whitney U检验,

在R语言中进行符号秩检验可以使用wilcox.test( )

wilcox.test(x, y = NULL,
              alternative = c("two.sided", "less", "greater"),
              mu = 0, paired = FALSE, exact = NULL, correct = TRUE,
              conf.int = FALSE, conf.level = 0.95, ...)

n为整数向量,表示试验的次数,当x为矩阵时,该值无效.
p为向量,表示试验成功的概率,必须与x有相同的维数,且值在0至1之间,默认值为NULL.
alternative为备择假设选项,取"two.sided"(默认值)表示双侧检验;取"less"表示备择假设为“<”的单侧检验,取"greater"表示备择假设为“>”的单侧检验.
conf.level为0~1之间的数值(默认值为0.95),表示置信水平,它将用于计算比率p或比率差p1-p2的置信区间.
correct为逻辑变量,表示是否对统计量作连续修正,默认值为TRUE.

其中x,y是观察数据构成的数据向量。alternative是备择假设,有单侧检验和双侧检验,mu待检参数,如中位数M0.paired是逻辑变量,说明变量x,y是否为成对数据。exact是逻辑变量,说明是否精确计算P值,当样本量较小时,此参数起作用,当样本两较大时,软件采用正态分布近似计算P值。correct是逻辑变量,说明是否对P值的计算采用连续性修正,相同秩次较多时,统计量要校正。conf.int是逻辑变量,说明是否给出相应的置信区间。

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

例7.  今测得10名非铅作业工人和7名铅作业工人的血铅值,如下表所示。试用Wilcoxon秩和检验分析两组工人血铅值有无差异。

解:进行Wilcoxon秩和检验R语言同样可以使用wilcox.test( )

R语言代码:

x<-c(24, 26, 29, 34, 43, 58, 63, 72, 87, 101)

y<-c(82, 87, 97, 121, 164, 208, 213)

wilcox.test(x,y,alternative="less",exact=FALSE,correct=FALSE)

P值小于0.05,拒绝原假设,即铅作业工人血铅值高于非作业工人。

例子2:H0:两组数据无显著的差别

H1:两组数据有明显的差别

> wilcox.test(error$B1,error$Q1,alternative="two.sided",exact=FALSE,correct=TRUE)Wilcoxon rank sum test with continuity correctiondata:  error$B1 and error$Q1
W = 2103600000, p-value = 1.606e-10
alternative hypothesis: true location shift is not equal to 0

P<0.05,所以拒绝原假设,两组数据是有差别的

6.二元数据相关检验

例8  .某种矿石中两种有用成分A,B,取10个样品,每个样品中成分A的含量百分数x(%),及B的含量百分数y(%)的数据下表所示,对两组数据进行相关性检验。

解:进行相关性检验,在R语言中可以使用cor.test( )

cor.test(x, y,
         alternative = c("two.sided", "less", "greater"),
         method = c("pearson", "kendall", "spearman"),
         exact = NULL, conf.level = 0.95, ...)

#其中x,y是数据长度相同的向量,alternative是备择假设,缺省值为"two.sided",method是检验方法,缺省值是Pearson检验,conf.level是置信区间水平,缺省值为0.95

cor.test( )还有另一种使用格式

cor.test(formula, data, subset, na.action, ...) #其中formula是公式,形如'~u+v' , 'u', 'v' 必须是具有相同长度的数值向量,data是数据框,subset是可选择向量,表示观察值的子集。

假设此例中两组数据均来自正态分布,使用pearson相关性检验,

R语言代码:

ore<-data.frame(
         x=c(67, 54, 72, 64, 39, 22, 58, 43, 46, 34),
         y=c(24, 15, 23, 19, 16, 11, 20, 16, 17, 13)
    )
    cor.test(ore$x,ore$y)

可见P值<0.05,拒绝原假设,认为X与Y相关。


项目推荐:

2000多G的计算机各行业电子资源分享(持续更新)

2020年微信小程序全栈项目之喵喵交友【附课件和源码】

Spring Boot开发小而美的个人博客【附课件和源码】

Java微服务实战296集大型视频-谷粒商城【附代码和课件】

Java开发微服务畅购商城实战【全357集大项目】-附代码和课件

最全最详细数据结构与算法视频-【附课件和源码】

------------------------- end  -----------------------


R语言对数据进行非参数检验相关推荐

  1. R语言进行数据聚合统计(Aggregating transforms)计算滑动窗口统计值(Window Statistics):使用R原生方法、data.table、dplyr等方案、计算滑动分组统计

    R语言进行数据聚合统计(Aggregating transforms)计算滑动窗口统计值(Window Statistics):使用R原生方法.data.table.dplyr等方案.计算滑动分组统计 ...

  2. R语言进行数据聚合统计(Aggregating transforms)实战:使用R原生方法、data.table、dplyr等方案、计算分组均值并添加到可视化结果中

    R语言进行数据聚合统计(Aggregating transforms)实战:使用R原生方法.data.table.dplyr等方案.计算分组均值并添加到可视化结果中 目录

  3. R语言dataframe数据列中的缺失值NA的个数统计实战:特定数据列的NA值统计、所有特征的NA值统计

    R语言dataframe数据列中的缺失值NA的个数统计实战:特定数据列的NA值统计.所有特征的NA值统计 目录

  4. R语言将数据列中的多种日期格式统一变化为一种固定格式实战:使用lubridate包中的parse_date_time函数

    R语言将数据列中的多种日期格式统一变化为一种固定格式实战:使用lubridate包中的parse_date_time函数 目录

  5. R语言dataframe数据列格式转换(从整型integer转化为浮点型float)

    R语言dataframe数据列格式转换(从整型integer转化为浮点型float) 目录 R语言dataframe数据列格式转换(从整型integer转化为浮点型float)

  6. 用R语言把数据玩出花样

    用R语言把数据玩出花样 数据处理 R 去重 数据可视化 阅读759  R语言作为统计学一门语言,一直在小众领域闪耀着光芒.直到大数据的爆发,R语言变成了一门炙手可热的数据分析的利器.随着越来越多的工程 ...

  7. r语言数据变量分段_使用R语言实现数据分段

    使用R语言实现数据分段 今天跟大家讲讲我工作中用到的数据分段,数据分段一般在什么地方会使用到呢?评分.之前写过一篇<实战: RFM>模型使用,那篇文章就详细介绍了CRM(客户关系管理)分析 ...

  8. R语言基础数据操作fBasics

    R语言基础数据操作&fBasics xlsx文件的导入 library(readxl) data1 <- read_excel("C:/Users/12241/Desktop/ ...

  9. R语言导入数据文件(数据导入、加载、读取)、使用read.table函数导入逗号分割文件CSV(Comma Delimited Text File)

    R语言导入数据文件(数据导入.加载.读取).使用read.table函数导入逗号分割文件CSV(Comma Delimited Text File) 目录

  10. R语言导入数据文件(数据导入、加载、读取)、使用readr包中的read_csv函数导入逗号分割文件CSV(Comma Delimited Text File)

    R语言导入数据文件(数据导入.加载.读取).使用readr包中的read_csv函数导入逗号分割文件CSV(Comma Delimited Text File) 目录

最新文章

  1. foxmail提示不知道这样的主机_不知道和婚礼策划师沟通时谈哪些?这样做让你高效备婚...
  2. C++运算符重载(成员函数方式)
  3. springmvc执行流程(简述易懂)
  4. DataTable 转为ListT集合
  5. 【转】.NET 自带的动态代理+Expression 实现AOP
  6. mysql存储过程游标移动_mysql动态游标与mysql存储过程游标(示例)
  7. Qt creator5.7 OpenCV249之高斯滤波(含源码下载)
  8. HTML5和Intersection Observer的响应式图像优化简介
  9. matlab在电力系统潮流计算程序,大神们,求个电力系统潮流计算的matlab程序。
  10. 设计网际网络的地址标准
  11. Xshell 7免费版下载及安装
  12. 215. 数组中的第K个最大元素
  13. 产品读书《疯传:让你的产品、思想、行为像病毒一样入侵》
  14. 多个数的最小公倍数求法
  15. meta分析 2. 固定效应和随机效应
  16. ubuntu19.04下VirtualBox与虚拟机win7共享文件夹
  17. codeforce 755 B
  18. css里面设置一个背景边框图片或者填充一张图片,使图片填充整个div容器;
  19. redis分布式代理工具选型与功能验证
  20. Linux:安装和配置tomcat详细教程

热门文章

  1. php GD绘图技术(实战)
  2. keil中c语言定义数组,如题,KeilC51位变量能不能定义数组
  3. Google AI 博客:Hum to Search 项目,使用机器学习来识别随口哼唱的旋律
  4. vnc远程控制软件,在Linux上安装vnc远程控制软件只需4步
  5. (18)全民小视频引流脚本模块化开发12-任务总数与时间间隔By飞云脚本学院
  6. 学习笔记 Tianmao 篇 FragmentTabHost (TabHost升级版)
  7. 微软升级网页版Skype 没有帐户也能拨打网络电话
  8. 分布式数据库设计——分布式数据库的基础概念
  9. 【数学建模】实验设计方法
  10. 用Visual C#.NET编写服务器日期控件