R语言对数据进行非参数检验
假设检验:参数检验运用样本的统计量来估计总体的参数,如用样本均值估计总体均值,用样本标准差估计总体标准差。
非参数检验则不考虑数据的具体值,而更多地运用了数据大小排序的信息,因此不可能以此估计总体的参数
1.原假设和备择假设
同时在实际应用中,我们有不同的需求,因此又有双侧检验和单侧检验的区分。
- 双侧检验——备择假设没有特定的方向性,并含有符号“=”的假设检验,称为双侧检验或双尾检验(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( )
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语言对数据进行非参数检验相关推荐
- R语言进行数据聚合统计(Aggregating transforms)计算滑动窗口统计值(Window Statistics):使用R原生方法、data.table、dplyr等方案、计算滑动分组统计
R语言进行数据聚合统计(Aggregating transforms)计算滑动窗口统计值(Window Statistics):使用R原生方法.data.table.dplyr等方案.计算滑动分组统计 ...
- R语言进行数据聚合统计(Aggregating transforms)实战:使用R原生方法、data.table、dplyr等方案、计算分组均值并添加到可视化结果中
R语言进行数据聚合统计(Aggregating transforms)实战:使用R原生方法.data.table.dplyr等方案.计算分组均值并添加到可视化结果中 目录
- R语言dataframe数据列中的缺失值NA的个数统计实战:特定数据列的NA值统计、所有特征的NA值统计
R语言dataframe数据列中的缺失值NA的个数统计实战:特定数据列的NA值统计.所有特征的NA值统计 目录
- R语言将数据列中的多种日期格式统一变化为一种固定格式实战:使用lubridate包中的parse_date_time函数
R语言将数据列中的多种日期格式统一变化为一种固定格式实战:使用lubridate包中的parse_date_time函数 目录
- R语言dataframe数据列格式转换(从整型integer转化为浮点型float)
R语言dataframe数据列格式转换(从整型integer转化为浮点型float) 目录 R语言dataframe数据列格式转换(从整型integer转化为浮点型float)
- 用R语言把数据玩出花样
用R语言把数据玩出花样 数据处理 R 去重 数据可视化 阅读759 R语言作为统计学一门语言,一直在小众领域闪耀着光芒.直到大数据的爆发,R语言变成了一门炙手可热的数据分析的利器.随着越来越多的工程 ...
- r语言数据变量分段_使用R语言实现数据分段
使用R语言实现数据分段 今天跟大家讲讲我工作中用到的数据分段,数据分段一般在什么地方会使用到呢?评分.之前写过一篇<实战: RFM>模型使用,那篇文章就详细介绍了CRM(客户关系管理)分析 ...
- R语言基础数据操作fBasics
R语言基础数据操作&fBasics xlsx文件的导入 library(readxl) data1 <- read_excel("C:/Users/12241/Desktop/ ...
- R语言导入数据文件(数据导入、加载、读取)、使用read.table函数导入逗号分割文件CSV(Comma Delimited Text File)
R语言导入数据文件(数据导入.加载.读取).使用read.table函数导入逗号分割文件CSV(Comma Delimited Text File) 目录
- R语言导入数据文件(数据导入、加载、读取)、使用readr包中的read_csv函数导入逗号分割文件CSV(Comma Delimited Text File)
R语言导入数据文件(数据导入.加载.读取).使用readr包中的read_csv函数导入逗号分割文件CSV(Comma Delimited Text File) 目录
最新文章
- foxmail提示不知道这样的主机_不知道和婚礼策划师沟通时谈哪些?这样做让你高效备婚...
- C++运算符重载(成员函数方式)
- springmvc执行流程(简述易懂)
- DataTable 转为ListT集合
- 【转】.NET 自带的动态代理+Expression 实现AOP
- mysql存储过程游标移动_mysql动态游标与mysql存储过程游标(示例)
- Qt creator5.7 OpenCV249之高斯滤波(含源码下载)
- HTML5和Intersection Observer的响应式图像优化简介
- matlab在电力系统潮流计算程序,大神们,求个电力系统潮流计算的matlab程序。
- 设计网际网络的地址标准
- Xshell 7免费版下载及安装
- 215. 数组中的第K个最大元素
- 产品读书《疯传:让你的产品、思想、行为像病毒一样入侵》
- 多个数的最小公倍数求法
- meta分析 2. 固定效应和随机效应
- ubuntu19.04下VirtualBox与虚拟机win7共享文件夹
- codeforce 755 B
- css里面设置一个背景边框图片或者填充一张图片,使图片填充整个div容器;
- redis分布式代理工具选型与功能验证
- Linux:安装和配置tomcat详细教程
热门文章
- php GD绘图技术(实战)
- keil中c语言定义数组,如题,KeilC51位变量能不能定义数组
- Google AI 博客:Hum to Search 项目,使用机器学习来识别随口哼唱的旋律
- vnc远程控制软件,在Linux上安装vnc远程控制软件只需4步
- (18)全民小视频引流脚本模块化开发12-任务总数与时间间隔By飞云脚本学院
- 学习笔记 Tianmao 篇 FragmentTabHost (TabHost升级版)
- 微软升级网页版Skype 没有帐户也能拨打网络电话
- 分布式数据库设计——分布式数据库的基础概念
- 【数学建模】实验设计方法
- 用Visual C#.NET编写服务器日期控件