pwr | 谁说样本量计算是个老大难问题!?(三)(配对样本与非等比样本篇)

news2024/11/13 9:35:32

1写在前面

之前我们介绍的基于发生率或者均值进行样本量计算的方法,但都是在组间进行计算。🤔
有的时候我们需要获取组内变化,进行样本量计算。🤫
常见的就是配对样本,比如相同受试者进行多个时间点的观察,如下图:👇

本期我们就介绍一下如何估算配对样本样本量吧。🥰

2用到的包

rm(list = ls())
library(pwr)
library(tidyverse)

3研究假设

还是假设我们正在进行一项前瞻性研究,测量一组开始节食患者的体重变化。🧐
我们先提出研究假设, :👇

  • : 该组患者 基线和节食 3周后体重的平均变化没有差异。
  • : 该组患者 基线和节食 3周后体重的平均变化存在差异。

4计算样本量

现在我们假设需要招募足够多的受试者,以检测节食开始3周后体重减轻了5磅。⤵️
假设基线平均体重为130磅标准差11,节食3周后,预期平均体重为125磅标准差12。🤪

4.1 计算Cohen’s d

mu_x <- 130     ### Baseline体重均值
mu_y <- 125 ### diet后体重均值

sd_x <- 11 ### Basline体重SD
sd_y <- 12 ### diet后体重SD

rho <- 0.5 ### diet前后相关性

sd_z <- sqrt(sd_x^2 + sd_y^2 - 2*rho*sd_x*sd_y)

d_z <- abs(mu_x - mu_y) / sd_z
d_z
alt

Note! 顺便说一下,有时候我们不知道这个相关性rho是多少,可以默认设置成0.5。🤓


4.2 pwr计算样本量

现在,我们可以利用pwr包计算节食前后平均体重变化差(5磅)所需的样本量,具有 80%power0.05显著性。🥳
这里我们可以看到需要44例受试者,进行2次体重检测。

n.paired <- pwr.t.test(d = d_z, power = 0.80, sig.level = 0.05, type = "paired")
n.paired
alt

5Power Analysis

接着是效力分析Power Analysis),配对t检验样本量变化对power的影响吧。🤜
与之前的示例一样,随着我们增加样本量,估算的不确定性也随之减小。🧐

通过减少这种不确定性,我们在估算中更好地避免了II类错误。😙

n_z <- seq(1, 80, 5)
n_z.change <- pwr.t.test(d = d_z, n = n_z, sig.level = 0.05, type = "paired")
n_z.change.df <- data.frame(n_z, power = n_z.change$power * 100)
n_z.change.df
alt

plot(n_z.change.df$n, 
n_z.change.df$power,
type = "b",
xlab = "Sample size, n",
ylab = "Power (%)")
alt

6改变一下

让我们看看当我们改变effect sizepower如何变化。😗
接着我们改一下患者节食导致的平均体重变化,看看减少到100磅power如何变化。😂
这里我们从50磅开始,逐渐增加到130磅,间隔5磅。😉

mu_y <- seq(50, 130, 5)

d_z <- abs(mu_x - mu_y) / sd_z

n_z.change <- pwr.t.test(d = d_z, n = 44, sig.level = 0.05)
n_z.change.df <- data.frame(d_z, power = n_z.change$power * 100)
n_z.change.df
alt

plot(n_z.change.df$d_z, 
n_z.change.df$power,
type = "b",
xlab = "Cohen's d_z",
ylab = "Power (%)",
xlim = c(0, 2))
alt

7不等比样本量的Power Analysis

有时候我们做的研究,两组并不是等比的,这个时候就非常需要做Power Analysis了。😘

假设我们现在准备做一个回顾性研究Retrospective study),其中患者分别接受了Treatment ATreatment B。🤨
Treatment A130名患者 (nA = 130),Treatment B120名患者 (nB = 120)。😜
Treatment A中,HbA1c的平均变化为1.5%,标准差为1.25%。🤫
Treatment B中,HbA1c的平均变化为1.4%,标准差为1.01%。🫢

7.1 计算并合标准偏差

首先我们计算一下并合标准偏差(pooled standard deviation, σpooled)。😂

sd1 <- 1.25
sd2 <- 1.01
sd_pooled <- sqrt((sd1^2 +sd2^2) / 2)
sd_pooled
alt

7.2 计算Cohen’s d

mu1 <- 1.5
mu2 <- 1.4
d <- (mu1 - mu2) / sd_pooled
d
alt

7.3 Power Analysis

这个时候我们只有11%power来可以发现HbA1c与基线相比变化0.10%或更大的差异。🤠
也就是说在nA = 130nB = 120以及显着性水平为0.05的情况下,我们是发现不了HbA1c变化与基线的0.10%或更大的差异。🫠

这个时候我们如果还要做这个研究,就很可能会出现II类错误。😅

解决这个问题的唯一方法是招募更多患者或通过放宽纳入标准来扩大样本量。🤪

