R数据分析:临床预测模型的样本量探讨及R实现

文本的大部分内容来自下面的文献:

Riley R D, Ensor J, Snell K I E, Harrell F E, Martin G P, Reitsma J B et al. Calculating the sample size required for developing a clinical prediction model BMJ 2020; 368 :m441 doi:10.1136/bmj.m441

这个文章是今年2月份瞅见的,本来那个时候就想写出来分享给大家,奈何我太懒了,成功托到了11月,哈哈哈。刚好最近有粉丝问临床预测模型的样本量,就捡回来这篇文章分享给大家。

一个变量10个样本?

“一个变量最少需要10个样本”,这句话是很多同学开题报告样本量计算时候都要说的一句话(有些同学说的15个,有些说20个,都是可以在上面这个文章中找到参考文献的),确实有这么个法则,英文叫做10 events per variable 缩写为(10 EPV),就是每一个变量就应该有10个样本,确切地说应该是你估计多少个β,你就最少需要10β个样本,比如你的预测变量有分类变量,转化为哑变量的时候我们估计的β其实是变多的,所以这一点也需要考虑进去,比如对于有3个水平的分变自变量,这么一个变量其实是需要最少20个样本的。同时如果你的模型考虑预测变量的高次项,这个时候一个变量对应的β值也变多了,也需要提高样本量。

所以说大家最好不要说一个变量对应10个样本,而应当改成1个待估参数对应最少10个样本。

这么一个简单而广泛使用的标准,也是有争议的。当然大家还是依然可以用哈,没人会对大家要求这么高的,只不过作者在文章给出了一个更加好的预测模型样本量计算方法。

样本量计算4步法

4步法是van Smeden and Riley et al提出来的,其基本思想是从4个方面考虑一个预测研究的样本量,然后取4个考虑中最大的样本量作为我们的最终样本量。

一是考虑我们的样本量能够准确估计结局的发生率(2分类)或者结局均值(连续)。

对于分类结局,我们有样本量计算公式

这个也是大家统计课本上的样本量计算公式

两个公式一样的,都是为了估算分类结局的率。

就是这个方法首先考虑我们的样本量能够合理估计出结局的发生率,或者发生水平。

第二步是确定使得我们模型预测误差最小的样本量。对于分类结局来说,模型预测误差最小需要考虑预测变量个数,预计结局占比,平均结局误差这3个指标,用下面的公式算:

n就是需要的样本量,分子上面的3个符号分别代表预计结局占比,预测变量个数,平均结局误差。通过这一步计算出来的样本量能够使得模型预测误差最小。

第三步是考虑减少过拟合的最小样本量,就是样本量越少越容易过拟合,我们得将样本量扩大到过拟合不再是问题的程度。这个时候对于分类结局的样本量估计我们需要考虑预测变量个数,期望结局占比,期望模型表现Cox-Snell R squared statistic (R2cs)这3个指标。样本量计算公式如下:

其中s一般取0.9(这是个防止模型过拟合惩罚极端值的一个指标),P是预测变量个数,R2cs越小越好,一般取0.1,所以对于一个20个预测变量,s取0.9,R2cs取0.1时我们需要的样本量按上面的公式算出来就应该是1698个。

第4步是考虑模型优化的问题,我们的样本量要使得我们的模型R2和最优模型R2的差异最小,算法如下,反正我也看不太懂,然后反正大家记住R2cs和max(R2cs)都是自己设定,p是预测变量个数:

上面的4个步骤其实就是做预测模型的时候要考虑的4个标准,每个标准都有相应的样本量要求就产生了4个样本量,最终我们是取4个样本量中最大的那个作为我们预测模型的最终的样本量就可以了。

样本量计算的R实现

理论部分很难懂哦,反正我们知道我们需要从多个方面去考虑一个临床预测模型的样本量计算问题,更重要的是我们掌握整个样本量的计算方法就行。作者的论文中是有stata的代码的,这儿给大家写一个R语言的实际例子,预测模型大家做的多的还是二分类结局,所以我们就完整地走一个二分类结局样本量计算的4步法,4步如下图:

掌握了这4步对大家前瞻性研究设计,回顾性研究确定预测变量个数都是蛮有好处的:

The calculations are especially helpful when prospective data collection (eg, new cohort study) are required before model development; however, they are also relevant when existing data are available to guide the number of predictors that can be considered.

并且,整个4步在R语言的pmsampsize函数中一下就搞定。大家可以去瞅瞅pmsampsize的函数说明。

比如我现在要设计一个二分类变量为结局变量的预测模型,我估计我要纳入24个预测因素,结局的发生率为17.4,估计R-squared为0.288,那么我就可以直接写出代码:

pmsampsize(type="b",rsquared=0.288,parameters=24,prevalence=0.174)

运行后即可得到结果,结果中有默认的模型和最优模型的差异,有默认的容许误差,最终计算出的我们需要的样本量为668个。

当然啦pmsampsize还可以计算连续变量结局和生存数据结局的预测模型所需要的样本量,大家可以去瞅瞅函数说明哈。

小结

今天给大家写了临床预测模型的样本量的计算方法,希望大家知道除了1个变量10个样本这个傻瓜法则之外还有更好的方法。感谢大家耐心看完,自己的文章都写的很细,代码都在原文中,希望大家都可以自己做一做,请转发本文到朋友圈后私信回复“数据链接”获取所有数据和本人收集的学习资料。如果对您有用请先收藏,再点赞分享。

也欢迎大家的意见和建议,大家想了解什么统计方法都可以在文章下留言,说不定我看见了就会给你写教程哦,另欢迎私信。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,491评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,856评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,745评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,196评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,073评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,112评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,531评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,215评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,485评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,578评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,356评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,215评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,583评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,898评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,497评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,697评论 2 335

推荐阅读更多精彩内容