R语言入门之效力分析(Power Analysis)
1. Power Analysis前言
效力分析是实验设计阶段非常重要的一部分内容,它主要是帮助我们确定在指定显著性条件下实验所需要的样本量并评估该实验设计的统计效力。通过效力分析,我们也能给出在现有的样本量下该实验结论的可靠性。如果结论的可靠性非常低,那么几乎可以宣布这个实验是无效的,我们应该修改或者直接终止实验。由此看来,效力分析是我们在进行研究时需要重视的一部分内容。
在效力分析中,我们常常需要密切关注如下四个统计量:
(1)样本量(sample size)
(2)效应量(effect size)
(3)显著性水平(significance level)
(4)效力(power)
需要注意的是,上面四个统计量是只需要知道其中三个就可以算出剩下的那个。
2. Power Analysis在R中的实现
R包“pwr”提供了大量用于效力分析的函数,下表列出了其中比较重要的函数:
function |
power calculations for |
---|---|
pwr.2p.test |
two proportions (equal n) |
pwr.2p2n.test |
two proportions (unequal n) |
pwr.anova.test |
balanced one way ANOVA |
pwr.chisq.test |
chi-square test |
pwr.f2.test |
general linear model |
pwr.p.test |
proportion (one sample) |
pwr.r.test |
correlation |
pwr.t.test |
t-tests (one sample, 2 sample, paired) |
pwr.t2n.test |
t-test (two samples with unequal n) |
接下来我会就一些常用的函数来给大家做个简单介绍。
对于上面的每一个函数,你只要指定样本量、效应量、显著性和效力这四个统计量中的三个,它就能给你算出剩下的那一个。这里显著性水平的默认值是0.05,因此当你想要通过样本量、效应量和效力来计算显著性时,你需要指定参数"sig.level=NULL"。
2.1 T检验
就t检验而言,我们可以使用如下函数来实现效力分析:
pwr.t.test(n= , d = , sig.level = , power = , type = c("two.sample","one.sample", "paired"))
其中n代表样本量,d代表效应量,sig.level代表显著性水平,power代表效力,type用于指定t检验的类型,比如两样本t检验、单样本t检验或者配对t检验。如果你的两组样本量不相等,可以使用如下函数:
pwr.t2n.test(n1= , n2= , d = , sig.level =, power = )
这里n1和n2分别指两组样本的样本量。
就t检验而言,它的效应量可以用如下方法来估计:
Cohen 建议用0.2代表小效应量、0.5代表中等效应量以及 0.8来代表大效应量。
当然,你可以通过设置参数alternative="two.sided"、"less"或者"greater"来指定双侧检验或者单侧检验,默认值是双侧检验。
2.2 方差分析(ANOVA)
对于单因素方差分析的效力检验,你可以使用如下函数
:
pwr.anova.test(k= , n = , f = , sig.level = , power = )
这里k是组数,n是每组的样本数,f是指方差分析的效应量。
对于单因素方法分析而言,它的效应量按照如下公式计算:
Cohen建议将f值为0.1作为小效应量、0.25作为中等效应量以及0.4作为大效应量。
2.3 相关性
对于相关系数的效力检验,可以使用如下函数:
pwr.r.test(n= , r = , sig.level = , power = )
这里n指样本量,r指相关系数,同样也是效应量。Cohen建议将相关系数r等于0.1作为小效应量、0.3作为中等效应量以及0.5作为大效应量。
2.4 卡方检验
卡方检验的效力分析,我们可以使用如下函数:
pwr.chisq.test(w=, N = , df = , sig.level =, power = )
这里w代表效应量,N代表总样本数,df代表自由度。
卡方检验的效应量按如下公式进行计算:
Cohen建议将w值0.1作为小效应量,0.3作为中等效应量以及0.5作为大效应量。
3. 部分实例
library(pwr) #加载R包
# 对于单因素方差分析,假设我们有5个比较组,显著性水平为0.05
# 同时效力为0.8,效应量取中等值0.25
# 这样我们就可以计算各组所需样本数了
pwr.anova.test(k=5,f=0.25,sig.level=0.05,power=0.8)
从上述结果我们可以看出来,在显著性水平为0.05,效力为0.8的单因素方差分析(5的比较组)中,每组所需样本数约为39。
#现在将前面例子中的样本数指定为50
# 其他条件不变,计算该实验设计的效力
pwr.anova.test(k=5,n=50,f=0.25,sig.level=0.05)
我们可以看到此时的效力为0.89,比之前的0.8要大,说明提高样本量可以提高统计效力!
好了,今天的内容就分享到这里,希望大家能够在R中熟练进行效力分析,为自己的实验设计奠定统计基础,咱们下期再见!
- Python的初学者你现在可以自己“看”到代码的运行了!
- ASP.NET Core的配置(3): 将配置绑定为对象[下篇]
- TensorFlow 深度学习笔记 从线性分类器到深度神经网络
- 微信版12306来了!用12306微信小程序买票靠谱吗
- 无需写try/catch,也能正常处理异常
- “人工智能毁灭人类”是一种末世恐惧传染病
- 有状态(Stateful)应用的容器化
- 实现一些字符串操作标准库函数、解决一些字符串问题
- 外卖陷阱,你入坑了么?
- ASP.NET Core的配置(4):多样性的配置来源[上篇]
- 37 个你必须知道的现代数据中心术语
- Python读书笔记7
- 2017年人工智能在游戏领域打败人类,未来我们将何去何从?
- 3杂再破市场行情 6位数结拍
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 三种动态控制SAP CRM WebClient UI assignment block显示与否的方法
- TCGA数据库中癌症名称缩写
- CloudFlare自定义节点优化网站
- 什么是SSL?为什么要为WordPress网站使用SSL?
- R语言再保险合同定价案例研究
- SAP CRM附件的技术属性设计原理
- R语言对混合分布中的不可观测与可观测异质性因子分析
- R替换函数gsub
- R语言泊松回归对保险定价建模中的应用:风险敞口作为可能的解释变量
- asp dotnet core 提供大文件下载的测试
- R语言模拟人类生活预期寿命动态可视化动画图gif
- Python遍历字典
- R语言随机森林模型中具有相关特征的变量重要性
- WPF 使用 Direct Manipulation 的方法
- R语言分析负利率下金融市场:负利率和年金价值的变化