n1 <- 130
n2 <- 120

power.diff_n <- pwr.t2n.test(d = d, n1 = n1, n2 = n2, sig.level = 0.05)
power.diff_n
alt

8补充一下

8.1 其他功能

这里我们补充pwr包里的其他功能,不过可能不是特别常用,主要还是看你的研究设计。🤩

FunctionPower Calculation For
pwr.2p.testtwo proportions equal n
pwr.2p2n.testtwo proportions unequal n
pwr.anova.testbalanced one way anova
pwr.chisq.testchi square test
pwr.f2.testgeneral linear model
pwr.p.testproportion one sample
pwr.r.testcorrelation
pwr.t.testt-tests (one sample, 2 samples, paired)
pwr.r.testt-test (two samples with unequal n)

8.2 Effect size

确定Effect size有时候真的特别难,这里提供一些经验性的参考吧。🥸

Effect sizeCohen’s w
Small0.10
Medium0.30
Large0.50

alt
最后祝大家早日不卷!~

点个在看吧各位~ ✐.ɴɪᴄᴇ ᴅᴀʏ 〰

📍 往期精彩

📍 🤩 ComplexHeatmap | 颜狗写的高颜值热图代码!
📍 🤥 ComplexHeatmap | 你的热图注释还挤在一起看不清吗!?
📍 🤨 Google | 谷歌翻译崩了我们怎么办!?(附完美解决方案)
📍 🤩 scRNA-seq | 吐血整理的单细胞入门教程
📍 🤣 NetworkD3 | 让我们一起画个动态的桑基图吧~
📍 🤩 RColorBrewer | 再多的配色也能轻松搞定!~
📍 🧐 rms | 批量完成你的线性回归
📍 🤩 CMplot | 完美复刻Nature上的曼哈顿图
📍 🤠 Network | 高颜值动态网络可视化工具
📍 🤗 boxjitter | 完美复刻Nature上的高颜值统计图
📍 🤫 linkET | 完美解决ggcor安装失败方案(附教程)
📍 ......

本文由 mdnice 多平台发布

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/139127.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Navicat远程连接禅道一键安装在Linux的MySQL数据库

禅道一键安装的数据库&#xff0c;默认只能在服务器本机访问。远程访问须进行配置&#xff0c;本文说明具体的配置方法&#xff0c;并且已经过验证。 1、首先检查对应的端口是否开放&#xff0c;默认端口为3306. 2、连接到禅道自带的网页版数据库 3、执行SQL创建一个新角色 …

外贸人需要知道的销售技巧有哪些?

外贸销售技巧米贸搜整理如下&#xff0c;希望对你有所帮助:第一步:准备好。没有准备意味着为失败做准备&#xff0c;没有计划意味着为破产做打算。这是为什么呢&#xff1f;因为你不知道你这次要谈什么&#xff0c;所以你首先要做的是准备好整个谈话的结果。第一&#xff0c;我…

PDF能转换成PPT吗?该怎样转换?

PDF能转换成PPT吗&#xff1f;当然是可以的啦&#xff01;我们在工作时候经常需要将PDF文件转换成各种格式的文件&#xff0c;这样可以更方便我们处理各种文件&#xff0c;PPT文件可以用来汇报、展示工作内容等&#xff0c;是我们经常使用的文件类型之一&#xff0c;所以有时候…

Linux文件描述符fd详解重定向原理

文章目录什么是文件描述符fd&#xff1f;文件描述符的分配规则重定向的原理什么是文件描述符fd&#xff1f; #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <sys/types.h> #include <sys/stat.…

AppScan 是一款web安全扫描工具

AppScan介绍&#xff1a; AppScan是IBM的一款web安全扫描工具&#xff0c;主要适用于Windows系统。该软件内置强大的扫描引擎&#xff0c;可以测试和评估Web服务和应用程序的风险检查&#xff0c;根据网站入口自动对网页链接进行安全扫描&#xff0c;扫描之后会提供扫描报告和修…

2022 中国白帽人才能力与发展状况调研报告

声明 本文是学习2022中国白帽人才能力与发展状况调研报告. 下载地址 http://github5.com/view/55039而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 中国白帽人才能力与发展状况调研报告 2022.11 补天漏洞响应平台 奇安信行业安全研究中心 概述 …

元数据管理Datahub架构讲解

目录1. 概述2. 各模块介绍2.1 Metadata Store​2.2 Metadata Models2.3 Ingestion Framework2.4 GraphQL API2.5 User Interface3. Ingestion Framework的架构3.1 Metadata Change Event(MCE)3.2 Pull-based Integration3.3 Push-based Integration​3.4 Applier(mce-consumer)…

CAN学习资料汇总

先简单做个汇总&#xff0c;细节稍后再逐一写出来 CAN&#xff0c;CANOpen与OSI七层协议的关系 CAN CAN是控制器局域网络(Controller Area Network, CAN)的简称&#xff0c;是由以研发和生产汽车电子产品著称的德国BOSCH公司开发的&#xff0c;并最终成为国际标准&#xff08;…

