# -*- coding: utf-8 -*-
class SampleSizeCalculator:def __init__(self, alpha=0.05, beta=0.1, sigma=None,delta=None, is_one_sample=False, is_one_side=False):self.alpha = alpha # 显著水平,假设检验中犯第一类错误的概率self.beta = beta # 假设检验中犯第二类错误的概率self.power = 1 - beta # 检验效能self.sigma = sigma # 标准差self.delta = delta # 可容忍误差self.is_one_sample = is_one_sample # 单样本 or 双样本self.is_one_side = is_one_side # 单侧检验 or 双侧检验# Method1: 通过公式计算样本量def get_sample_size1(self):import mathfrom scipy.stats import norm, t# sigma为总体方差时if self.is_one_side:z_percent_alpha = norm.ppf(self.alpha, 0, 1)else:z_percent_alpha = norm.ppf(self.alpha / 2, 0, 1)z_percent_beta = norm.ppf(self.beta, 0, 1)if self.is_one_sample:z_test_num = (z_percent_alpha + z_percent_beta) ** 2 * (self.sigma / self.delta) ** 2z_test_num = math.ceil(z_test_num)if self.is_one_side:t_percent_alpha = t.ppf(self.alpha, z_test_num - 1)  # 单样本T检验的自由度为n-1else:t_percent_alpha = t.ppf(self.alpha / 2, z_test_num - 1)  # 单样本T检验的自由度为n-1t_percent_beta = t.ppf(self.beta, z_test_num - 1)t_test_num = (t_percent_alpha + t_percent_beta) ** 2 * (self.sigma / self.delta) ** 2else:z_test_num = 2 * (z_percent_alpha + z_percent_beta) ** 2 * (self.sigma / self.delta) ** 2z_test_num = math.ceil(z_test_num)if self.is_one_side:t_percent_alpha = t.ppf(self.alpha, 2*z_test_num - 2)  # 双样本T检验的自由度为n1+n2-2else:t_percent_alpha = t.ppf(self.alpha/2, 2*z_test_num - 2)  # 双样本T检验的自由度为n1+n2-2t_percent_beta = t.ppf(self.beta, 2*z_test_num - 2)t_test_num = 2 * (t_percent_alpha + t_percent_beta) ** 2 * (self.sigma / self.delta) ** 2return t_test_num# Method2: 通过三方库计算样本量def get_sample_size2(self, k):if self.is_one_sample:from statsmodels.stats.power import TTestPowerttest = TTestPower()if self.is_one_side:alternative = "larger"else:alternative = "two-sided"t_test_num = ttest.solve_power(effect_size=self.delta / self.sigma,alpha=self.alpha,power=self.power,alternative=alternative)else:from statsmodels.stats.power import TTestIndPowerttest = TTestIndPower()if self.is_one_side:alternatives = "larger"else:alternative = "two-sided"t_test_num = ttest.solve_power(effect_size=self.delta / self.sigma,nobs1=None,alpha=self.alpha,power=self.power,ratio=k,alternative=alternative)return t_test_numif __name__ == "__main__":alpha = 0.05beta = 0.02sigma = 8delta = 5is_one_sample = Trueis_one_side = Truesample_size_calculator = SampleSizeCalculator(alpha=alpha,beta=beta,sigma=sigma,delta=delta,is_one_sample=is_one_sample,is_one_side=is_one_side)sample_size1 = sample_size_calculator.get_sample_size1()print(sample_size1)sample_size2 = sample_size_calculator.get_sample_size2(k=1)print(sample_size2)

