R语言:常用统计检验
统计检验是将抽样结果和抽样分布相对照而作出判断的工作。主要分5个步骤:
- 建立假设
- 求抽样分布
- 选择显著性水平和否定域
- 计算检验统计量
- 判定 —— 百度百科
假设检验(hypothesis test)亦称显著性检验(significant test),是统计推断的另一重要内容,其目的是比较总体参数之间有无差别。假设检验的实质是判断观察到的“差别”是由抽样误差引起还是总体上的不同,目的是评价两种不同处理引起效应不同的证据有多强,这种证据的强度用概率P来度量和表示。除t分布外,针对不同的资料还有其他各种检验统计量及分布,如F分布、X2分布等,应用这些分布对不同类型的数据进行假设检验的步骤相同,其差别仅仅是需要计算的检验统计量不同。
正态总体均值的假设检验
t检验
t.test() => Student's t-Test
require(graphics)
t.test(1:10, y = c(7:20)) # P = .00001855
t.test(1:10, y = c(7:20, 200)) # P = .1245 -- 不在显著
## 经典案例: 学生犯困数据
plot(extra ~ group, data = sleep)
## 传统表达式
with(sleep, t.test(extra[group == 1], extra[group == 2]))
Welch Two Sample t-test
data: extra[group == 1] and extra[group == 2]
t = -1.8608, df = 17.776, p-value = 0.07939
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
-3.3654832 0.2054832
sample estimates:
mean of x mean of y
0.75 2.33
## 公式形式
t.test(extra ~ group, data = sleep)
Welch Two Sample t-test
data: extra by group
t = -1.8608, df = 17.776, p-value = 0.07939
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
-3.3654832 0.2054832
sample estimates:
mean in group 1 mean in group 2
0.75 2.33
单个总体
- 某种元件的寿命X(小时)服从正态分布N(mu,sigma2),其中mu、sigma2均未知,16只元件的寿命如下;问是否有理由认为元件的平均寿命大于255小时。
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)
One Sample t-test
data: X
t = 0.66852, df = 15, p-value = 0.257
alternative hypothesis: true mean is greater than 225
95 percent confidence interval:
198.2321 Inf
sample estimates:
mean of x
241.5
两个总体
- X为旧炼钢炉出炉率,Y为新炼钢炉出炉率,问新的操作能否提高出炉率?
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")
Two Sample t-test
data: X and Y
t = -4.2957, df = 18, p-value = 0.0002176
alternative hypothesis: true difference in means is less than 0
95 percent confidence interval:
-Inf -1.908255
sample estimates:
mean of x mean of y
76.23 79.43
成对数据t检验
- 对每个高炉进行配对t检验
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")
One Sample t-test
data: X - Y
t = -4.2018, df = 9, p-value = 0.00115
alternative hypothesis: true mean is less than 0
95 percent confidence interval:
-Inf -1.803943
sample estimates:
mean of x
-3.2
正态总体方差的假设检验
var.test() => F Test to Compare Two Variances
x <- rnorm(50, mean = 0, sd = 2)
y <- rnorm(30, mean = 1, sd = 1)
var.test(x, y) # x和y的方差是否相同?
var.test(lm(x ~ 1), lm(y ~ 1)) # 相同.
- 从小学5年级男生中抽取20名,测量其身高(厘米)如下;问:在0.05显著性水平下,平均值是否等于149,sigma^2是否等于75?
X<-scan()
136 144 143 157 137 159 135 158 147 165
158 142 159 150 156 152 140 149 148 155
var.test(X,Y)
F test to compare two variances
data: X and Y
F = 34.945, num df = 19, denom df = 9, p-value = 6.721e-06
alternative hypothesis: true ratio of variances is not equal to 1
95 percent confidence interval:
9.487287 100.643093
sample estimates:
ratio of variances
34.94489
- 对炼钢炉的数据进行分析
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)
F test to compare two variances
data: X and Y
F = 1.4945, num df = 9, denom df = 9, p-value = 0.559
alternative hypothesis: true ratio of variances is not equal to 1
95 percent confidence interval:
0.3712079 6.0167710
sample estimates:
ratio of variances
1.494481
二项分布的总体检验
- 有一批蔬菜种子的平均发芽率为P=0.85,现在随机抽取500粒,用种衣剂进行浸种处理,结果有445粒发芽,问种衣剂有无效果。
binom.test(445,500,p=0.85)
Exact binomial test
data: 445 and 500
number of successes = 445, number of trials = 500, p-value = 0.01207
alternative hypothesis: true probability of success is not equal to 0.85
95 percent confidence interval:
0.8592342 0.9160509
sample estimates:
probability of success
0.89
- 按照以往经验,新生儿染色体异常率一般为1%,某医院观察了当地400名新生儿,有一例染色体异常,问该地区新生儿染色体是否低于一般水平?
binom.test(1,400,p=0.01,alternative="less")
Exact binomial test
data: 1 and 400
number of successes = 1, number of trials = 400, p-value = 0.09048
alternative hypothesis: true probability of success is less than 0.01
95 percent confidence interval:
0.0000000 0.0118043
sample estimates:
probability of success
0.0025
非参数检验
数据是否正态分布的Neyman-Pearson 拟合优度检验-chisq
- 5种品牌啤酒爱好者的人数如下
A 210
B 312
C 170
D 85
E 223
问不同品牌啤酒爱好者人数之间有没有差异?
X<-c(210, 312, 170, 85, 223)
chisq.test(X)
Chi-squared test for given probabilities
data: X
X-squared = 136.49, df = 4, p-value < 2.2e-16
- 检验学生成绩是否符合正态分布
X<-scan()
25 45 50 54 55 61 64 68 72 75 75
78 79 81 83 84 84 84 85 86 86 86
87 89 89 89 90 91 91 92 100
A<-table(cut(X, br=c(0,69,79,89,100)))
#cut 将变量区域划分为若干区间
#table 计算因子合并后的个数
p<-pnorm(c(70,80,90,100), mean(X), sd(X))
p<-c(p[1], p[2]-p[1], p[3]-p[2], 1-p[3])
chisq.test(A,p=p)
Chi-squared test for given probabilities
data: A
X-squared = 8.334, df = 3, p-value = 0.03959
#均值之间有无显著区别
大麦的杂交后代芒性状的比例 无芒:长芒: 短芒=9:3:4,而实际观测值为335:125:160 ,检验观测值是否符合理论假设?
chisq.test(c(335, 125, 160), p=c(9,3,4)/16)
Chi-squared test for given probabilities
data: c(335, 125, 160)
X-squared = 1.362, df = 2, p-value = 0.5061
- 现有42个数据,分别表示某一时间段内电话总机借到呼叫的次数,
接到呼叫的次数 0 1 2 3 4 5 6
出现的频率 7 10 12 8 3 2 0
问:某个时间段内接到的呼叫次数是否符合Possion分布?
x<-0:6
y<-c(7,10,12,8,3,2,0)
mean<-mean(rep(x,y))
q<-ppois(x,mean)
n<-length(y)
p[1]<-q[1]
p[n]<-1-q[n-1]
for(i in 2:(n-1))
p[i]<-1-q[i-1]
chisq.test(y, p= rep(1/length(y), length(y)) )
Chi-squared test for given probabilities
data: y
X-squared = 19.667, df = 6, p-value = 0.003174
Z<-c(7, 10, 12, 8)
n<-length(Z); p<-p[1:n-1]; p[n]<-1-q[n-1]
chisq.test(Z, p= rep(1/length(Z), length(Z)))
Chi-squared test for given probabilities
data: Z
X-squared = 1.5946, df = 3, p-value = 0.6606
P值越小越有理由拒绝无效假设,认为总体之间有差别的统计学证据越充分。需要注意:不拒绝H0不等于支持H0成立,仅表示现有样本信息不足以拒绝H0。
传统上,通常将P>0.05称为“不显著”,0.0l<P≤0.05称为“显著”,P≤0.0l称为“非常显著”。
反馈与建议
- 作者:ShangFR
- 邮箱:shangfr@foxmail.com
R语言:常用统计检验的更多相关文章
- 【R】R语言常用函数
R语言常用函数 基本 一.数据管理vector:向量 numeric:数值型向量 logical:逻辑型向量character:字符型向量 list:列表 data.frame:数据框c:连接为向量或 ...
- R语言常用的矩阵操作
R语言是一门非常方便的数据分析语言,它内置了许多处理矩阵的方法.下面列出一些常用的矩阵操作方法示例. 矩阵的生成 > mat <- matrix(:, ncol = , nrow = , ...
- R语言常用函数:交集intersect、并集union、找不同setdiff、判断相同setequal
在R语言进行数据分析时,经常需要找不同组间的相同和不同,那你应该掌握如下几个函数,让你事半功倍. 交集intersect两个向量的交集,集合可以是数字.字符串等 # 两个数值向量取交集intersec ...
- R语言︱常用统计方法包+机器学习包(名称、简介)
一.一些函数包大汇总 转载于:http://www.dataguru.cn/thread-116761-1-1.html 时间上有点过期,下面的资料供大家参考基本的R包已经实现了传统多元统计的很多功能 ...
- R语言常用操作
1 取整运算 在编程实现的时候有时会碰到对数值取整的需求,而取整的方式却多种多样,依赖于具体问题,不过在R中已经配备了种类齐全的相关函数,主要包括以下五种: floor():向下取整: ceiling ...
- R语言常用包分类总结
常用包: ——数据处理:lubridata ,plyr ,reshape2,stringr,formatR,mcmc: ——机器学习:nnet,rpart,tree,party,lars,boost, ...
- R语言常用命令集合
help.start()//打开帮助文档 q()//推出函数 ls()//返回处于现在名空间的对象名称 rm()//清楚对象:rm(list=ls())清除所有内存数据 gc()//垃圾回收数据 sq ...
- R语言常用包汇总
转载于:https://blog.csdn.net/sinat_26917383/article/details/50651464?locationNum=2&fps=1 一.一些函数包大汇总 ...
- R语言常用数学函数
语言的数学运算和一些简单的函数整理如下: 向量可以进行那些常规的算术运算,不同长度的向量可以相加,这种情况下最短的向量将被循环使用. > x <- 1:4 > a <- 1 ...
- R语言常用数据管理
1.变量的重命名 (1)交互式编辑器修改变量名 若要修改数据集x中的变量名,键入fix(x)即可打开交互式编辑器的界面.若数据集为矩阵或数据框,单击交互式编辑器界面中对应要修改的变量名,可手动输入新的 ...
随机推荐
- eclipse — 导入android项目后识别成java项目的问题及解决
最近在eclipse导入android项目的时候遇到了奇葩问题,再此记录 遇到的问题就是:将完好的android项目导入到eclipse的时候,原本这是一个很容易的事情,但是导入成功后发现,,,靠ec ...
- 二次剩余、三次剩余、k次剩余
今天研究了一下这块内容...首先是板子 #include <iostream> #include <stdio.h> #include <math.h> #incl ...
- 分享在Linux下使用OSGi.NET插件框架快速实现一个分布式服务集群的方法
在这篇文章我分享了如何使用分层与模块化的方法来设计一个分布式服务集群.这个分布式服务集群是基于DynamicProxy.WCF和OSGi.NET插件框架实现的.我将从设计思路.目标和实现三方面来描述. ...
- 清除Android工程中没用到的资源
项目需求一改再改,UI一调再调,结果就是项目中一堆已经用不到但却没有清理的垃圾资源,不说工程大小问题,对新进入项目的人或看其他模块的代码的人来说,这些没清理的资源可能也可能会带来困扰,所以最好还是清理 ...
- ABP(现代ASP.NET样板开发框架)系列之1、ABP总体介绍
点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之1.ABP总体介绍 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)” ...
- PL/SQL快速选中一行并执行
首先确认光标必须处在该行的位置 按下End键位 其次按下shift+home 最后按下F8执行
- 如何通过源生js获取一个元素的具体样式值 /* getCss:获取指定元素的具体样式的属性值 curElement:[dom对象] attr:[string] */
昨天的博客些的真的是惨不忍睹啊!!!但是我的人生宗旨就是将不要脸的精神进行到底,所以,今天我又来了.哈哈哈哈哈! 方法一:元素.style.属性名:(这个有局限性--只能获取行内样式的值,对于样式表或 ...
- python中的默认参数
https://eastlakeside.gitbooks.io/interpy-zh/content/Mutation/ 看下面的代码 def add_to(num, target=[]): tar ...
- 计数排序(counting-sort)——算法导论(9)
1. 比较排序算法的下界 (1) 比较排序 到目前为止,我们已经介绍了几种能在O(nlgn)时间内排序n个数的算法:归并排序和堆排序达到了最坏情况下的上界:快速排序在平均情况下达到该上界. ...
- React中使用Ant Table组件
一.Ant Design of React http://ant.design/docs/react/introduce 二.建立webpack工程 webpack+react demo下载 项目的启 ...