暴涨1000w播放!B站爆款恰饭,弹幕刷屏“上链接”

12月27日&#xff0c;在2022 AD TALK bilibili营销伙伴大会上李旎谈到B站第一批主流用户大多数已经进入28-30岁的阶段&#xff0c;近亿的用户开始对内容的需求有了新的变化。除此之外&#xff0c;B站近几年的用户增长速度亮眼&#xff0c;2022年第三季财报显示平台日活用户已经…

动态内存管理(15)

目录 1、动态内存函数的介绍 1、malloc 2、free 3、calloc 4、realloc 2、常见的动态内存错误 3、C/C程序的内存开辟 4、柔性数组 1、定义 2、柔性数组的特点&#xff1a; 3、使用 1、动态内存函数的介绍 1、malloc malloc 向堆区申请一块连续可用的空间&#xff…

【高阶数据结构】AVL树(动图详解)

&#x1f308;欢迎来到数据结构专栏~~AVL树详解 (꒪ꇴ꒪(꒪ꇴ꒪ )&#x1f423;,我是Scort目前状态&#xff1a;大三非科班啃C中&#x1f30d;博客主页&#xff1a;张小姐的猫~江湖背景快上车&#x1f698;&#xff0c;握好方向盘跟我有一起打天下嘞&#xff01;送给自己的一句…

5G NR 标准 第12章 波束管理

第12章 波束管理 第 11 章一般性地讨论了多天线传输&#xff0c;然后重点介绍了多天线预编码。 讨论多天线预编码的一般假设是可以对不同的天线元件进行详细控制&#xff0c;包括相位调整和幅度缩放。 实际上&#xff0c;这需要在数模转换之前在数字域中执行发射机侧的多天线…

path 路径模块

1、什么是 path 路径模块 path 模块是 Node.js 官方提供的、用来处理路径的模块。它提供了一系列的方法和属性&#xff0c;用来满足用户对路径的处理需求。 方法名 说明 path.join() 用来将多个路径片段拼接成一个完整的路径字符串 path.basename() 用来从路径字符串中…

Kubernetes(4)- 数据存储

第八章 数据存储 ​ 在前面已经提到&#xff0c;容器的生命周期可能很短&#xff0c;会被频繁地创建和销毁。那么容器在销毁时&#xff0c;保存在容器中的数据也会被清除。这种结果对用户来说&#xff0c;在某些情况下是不乐意看到的。为了持久化保存容器的数据&#xff0c;ku…

【Java 数据结构】常见排序算法(下)

目录 1、上期回顾 2、冒泡排序 3、快速排序 3.1 理解快速排序的二叉树结构 3.2 Hoare 法 3.3 三数取中 3.4 小区间优化 3.5 挖坑法 3.6 前后指针法 3.7 注意事项 4、归并排序 1、上期回顾 上期我们主要介绍了排序的基本认识&#xff0c;以及四个排序&#xff0c;分…

【Nginx】静态资源部署(上)

文章目录Nginx静态资源概述Nginx静态资源的配置指令listen指令server_name指令匹配执行顺序location指令设置请求资源的目录root / aliasindex指令error_page指令静态资源优化配置语法Nginx静态资源压缩Gzip模块配置指令Gzip压缩功能的实例配置Gzip和sendfile共存问题gzip_stat…

116.(leaflet之家)leaflet空间判断-点与多边形的空间关系

听老人家说:多看美女会长寿 地图之家总目录(订阅之前建议先查看该博客) 文章末尾处提供保证可运行完整代码包,运行如有问题,可“私信”博主。 效果如下所示: 下面献上完整代码,代码重要位置会做相应解释 <!DOCTYPE html> <html>

电脑怎么录屏?这三个简单的电脑录屏方法,不要错过

在现在的社会&#xff0c;电脑已经是我们日常工作中不可或缺的一部分。我们通常都要在电脑进行各种各样的操作&#xff0c;所以在向其他人展示电脑操作的时候&#xff0c;我们通常都会把整个操作过程录屏下来。那电脑怎么录屏&#xff0c;今天小编就给大家分享三个简单的电脑录…

分布式数据库中间件Sharding-JDBC介绍

前文中介绍了分布式数据库中间件Mycat的一些特性&#xff0c;作为对比本文简要介绍Sharding-JDBC的一些特性以及分片的实现原理&#xff0c;进行对比分析以了解。 1、ShardingSphere介绍 ShardingSphere是一套开源的分布式数据库中间件解决方案&#xff0c;目前由Sharding-JDB…

15个有用的JavaScript技巧

今天这篇文章&#xff0c;是我从网络上整理的一些常见的 JavaScript Tips。我在我的项目中使用了所有这些实用技巧&#xff0c;今天我想把它们分享给你&#xff0c;希望也能够帮助到你。 1.数字分隔符 为了提高数字的可读性&#xff0c;可以使用下划线作为分隔符。 const la…