R语言与显著性检验学习笔记

一、何为显著性检验

显著性检验的思想十分的简单,就是认为小概率事件不可能发生。虽然概率论中我们一直强调小概率事件必然发生,但显著性检验还是相信了小概率事件在我做的这一次检验中没有发生。

显著性检验即用于实验处理组与对照组或两种不同处理的效应之间是否有差异,以及这种差异是否显著的方法。

常把一个要检验的假设记作H0,称为原假设(或零假设),与H0对立的假设记作H1,称为备择假设。

⑴在原假设为真时,决定放弃原假设,称为第一类错误,其出现的概率通常记作α;

⑵在原假设不真时,决定接受原假设,称为第二类错误,其出现的概率通常记作β。

通常只限定犯第一类错误的最大概率α,不考虑犯第二类错误的概率β。这样的假设检验又称为显著性检验,概率α称为显著性水平。

我们常用的显著性检验有t检验,卡方检验,相关性检验等,在做这一些检验时,有什么需要注意的呢?

二、正态性与P值

t检验,卡方检验,相关性检验中的pearson方法都是建立在正态样本的假设下的,所以在假设检验开始时,一般都会做正态性分析。在R中可以使用shapiro.test()。来作正态性检验。当然在norm.test包中还提供了许多其他的方法供我们选择。

P值是可以拒绝原假设的最小水平值。

三、四个重要的量

综合前面的叙述,我们知道研究显著性检验有四个十分重要的量:样本大小,显著性水平,功效,效应值。

样本大小:这个显然,样本越多,对样本的把握显然越准确,但是鉴于我们不可能拥有无限制的样本,那么多少个样本可以达到要求?今天的分享中我们可以通过R来找到答案。

显著性水平:犯第一类错误的概率,这个在做检验前我们会提前约定,最后根据P值来决定取舍。

功效:这个是在显著性检验中一般不提及但实际十分有用的量。它衡量真实事件发生的概率。也就是说功效越大,第二类错误越不可能发生。虽然显著性假设检验不提及它,但衡量假设检验的好坏的重要指标便是两类错误尽可能小。

效应值:备择假设下效应的量

四、用pwr包做功效分析

Pwr包中提供了以下函数:

下面我们来介绍以上一些函数的用法。

1、  t检验

调用格式:

pwr.t.test(n = NULL, d = NULL,
sig.level =0.05, power = NULL,  type
=c("two.sample", "one.sample", "paired"),alternative =
c("two.sided", "less","greater"))

参数说明:

N:样本大小

D:t检验的统计量

Sig.level:显著性水平

Power:功效水平

Type:检验类型,这里默认是两样本,且样本量相同

Alternative:统计检验是双侧还是单侧,这里默认为双侧

举例说明:已知样本量为60,单一样本t检验的统计量的值为0.2(这个可以通过t.test(data)$statistic取出来),显著水平α=0.1,那么功效是多少呢?

R中输入命令:

pwr.t.test(d=0.2,n=60,sig.level=0.10,type="one.sample",alternative="two.sided")

得到结果:

One-sample t test power calculation

n = 60

d = 0.2

sig.level = 0.1

power = 0.4555818

alternative = two.sided

我们可以看到,犯第二类错误的概率在50%以上,我们应该相信这个结果吗(无论根据P值来看是拒绝还是接受)?显然不行,那么需要多少个样本才能把第二类错误降低到10%呢?

在R中输入:

pwr.t.test(d=0.2,power=0.9,sig.level=0.10,type="one.sample",alternative="two.sided")

得到结果:

One-sample t test power calculation

n = 215.4542

d = 0.2

sig.level = 0.1

power = 0.9

alternative = two.sided

也就是说216个样本才可以得到满意的结果,使得第二类错误概率不超过0.1.

对于两样本而言是类似的,我们不在赘述,我们下面再介绍另一种t检验的情况:两样本不相等。

调用格式:

pwr.t2n.test(n1 = NULL, n2= NULL, d =
NULL,sig.level = 0.05, power = NULL, alternative =
c("two.sided","less","greater"))

参数说明:

n1    Numberof
observations in the first sample

n2    Numberof
observations in the second sample

d    
Effectsize

sig.level 
Significancelevel (Type I error probability)

power    
Powerof test (1 minus Type II error probability)

alternative     
acharacter string specifying the alternative hypothesis, must be
one of"two.sided" (default), "greater" or "less"

例如:两个样本量为90,60,统计量为0.6,单侧t检验,α=0.05,为望大指标。

R中的命令:

pwr.t2n.test(d=0.6,n1=90,n2=60,alternative="greater")  

输出结果:

t test power calculation

n1 = 90

n2 = 60

d = 0.6

sig.level = 0.05

power = 0.9737262

alternative = greater

可以看出功效十分大,且α=0.05,我们相信这次检验的结论很可信。

2、  相关性

Pwr.r.test()函数对相关性分析进行功效分析。格式如下:

pwr.r.test(n = NULL, r = NULL,
sig.level = 0.05, power = NULL,
   alternative =
c("two.sided", "less","greater"))

这里和t检验不同的是r是线性相关系数,可以通过cor(data1,data2)获取,但需要注意的是不要输入spearman,kendall相关系数,他们是衡量等级相关的。

假定我们研究抑郁与孤独的关系,我们的原假设和备择假设为:

H0:r<0.25  v.s.
   H1:r>0.25

假定显著水平为0.05,原假设不真,我们想有90%的信心拒绝H0,需要观测多少呢?

下面的代码给出答案:

pwr.r.test(r=0.25,sig.level=0.05,power=0.9,alt="greater")

approximate correlation power
calculation (arctangh transformation)

n = 133.8325

r = 0.25

sig.level = 0.05

power = 0.9

alternative = greater

易见,需要样本134个

3、  卡方检验

原假设为变量之间独立,备择假设为变量不独立。命令为pwr.chisq.test(),调用格式:

pwr.chisq.test(w = NULL, N = NULL, df =
NULL, sig.level = 0.05, power =
NULL)其中w为效应值,可以通过ES.w2计算出来,df为列联表自由度

举例:

   
prob<-matrix(c(0.225,0.125,0.125,0.125,0.16,0.16,0.04,0.04),nrow=2,byrow=TRUE)
 

    prob
 

    ES.w2(prob)
 

   
pwr.chisq.test(w=ES.w2(prob),df=(2-1)*(4-1),N=200)

输出结果:

Chi squared power calculation

w = 0.2558646

N = 200

df = 3

sig.level = 0.05

power = 0.8733222

NOTE: N is the number of
observations

也就是说,这个观测下反第二类错误的概率在13%左右,结果较为可信。

R中还有不少与功效分析有关的包,我们不加介绍的把它们列举如下:

R语言与显著性检验学习笔记的更多相关文章

  1. R语言与机器学习学习笔记

    人工神经网络(ANN),简称神经网络,是一种模仿生物神经网络的结构和功能的数学模型或计算模型.神经网络由大量的人工神经元联结进行计算.大多数情况下人工神经网络能在外界信息的基础上改变内部结构,是一种自 ...

  2. R语言函数化学习笔记6

    R语言函数化学习笔记 1.apply函数 可以让list或者vector的元素依次执行一遍调用的函数,输出的结果是list格式 2.sapply函数 原理和list一样,但是输出的结果是一个向量的形式 ...

  3. R语言函数化学习笔记3

    R语言函数化学习笔记3 R语言常用的一些命令函数 1.getwd()查看当前R的工作目录 2.setwd()修改当前工作目录 3.str()可以输出指定对象的结构(类型,位置等),同理还有class( ...

  4. 【数据分析 R语言实战】学习笔记 第十一章 对应分析

    11.2对应分析 在很多情况下,我们所关心的不仅仅是行或列变量本身,而是行变量和列变量的相互关系,这就是因子分析等方法无法解释的了.1970年法国统计学家J.P.Benzenci提出对应分析,也称关联 ...

  5. 【数据分析 R语言实战】学习笔记 第四章 数据的图形描述

    4.1 R绘图概述 以下两个函数,可以分别展示二维,三维图形的示例: >demo(graphics) >demo(persp) R提供了多种绘图相关的命令,可分成三类: 高级绘图命令:在图 ...

  6. 【数据分析 R语言实战】学习笔记 第三章 数据预处理 (下)

    3.3缺失值处理 R中缺失值以NA表示,判断数据是否存在缺失值的函数有两个,最基本的函数是is.na()它可以应用于向量.数据框等多种对象,返回逻辑值. > attach(data) The f ...

  7. R语言函数话学习笔记5

    使用Tidyverse完成函数化编程 (参考了家翔学长的笔记) 1.magrittr包的使用 里面有很多的管道函数,,可以减少代码开发时间,提高代码可读性和维护性 1.1 四种pipeline 1.1 ...

  8. 【数据分析 R语言实战】学习笔记 第七章 假设检验及R实现

    假设检验及R实现 7.1假设检验概述 对总体参数的具体数值所作的陈述,称为假设;再利用样本信息判断假设足否成立,这整个过程称为假设检验. 7.1.1理论依据 假设检验之所以可行,其理沦背景是小概率理论 ...

  9. R语言函数化学习笔记4

    条件语句和循环语句 当你说话时候用到了如果,此时条件出现了 举个条件函数的例子 sign_t<-function(x){ if(x>0){ return(1) }else if(x< ...

随机推荐

  1. HZOI20190828模拟32题解

    题面:https://www.cnblogs.com/Juve/articles/11428730.html chinese: 考虑$\sum\limits_{i=0}^{n*m}i*f_i$的意义: ...

  2. Spring注解驱动开发(三)-----自动装配

    自动装配 概念 Spring利用依赖注入(DI),完成对IOC容器中中各个组件的依赖关系赋值. @Autowired-----自动注入 1.默认优先按照类型去容器中找对应的组件 application ...

  3. Python学习之列表--自动超市购物车

    效果图: 实现代码: menu = [0,5000,500,9000,3000,30,50,7000,70,40]name = [0,"iphone","bicycle& ...

  4. Chapter 1 线性表

    Preface: 这部分主要是我考研之前的总结,留作以后用到时再翻出来看看.都是基础的知识点,望各(Da)位(Lao)不喜勿喷,欢迎指正. 适用人群:考研复习过一遍数据结构的,可以看看,查漏补缺(顺便 ...

  5. jmeter断言步骤

    在POST /wordpress/wp-login.php请求,也就是名称为submit login form user的请求上点右键, 选择添加 -> 后置处理器 -> CSS/JQue ...

  6. Luogu P3106 [USACO14OPEN]GPS的决斗Dueling GPS's(最短路)

    P3106 [USACO14OPEN]GPS的决斗Dueling GPS's 题意 题目描述 Farmer John has recently purchased a new car online, ...

  7. Luogu P2678 跳石头(二分)

    P2678 跳石头 题意 题目背景 一年一度的"跳石头"比赛又要开始了! 题目描述 这项比赛将在一条笔直的河道中进行,河道中分布着一些巨大岩石.组委会已经选择好了两块岩石作为比赛起 ...

  8. poj1961

    poj1961主要是考察对next数组的理解,abaabaabaaba abaabaabaabaabaaba错开的部分便是循环节 7月29日更 如果n%(n-kmp[k])==0,那么n-kmp[k] ...

  9. 通过游戏学python 3.6 第一季 第八章 实例项目 猜数字游戏--核心代码--猜测次数--随机函数和屏蔽错误代码--优化代码及注释--简单账号密码登陆--账号的注册查询和密码的找回修改--锁定账号--锁定次数

    通过游戏学python 3.6 第一季 第八章 实例项目 猜数字游戏--核心代码--猜测次数--随机函数和屏蔽错误代码--优化代码及注释--简单账号密码登陆--账号的注册查询和密码的找回修改--锁定账 ...

  10. jmeter的组件介绍--框架

    测试计划(test plan):用于存放测试脚本的容器. 线程(threads):通过java多线程来实现模拟多用户操作,只有在线程组下才能添加sample(各种协议的请求),因此线程是必须的. 取样 ...