临床试验中的样本量估算---实践篇相关推荐

  1. Nat. Med. | 制定指导原则以报告AI在临床试验中的使用

    要在临床决策中发挥人工智能的潜力,就需要在设计良好的随机临床试验中测试干预措施,并以标准化和透明的方式报告这些结果. 过去几十年发展起来的人工智能(AI)方法为生物医学研究做出了宝贵的贡献.最近在机器 ...

  2. 临床试验中edc录入_临床试验中EDC(电子数据采集)操作须知

    电子数据采集(electronic data capture,EDC)是电子化临床试验的重要组成部分.EDC通过计算机.局域网.因特网.PDA和各种便携式设备.互动式语音或网络应答系统及远程数据输人( ...

  3. 临床试验中edc录入_使用电子数据采集(EDC)系统进行医疗器械临床试验研究

    原标题:使用电子数据采集(EDC)系统进行医疗器械临床试验研究 裴高鑫 背景 近年来随着互联网和计算机技术的不断发展,电子数据采集(Electronic Data Capture, EDC)技术在临床 ...

  4. CellPress | 人工智能在临床试验中的应用

    本文介绍如何利用人工智能(AI)最新的进展重塑临床试验设计的关键步骤,以提高临床试验成功率. 名词 AI:Artificial Intelligence,人工智能 Association rule m ...

  5. 里恩EDC论临床试验中与第三方中心实验室实时电子化传输和接收的技术实现以及风险应对

    在一些使用中心实验室统一检测的临床试验中,涉及到受试者样本检测时,各个现场的研究者采集受试者样本,然后将样本以及纸质检验申请单发送至中心实验室,中心实验室根据纸质申请单录入系统,对样本进行检测,检测完 ...

  6. 阿尔茨海默病临床试验中静息脑电节律的测量

    电生理专业兴趣领域(EPIA)和全球大脑协会对阿尔茨海默病(AD)临床试验中候选脑电图(EEG)测量方法的推荐得到了认可.专家组审查了该领域的文献.最一致的发现是,轻度认知障碍和痴呆的AD患者在疾病进 ...

  7. 筛查、随访,临床试验中受试者安全、获益的重要保障

    在临床试验过程中,受试者通过知情同意书,可以对这项试验有一个整体的了解,明确试验过程中需要做的所有事情. 在知情同意后,临床试验又进入了一个非常重要的环节--筛查期,这也是受试者进入临床试验的第一个关 ...

  8. 临床试验中lm是什么职位_据说!这是离临床试验成功最近的职位之一

    在临床试验的方案,总是会有那么一部分,心理也清楚这部分很重要,然而见到之时,却是每个字都认识,凑在一起就是迷糊兮不知所云.大家可猜到了?来源:网络 就是统计部分啦~ 那又是什么岗位的人做着这部分工作呢 ...

  9. 临床试验中edc录入_基于EDC的临床试验数据质量控制

    自CFDA(2012) 颁布"临床试验数据管理工作技术指南"[以来,经过国家主导的大规模临床稽查,我国临床试验数据质量受到空前的重视.申办方.合同研究组织 (CRO).研究者等充分 ...

  10. SAP中CK11N成本估算的取价逻辑

    SAP中CO模块的标准成本估算根据采购业务及取值策略不同有所区别.但通常是取值于相关采购文档,如采购信息记录,采购订单,采购合同等.在现实业务中,同一物料可能会有多个不同供应源,就相应会有多个采购价格 ...

最新文章

  1. Linux 小知识翻译 - 「端口限制」
  2. mysql 优化语句
  3. boost::gregorian模块实现测试时钟的测试程序
  4. Redis快的原因:内存操作 单线程没有切换开销 多路复用IO
  5. 代码审计XSS 0day
  6. 在 CloudFoundry 环境下开发 multitenant 应用的一些基本概念
  7. datastage 重启 续
  8. java静态类堆栈_Java回归学习-面向对象内存分析-堆栈
  9. Android 四大组件学习之ContentProvider五
  10. 【高级开发必掌握SQL】SQL优化篇
  11. matlab不用hist画直方图,matlab可以画直方图
  12. 计算机测色配色应用,计算机测配色方法及注意事项
  13. 关于android的Haxm报错调试问题
  14. 60所大学计算机具有博士点,全国具有测绘科学与技术学科博士点、硕士点的高校及科研院所名单...
  15. Word不能编辑文档怎么办,文档修改了不能保存怎么办
  16. 电脑网线连接树莓派并登录
  17. mysql下出现Unknown column ‘id‘ in ‘on clause‘的解决方法
  18. 最喜欢 - 十年生死两茫茫
  19. ERROR Plumber found unhandled error: Error in plugin gulp-htmlmin
  20. eth 创建钱包,转账 web3j

热门文章

  1. openbci脑电帽3d打印文件下载
  2. 凯恩帝k1000ti参数设置_K1000TII标准程序调试参数说明
  3. 很酷的软件WinDirStat
  4. 女生考华为IE会容易一点吗?女生做网工一般是什么岗位呢?找工作容易吗?需要出差吗?以后怎么发展呢?
  5. C语言全局变量和局部变量的范围以及区别
  6. 自抗扰控制器-6线性自抗扰控制器LADRC
  7. ubuntu挂载windows分区
  8. (附源码)spring boot企业合同管理系统 毕业设计 161456
  9. php 人民币格式化,用PHP解析时格式化货币
  10. 史诗级Java入门教程,想成为初级程序员看他就够了