医学和生信笔记

其他

R语言实战医学统计,更新(付费用)

关注公众号,发送R语言或python,可获取资料💡专注R语言在🩺生物医学中的使用设为“星标”,精彩不错过R语言是一门编程语言,但同时也是一个统计软件,R语言是由统计学家开发的,所以天生就适合做统计。很多刚接触R语言的朋友不知道如何入手,只知道目前R语言在临床医学领域很火爆,做统计分析、画图、做生信分析、孟德尔随机化、数据库挖掘等都离不开R语言。万事开头难,我非常理解新手面对R语言的痛苦,因为我也是从0开始的,作为从未接触过编程的医学生/医生来说,初学R语言简直就是读天书!这个系列也是我最开始学习R语言时的笔记,在我的公众号:医学和生信笔记,都可以找到,现在对原内容进行重新整理,并把数据一起打包,方便有需要的同学学习。本书共分为3个部分,分别是基础统计分析、高级统计分析、文献中常见的方法,这个系列很适合初学者(初学者,不是零基础者),其中的基础统计分析部分是按照课本来的,使用R语言复现课本中的例题,得到结果后可以与课本对照!我使用的课本是孙振球主编的《医学统计学》第4版(第5版和第4版内容变化不大)。本书实际上是我公众号历史推文的汇总(部分内容有改动),书中涉及的所有数据都可以在相关历史推文中免费获取(推文的正文或者评论区都会给出获取方式),代码也是复制粘贴即可!推文合集链接:医学统计学同时我也把这些内容通过github
2023年12月30日
其他

医学统计R语言实战PDF版合集(bookdown重制版)

关注公众号,发送R语言或python,可获取资料💡专注R语言在🩺生物医学中的使用免费千人🐧QQ交流群:613637742常见医学统计方法的R语言实现请戳:👇常见医学统计方法R语言实现合集(含数据及代码)前段时间把公众号发布过的医学统计学系列的教程汇总了一下,出了一个合集:常见医学统计方法的R语言实现不过之前的PDF版本是由markdown生成的,后来有大佬告诉我bookdown效果更好,于是最近学习了一下bookdown,把医学统计系列重新生成了一遍,真的是太精美了,比之前好看多了!目录部分如下:格式排版真的是太好看了,bookdown真的是强啊!部分内容如下:目前可能还有一些瑕疵,因为对LaTeX不是很懂,编译成PDF格式只能用一些现成的模板,后期会继续改进(虽然我觉得已经很好看了)。由于之前本合集设置了付费,所以这本PDF书不能免费送给大家(后面可能会做个网页版,比如github
2023年4月17日
其他

常见医学统计方法R语言实现合集(含数据及代码)

关注公众号,发送R语言或python,可获取资料💡专注R语言在🩺生物医学中的使用免费千人🐧QQ交流群:613637742R语言是一门编程语言,但同时也是一个统计软件!很多刚接触R语言的朋友不知道如何入手,只知道目前R语言在临床医学领域很火爆,做统计分析、画图、做生信分析都离不开R语言。万事开头难,我非常理解新手面对R语言的痛苦,因为我也是从0开始的,作为从未接触过编程的医学生/医生来说,初学R语言简直就是读天书!我最开始接触R语言是因为偶然间听师兄师姐说R语言可以做统计学,当时的我对SPSS的使用不熟练,觉得SPSS的使用步骤太多,难以记住,于是入了R语言的坑...没想到从此一发不可收拾,打开了新世界的大门。如果你是刚入门的小白,我首先推荐你了解下R语言的基础知识,比如R语言和R包安装(初学者请参考附录)、Rstudio的界面、R语言中数据类型(向量、矩阵、数据框、列表等)等。然后你就可以跟着本系列一起学习R语言在医学统计学中的使用。这个系列非常适合初学者,因为是按照课本来的,使用R语言复现课本中的例题,得到结果后可以与课本对照!我使用的课本是孙振球主编的《医学统计学》第4版,封面如下:前几天系统总结了2022全年有关医学统计的推文,出了一个合集:医学统计方法的R语言实现v2022考虑到部分人的需求,我把这部分内容重新整理排版,做成了PDF版合集,并把推文中用到的所有的数据和书籍电子版也一起打包,PDF中的代码可以直接复制粘贴,方便大家学习使用。全文一共473页!内容巨详实!给大家看一看目录部分:光目录就7页!以上内容全部整理到1个PDF中(PDF中的代码直接复制粘贴即可),图文并茂,彩色排版,内容丰富,方便有需要的朋友学习,同时合集内涉及的所有数据和书籍电子版也一并打包,datasets文件夹中是此次合集涉及的全部数据。下面是获取方式:
2023年2月16日
其他

医学统计方法的R语言实现v2022

关注公众号,发送R语言或python,可获取资料💡专注R语言在🩺生物医学中的使用免费千人🐧QQ交流群:613637742使用R语言进行医学统计分析是我学习R语言的初衷,所以医学统计方法的R语言实现一直本号的重要内容之一,通过整理这些推文,也确实让我进步颇多!本篇是对过去1年中,所有介绍过的医学统计方法的推文汇总。最开始想叫医学统计方法的R语言实现大全,但仔细想想,这些不过是九牛一毛,现在就叫大全,太不符合实际了!所以就叫医学统计方法的R语言实现v2022,这是一个阶段性的终点,同时也是一个起点,以后还会有v2023/v2024...我最开始学习时用的是笨方法,每一行代码都是我一个字母一个字母敲上去的,每一个数据都是我一个数字一个数字录进去的,后来随着学习的深入,才学会了直接读取不同格式的数据,不用自己录入数据了。所以前期的推文看上去代码略显笨拙,这些都是学习的痕迹!首先是梦开始的地方,一些常见的基础统计分析方法,比如t检验、方差分析、秩和检验、卡方检验、线性回归、logistic回归等,这部分内容很简单,SPSS也能很好的完成,对初学者来说甚至SPSS更简单,这部分所有的内容,我都是对照孙振球第4版医学统计学中的例题进行的,因为对初学者来说,使用其他数据很难判断自己做的到底对不对!书籍电子版和配套数据也都放在了QQ群中,方便大家下载使用。R语言和医学统计学系列(1):t检验R语言和医学统计学系列(2):方差分析R语言和医学统计学系列(3):卡方检验R语言和医学统计学系列(4):秩和检验R语言和医学统计学系列(5):多因素方差分析R语言和医学统计学系列(6):重复测量方差分析R语言和医学统计学系列(7):多元线性回归R语言和医学统计学系列(8):logistic回归R语言和医学统计学系列(9):多重检验R语言和医学统计学系列(10):正态性和方差齐性检验R语言和医学统计学系列(11):球形检验R语言和医学统计学系列(12):双变量回归与相关R语言和医学统计学:非参数检验的补充非参数检验的全能R包:PMCMRplusR语言和医学统计学系列:协方差分析R语言和医学统计学系列:样本量计算以上是base
2023年1月3日
其他

多指标联合诊断的ROC曲线

关注公众号,发送R语言或python,可获取资料💡专注R语言在🩺生物医学中的使用免费千人🐧QQ交流群:613637742关于ROC曲线,前前后后写了很多篇推文,关于二分类数据和生存资料的都有,目前只有多指标联合诊断的ROC曲线还没介绍了,今天就介绍多指标联合诊断的ROC曲线。多时间点和多指标的ROC曲线临床预测模型之二分类资料ROC曲线的绘制临床预测模型之生存资料ROC曲线的绘制ROC曲线(AUC)的显著性检验生存资料ROC曲线的最佳截点和平滑曲线ROC曲线纯手工绘制R语言计算AUC(ROC曲线)的注意事项ROC阴性结果还是阳性结果准备数据library(pROC)data(aSAH)str(aSAH)##
2022年12月31日
其他

R语言限制性立方样条回归

关注公众号,发送R语言或python,可获取资料💡专注R语言在🩺生物医学中的使用欢迎加入🐧QQ交流群:613637742前面用了2篇推文,帮大家梳理了从线性拟合到非线性拟合的常用方法,包括多项式回归、分段回归、样条回归、限制性立方样条回归,以及它们之间的区别和联系,详情请看:多项式回归和样条回归1多项式回归和样条回归2并且上一篇推文已经介绍了R语言实现多项式回归的内容:R语言非线性拟合:多项式回归今天主要介绍R语言实现立方样条回归。读过上面几篇推文的朋友想必已经知道了(没看过的建议先看看),样条回归包括很多种,限制性立方样条只是其中一种,更多的大家可以自己了解。线性的立方样条演示所用数据还是用上一篇的数据:rm(list
2022年12月29日
其他

R语言非线性拟合之多项式回归

关注公众号,发送R语言或python,可获取资料💡专注R语言在🩺生物医学中的使用欢迎加入🐧QQ交流群:613637742前面用了2篇推文,帮大家梳理了从线性拟合到非线性拟合的常用方法,包括多项式回归、分段回归、样条回归、限制性立方样条回归,以及它们之间的区别和联系,详情请看:多项式回归和样条回归1多项式回归和样条回归2今天用R语言实操。今天先介绍多项式拟合。多项式拟合我们用car包里面的USPop数据集进行演示。这个数据集一共两列,一列是年份,另一列是美国每一年的人口数量,数据一共22行。#
2022年12月28日
其他

样条回归(之二)——样条回归通俗介绍

上一篇文章提到,样条回归主要用于某些数据在不同的阶段或范围内有可能存在不一样的参数值,比如,可能0-10的范围内是一条斜率为1.6的直线,11-20范围内可能变成了斜率是1.2。你可以把它看做是一种分段回归,但又不是简单的分段回归。样条回归其实很难讲,因为这里面牵扯到各种数学的术语,我一般不大喜欢用数学术语来讲(其实是不懂),更喜欢用通俗的理解的语言来解释一个方法(可能更多的人也喜欢看这种方式)。所以,本文虽然讲样条回归,但尽量不提数学的事,尽量只用我自己学习消化后的白话说出来。当然,限于本人学识水平,有的可能理解不到位,解释的如有不妥,欢迎各位指正批评。首先,先把样条回归理解为是一个分段的回归,即将数据分成好几段,每一段分别有一个拟合的曲线。单是这一条,就说明,如果你的数据全部看起来都是一个趋势,那就没必要考虑样条回归,不用非得把事情复杂化,也不要为了用所谓的“高级方法”而用它(让人痛心的是,实际中喜欢用“高级方法”的人比比皆是,导致很多数据分析出现了用牛刀杀鸡的情形)。其次,样条回归又不是一个简单的分段回归。提到分段回归,看看下面这个图就知道什么意思。根据月份分成了两段,每段的回归模型不同,很明显,第一段回归的斜率高,第二段的回归斜率低。如果把数据直接混合起来,那可能会损失一些信息,发现不了这种不同阶段的变化趋势。分段回归基本上没什么限制,简单来说,你把数据分成几段,每一段分别拟合相应的直线、二次项、三次项等,根据实际情况而定。当然,也可以第一段拟合线性,第二段拟合二次项,虽然不多见。然后就分别解释就行了,比如,上面这个图,我们就可以说,第一段比第二段的变化速度更快。当然,有没有统计学差异,这需要做检验。再次,样条回归可以看做是分段回归,但又不是简单的分段回归。分段回归不是不好,但有些地方可能跟实际有点出入。从上图可以看出,在节点处,两个直线截然分开,没有连接,这叫做“跳跃”。这种跳跃在有些情况下没有问题,但有些时候,可能会有问题。例如,如果横坐标是体重,把体重分为两段,分别分析每一段里体重与某指标的关系。往往体重不大可能突然在某一天上升10公斤或者下降10公斤,应该是一个缓慢变化的过程,也就是说,他们应该是连在一起的。所以,样条回归是加了约束条件的分段回归,加了一个连续性,也就是要求在节点处连续。就像下图红色线。图中的红线是保证连续的分段回归,蓝线是直接拟合的直线回归。这样看来,样条回归就跟简单的分段回归不大一样了。当然,由于加了约束条件,正常情况下会导致其拟合效果稍差于分段回归,但可能更合理。再再次,前面我们展示的,还都只是比较简单的直线回归,也就是线性样条,但有些数据太过于复杂,线性样条不足以很好拟合,所以还可以考虑多项式样条,也就是在每一段分别拟合多项式。但是作为多项式就更加麻烦,不仅仅是要求节点处连续,还要求连续的好看且自然。什么叫自然呢?比如下面这个图,虽然也连起来了,但看起来始终觉得有点别扭对不对?(手头没有现成数据,懒得生成了,直接画个示意图)而下面这个示意图感觉就自然了一些。所以,画图要追求自然。当然啦,追求美这只是一方面原因,其实更深层次的原因是计算问题,这又要说到数学的求导问题,你要求出估计结果,就要连续且连的自然。最后,多项式样条看起来已经不错了,但是大家发现,往往在曲线的两头,预测的区间会非常宽。为了解决这个问题,就再加一个边界限制的约束条件,使得两边的预测准确一些。这种加了这么多约束条件的,就叫做自然样条。所以,大家可以看到,回归样条就是这么一步步来的。其实说穿了也很简单,不过本文没有深入介绍其背后原理,为什么呢?第一,太深的我也不懂,即使懂了,有的也真的难以用白话解释出来,越到深层次的原理,越发现难以通俗解释,很多就是只能意会。第二,大多数的统计学习书中都有原理介绍,但鉴于临床大夫或公卫学生对这些不大感兴趣(因为本人是医学统计领域,面向的也是以医学为主),所以只介绍到这里。真对此感兴趣的,自然会去查阅更深入的文献,也不会因为我没有介绍而停止对样条回归的探索。
2022年12月27日
其他

样条回归(之一)——为什么要用样条回归

要讲好一个完整故事,就得先从一开始讲起,比如我们经常用的开场白就是“很久很久以前,有一个……”。有时甚至一开始出场的并不是主人公,这也是必须的。比如《射雕英雄传》先出场的并不是郭靖,《白发魔女传》先出场的也不是白发魔女。同样,要了解一个统计学方法,往往也得这样。所以,虽然我们这个题目是样条回归,但想要了解样条回归,却必须从其它的方法开始讲起。我们要先行直线回归开始讲起。(1)直线回归直线回归大家一般都知道是干什么的,用来描述两个变量的直线关系。比如下图,我们用一条直线描述身高和体重的关系。直线回归很容易理解,也很容易解释,通常就是说,自变量x每增加1个单位,因变量y变化有多大。如果现实中所有的现象都可以用直线回归,那就完美了。可惜的是,直线回归能用来描述的实际问题太少了,现实中绝大多数的关系都不是直线关系。这种情况下,就必须用其他的回归来拟合了。(2)从直线回归到多项式回归直线回归比较常用的替代方法是多项式回归,事实上,直线回归也可以算是多项式回归的特例,也就是一次项。不过一般我们所说的“多”,都是指2个以上,所以一般把直线回归和多项式回归分开。所谓的“项”,也就是我们在初中学到的次方,比如二次方、三次方。所以,直线回归,我们如果用公式来表示,那就是:y=a+bx二次项回归,用公式表示,就是在直线回归的基础上,增加一个二次项:y=a+bx+bx^2(x^2表示x的平方)如果用图形来表示,二次项回归,就是曲线拐了一个弯,就像下面这个图:对于这种非直线的点,你如果强行用直线回归,结果会让你很失望(当然,实际数据往往没有这么明显,很多时候也许你并不经意间就把非线性的关系用直线回归给做了,甚至可能也发表文章了,更甚至审稿人也没看出来)。比如上面这个数据,如果你用直线回归,你会发现结果非常不靠谱(下图中的绿色直线),根本无法体现x和y的真正关系。多项式回归可以在一定程度上很好地解决非直线的问题。古龙曾说过,没有什么数据是不能用一个3次项来解决的,如果有,那就用4次项、5次项、6次项、……(原话可能说的是酒)。总之,只要你的项数足够多,一定能完美拟合数据。(3)多项式存在的问题然而,有一个问题就是,随着项数的增多,尽管可以对数据拟合越来越好,但随之而来的问题是过拟合。也就是说,在现在这个数据上拟合效果是很完美,然而一旦换个数据,很可能效果就很差。比如下面这两个变量,time和y的关系,可以看出,从直线一直到6次项(更多的就不加了,否则图要看不清楚了),R2是逐渐增加的,分别是0.82,
2022年12月26日
其他

单因素分析到底有没有必要做?

前一篇文章通过一个例子提到了,在筛选危险因素中,如果先做单因素分析,然后以一定的统计学水准(如P
2022年12月25日
其他

“先做单因素,有意义的做多因素”——要不要这种思路?

上一篇文章通过一个例子说明,不少人经常用到“先做单因素分析,然后把单因素分析中有统计学意义的变量纳入多因素分析”这种思路在有些情况下未必可靠。其实这里关键的问题就是:到底有没有必要做单因素分析?如果做单因素分析,是不是只把单因素分析中有意义的变量纳入多因素分析,而没有统计学意义的变量就不用纳入多因素分析了?这个问题其实没有完全统一的答案,不同的统计学家也有自己的想法和观点,所以本文所提到的观点,仅是个人见解,有不同意本文观点的,纯属正常。我们先把上一篇文章留下的疑问解释一下,其实这个问题也有不少人问过我,说:有没有可能单因素分析没有统计学意义,而多因素分析变得有统计学意义了。我的回答是:有可能。上一篇文章就是这种情况。那么,为什么会出现这种情况?我们来仔细分析一下。正常情况下,lx变量在单因素和多因素分析中结果差别这么大,通常都是跟其它变量的影响有关系。所以,我们从4个自变量的相关性入手来看。如果看一下4个自变量的相关性,你会发现,其实a、b、c这3个变量对lx的影响都不大,相关系数都为-0.1左右(这算不上很大的相关)。然而如果仔细观察,你会发现另一个有意思的现象:a、b、c这3个变量与lx变量的相关都是负的,相关系数都为负数。这就能说明一定问题了。尽管a、b、c三个变量每一个对lx变量的影响都不大,然而3个都一起影响,那就有可能产生一定的作用了。说的通俗一点,由于a、b、c这3个变量对lx变量的影响都是负的,而a、b、c与y的关系又都是正的,这就是说,单因素分析中,当分析lx与y的关系的时候,其实a、b、c这3个变量都扯了二者关系的后腿。用大家熟悉的一部经典美剧来说明这个意思。我想大家可能都看过《friends》(最经典的美剧,没有之一),其中第三季第9集中,6个人组队玩球,最后3个男生一组,三个女生一组。Joey抢到球往前跑的时候,Rachel先跑过去抱住Joey的脖子,以阻止Joey往前跑,这就是扯后腿。然而三个女生很快发现,仅靠一名女生扯后腿的力量有限,Joey仍在继续跑,所以Monica和Phoebe继续各自拽住Rachel的腿往后拉,这时候Joey的速度就明显慢了。也就是说,三个女生,每个人往后拉Joey的力量都不大,然而三个一起就大多了。本例的解释其实跟这个是一个意思。在本例中,a、b、c这3个变量每个对lx变量的扯后腿的作用都不是很大(相关系数都不大),然而三个同时对lx变量有负相关,合起来就有影响了。所以,当我们看一下偏相关系数(也就是校正了a、b、c这3个变量后,lx变量与y的纯相关),就会发现lx与y的相关性(相关系数为0.3511)明显高于一开始二者的关系(相关系数为0.1912)。同样,如果做回归分析,单因素分析中,lx变量与y的关系如下图所示。而校正了a、b、c这3个变量的多因素分析中,lx变量与y的关系则变成了下面的样子。可以看出,斜率更大了。当然,这只是本例的特例,实际中未必所有数据都是这样。所以我一般喜欢说“具体问题具体分析”,不是故弄玄虚,而是真的如此。每个数据都不一样,没有办法说一个统一的、完全标准的分析过程。也许在有的数据中,“先做单因素分析,然后把单因素分析中有统计学意义的变量纳入多因素分析”,这种思路并没有问题;但在有的数据中,可能就有问题。那么什么情况下有可能会出现“单因素分析没有统计学意义,而多因素分析中有统计学意义”这种现象?其实本例已经给了一个很好的答案,如果其它变量(如a、b、c)与研究变量(如lx)之间是负向关系,而研究变量(如lx)与因变量(如y)之间是正向关系,且其它变量(如a、b、c)与因变量(如y)之间也是正向关系。这时候就很容易出现“单因素分析没有统计学意义,而多因素分析中有统计学意义”。所以,其实如果说实际中到底要不要“先做单因素分析,然后把单因素分析中有统计学意义的变量纳入多因素分析”这种思路?我个人的观点是比较明确的:决不能照搬这种思路。有时会让你错失发现数据真相的机会。其实数据分析本来就不是很容易的,有时我给别人说完一些分析思路,他们会很疑惑:这么麻烦啊?也许,在很多非统计学专业的人的眼中,统计分析无非就是跑跑软件,出个结果。现实中确实也有很多人就是这么做的。然而,真正的统计学家不会这么做,有些复杂数据有时都得花费十天半月(甚至几个月都有可能)来考虑。可能有的人看完这个例子后,疑惑更多了:那我到底该怎么分析?到底要不要做单因素分析了?如果做单因素分析,到底什么样的变量该纳入多因素分析?限于篇幅,这些问题留待下一篇文章再详细阐述。所以,预知后事如何,且听下回分解。觉得本公众号有用的朋友,如果想赞助,无需赞赏,帮忙点一下广告即可。只要点开即可,是否购买无所谓。也算是对本人时间和精力付出的一点回报吧。
2022年12月24日
其他

“先做单因素,有意义的做多因素”——这种思路对吗?

很多人在做多因素分析的时候,往往都按这种方式:首先把所有因素挨个做个单因素分析,然后单因素分析有意义的变量,再放到多因素分析中,最后得到一个多因素分析模型。然后完事,发表文章。当然,在单因素分析的那一步,有的人用0.05作为水准,P小于0.05的变量纳入多因素,有的则以0.1或0.15、0.2等为水准,P小于0.1或0.15、0.2的变量才纳入多因素分析。无数人都曾问过我这个问题:我先做单因素分析,再做多因素分析,这种做法对吗?或者说:别人发表的文章,全都是这么做的,所以我也这么做。那么,这种方式到底对不对?我们今天就来讨论一下。首先,公布答案:没有所谓对不对。也可以说对,也可以说不对。注意这里我不是打禅机,也不是卖关子,而是确实如此。其实,严谨的说法就是:具体问题具体分析,有时这么做没问题,有时会有问题。但有一点是很明确的:决不能死板地完全按这一规则来分析。可能你现在还不是很明白,我们通过一个例子来说明。有1个因变量y,4个自变量a、b、c、lx,假定我们更关注lx这个变量,但其他变量也关心(我想临床医生应该明白我在说什么。很多情况下,临床医师虽然说是筛选危险因素,其实心里还是有倾向性的,更希望自己心目中的变量有意义)。先看单因素分析结果如下:看到这里,估计有的人心里就得咯噔一下,心里最希望的变量lx,偏偏没有统计学意义。如果按常规的思路,单因素分析的P值这么大,无论如何也入选不了多因素分析。通常我们会在单因素分析中把检验水准稍微设的宽松一些,但除非这里设到0.3,否则即使在0.25的检验水准上,依然无统计学意义。那是不是说,我们后面就把a、b、c三个变量纳入多因素分析,不管lx这个变量了呢?先别着急,我们先不管单因素分析结果,直接把4个变量都放入多因素分析,看看结果什么样子:是不是有点震惊和意外之喜?本来都不抱希望的变量lx,在多因素分析中竟然有统计学意义了!世界观都要塌了是不是?老师教我们的”先做单因素,有意义的再做多因素“这条规则到底靠不靠谱了?本例中,如果按我们传统的思维,”先做单因素,有意义的再做多因素“,变量lx根本连进入多因素分析的资格都没有,更谈不上有没有什么统计学意义了。然而,如果抛开这个规则,全部都纳入,结果lx变得有统计学意义了。那问题来了,到底要不要遵循这一默认的规则(是不是有效,那是另一回事,但确实非常多的人都在遵循这一规则)?关键是,这是不是意味着:以往我们发表的文章,里面也可能有这种情况存在呢?那到底有多少数据因为完全遵循这一规则而没有发现本来应该有意义(却没有发现有意义)的变量呢?多少的变量因为在单因素分析中没有统计学意义(有可能在多因素分析中有意义)而被无情地抛弃了?所以,统计分析是没有什么太多规则的,决不可墨守成规,如果真要说一个规则,那只有一个,就是:具体问题具体分析。每一份数据都有自己的独特性,都有自己的结构和特点,即使研究目的、研究变量完全一样,也不见得采用的方法应该都一样。如果你实在搞不懂,而这份数据的分析又很重要,那一定要去找统计学家合作。往往很多人觉得,回归分析嘛,很简单,软件里面一放,就出来结果了。然而,这也是软件带来的最大弊端,能给你结果,但不保证给你真实的结果。那怎么办呢?如果一项研究前期花了你很多精力、金钱、时间,那千万不要吝啬最后的一点时间、金钱,一定要去找统计学家合作,让他来帮你仔细分析。否则,往往你觉得结果已经出来了,实际上只是一个错误的结果。可能很多人想了解的是:为什么会这样?我到底应该怎么注意?实际中什么时候可以按”先做单因素,有意义的再做多因素“这种思路来分析,什么时候不应该按这种思路来分析?这个问题,我先卖一个关子,留到下一篇文章中详细解释。为什么呢?我希望大家先思考一下,而不是简单地看答案。当然,为了让感兴趣的读者能够仔细考虑这一问题,我把数据放在后面,下面这5个变量,依次是a、b、c、lx、y。有兴趣的朋友可以copy下来自己分析一下试试。43110501.822935086733.6763105601.796747010726.6759100601.663926097723.0078100601.874874375926.0067100601.989243273828.0065119611.735189117730.3366120641.631199404227.0073130881.856297990447.0053113681.483874689527.6776120701.435084525337.3376136701.682688374235.6776130701.597365331231.3368126701.517322623532.3361136701.690095815530.6778124701.749199854837.6780110701.543298109936.0074140702.159868790841.0075130701.890095369941.6766130701.925707441722.0055114702.017566138023.3371120701.597365331225.6762130701.523880024125.0069130701.449269160327.0045110702.323367632229.0079120701.865629317830.3358110701.547562508727.0065100701.801709800128.0044119701.713797927822.3353110702.639057329629.3362130721.986503546043.0062118721.378766094727.3353122741.378766094718.3371130751.329724009631.0054116751.470175845122.3364120761.885553348530.0071140781.740466174835.6750121781.662030362640.3351138801.731655545234.67觉得本公众号有用的朋友,如果想赞助,无需赞赏,帮忙点一下广告即可。只要点开即可,是否购买无所谓。也算是对本人时间和精力付出的一点回报吧。
2022年12月22日
其他

为什么单因素分析和多因素分析的结果不一样?

我在前面的所有文章,主要是以单因素分析为主,比如t检验、卡方检验、方差分析等这些,都是单因素的方法。后面会逐渐介绍一些常见的多因素分析的方法,而且会把单因素和多因素分析统一起来,把常见的一些方法统一起来。今天这篇文章,先从问题入手,给大家解释一个最常见的问题,也是临床大夫最常问的一个问题,那就是:为什么我用单因素分析,结果和多因素分析不一样?当然,今天仅对一个例子解释,并不是很全面,但可以作为一种思路,给大家借鉴一下。后续文章会逐渐深入介绍一些多因素分析中的问题和思路。下面说一个例子,目的是分析某药物治疗身高后,身高有所变化,这种变化的影响因素有哪些?有一个因变量,即身高的变化情况(已做标准化);有3个自变量,分别是用药前身高(已做标准化)、用药时长、初始骨龄。分析这3个变量哪个对身高变化有影响。这是一种很常见的分析思路,探讨危险因素。首先,我们先看单因素分析结果,如下图所示:
2022年12月21日
自由知乎 自由微博
其他

p for trend/ p for interaction/ per 1 sd 的R语言实现

sd的R语言实现,关于每一项的具体含义,可参考文中给出的链接,或者自己搜索学习。这几个概念在统计学课本是找不到的,但是在临床研究的SCI论文中经常见到,所以有必要学习它,了解它,实现它!P
2022年12月14日
其他

R语言倾向性评分:加权

matching)、倾向性评分回归和分层:R语言倾向性评分:回归和分层R语言倾向性评分:匹配今天继续介绍倾向性评分最后一个重要的部分:倾向性评分加权。主要介绍两种加权方法:逆概率加权(inverse
2022年12月11日
其他

R语言倾向性评分:回归和分层

关注公众号,发送R语言或python,可获取资料💡专注R语言在🩺生物医学中的使用欢迎加入🐧QQ交流群:613637742倾向性评分有4种应用,前面介绍了倾向性评分匹配及matchIt和cobalt包的使用:R语言倾向性评分:匹配今天说一下倾向性评分回归和分层。使用了一个不是很成功的案例,并使用了大量purrr风格的代码实现。演示数据下面这个例子探讨不同学校对学生成绩的影响,这个数据一共有11078行,23列,我们只用其中一部分数据演示倾向性评分回归和分层。我们用到以下几个变量:catholic:是我们的处理因素,1是天主教(catholic)学校,0是公立(public)学校,c5r2mtsc_std:结果变量(因变量),标准化之后的学生成绩,race_white:是否是白人,1是0否,w3momed_hsb:妈妈的教育水平,1高中及以下,0大学及以上,p5hmage:妈妈的年龄,要控制的混杂因素,w3momscr:妈妈的成绩,w3dadscr:爸爸的成绩。首先加载数据,已上传到QQ群,需要的加群下载即可。library(tidyverse)ecls
2022年12月6日
其他

R语言倾向性评分:匹配

关注公众号,发送R语言或python,可获取资料💡专注R语言在🩺生物医学中的使用欢迎加入🐧QQ交流群:613637742本文目录:准备数据matchIt包进行PSM使用随机森林计算PS主要匹配方法选择匹配后数据的平衡性检验cobalt包统计检验衡量均衡性结果可视化不平衡怎么办?其他问题参考资料倾向性评分(Propensity
2022年12月4日
其他

Fine-Gray检验、竞争风险模型、列线图绘制

关注公众号,发送R语言或python,可获取资料💡专注R语言在🩺生物医学中的使用欢迎加入🐧QQ交流群:613637742竞争风险模型(Competing
2022年12月2日
其他

R语言生存曲线的可视化(超详细)

关注公众号,发送R语言或python,可获取资料💡专注R语言在🩺生物医学中的使用欢迎加入🐧QQ交流群:613637742survminer是专门用来进行生存分析可视化的R包,主要函数如下:生存曲线ggsurvplot():arrange_ggsurvplots():ggsurvevents():surv_summary():surv_cutpoint():pairwise_survdiff():Cox模型的诊断ggcoxzph():ggcoxdiagnostics():ggcoxfunctional():Cox模型总汇总ggforest():ggcoxadjustedcurves():竞争风险模型ggcompetingrisks():关于Cox模型诊断和汇总在之前的推文中已经进行过详细的讲解:R语言生存分析:Cox回归本次主要介绍生存曲线的绘制及细节。演示数据使用survival包中的lung数据集用于演示,这是一份关于肺癌患者的生存数据。time是生存时间,以天为单位,status是生存状态,1代表删失,2代表死亡。library(survival)library(survminer)str(lung)##
2022年11月27日
其他

R语言时依系数和时依协变量Cox回归

关注公众号,发送R语言或python,可获取资料💡专注R语言在🩺生物医学中的使用欢迎加入🐧QQ交流群:613637742之前分别介绍了生存分析中的寿命表法、K-M曲线、logrank检验:R语言生存分析的实现以及Cox回归的构建、可视化以及比例风险检验的内容:R语言生存分析:Cox回归本次主要介绍如果数据不符合PH假设时采取的方法。时间依存协变量的Cox回归和时间依存系数Cox回归关于时依协变量、时依系数的基础知识,大家可以参考这几篇文章:survival包的案例介绍:Using
2022年11月26日
其他

R语言生存分析:Cox回归

关注公众号,发送R语言或python,可获取资料💡专注R语言在🩺生物医学中的使用欢迎加入🐧QQ交流群:613637742上次介绍了生存分析中的寿命表、K-M曲线、logrank检验、最佳切点的寻找等,本次主要介绍Cox回归。本推文不涉及理论,只有实操,想要了解生存分析的理论的请自行学习。Cox回归使用survival包中的lung数据集用于演示,这是一份关于肺癌患者的生存数据。time是生存时间,以天为单位,status是生存状态,1代表删失,2代表死亡。rm(list
2022年11月25日
其他

R语言生存分析的实现

关注公众号,发送R语言或python,可获取资料💡专注R语言在🩺生物医学中的使用欢迎加入🐧QQ交流群:613637742生存分析是临床常用统计方法,一旦和时间扯上关系,分析就变得复杂多了,此时不再是单一的因变量,还需要考虑时间给因变量和自变量带来的各种影响。本次主要演示R语言做生存分析的一些方法。比如寿命表、K-M曲线、logrank检验。后续还会给大家介绍Cox回归、时依系数和时依协变量的Cox回归、生存曲线的可视化等内容。本推文不涉及理论,只有实操,想要了解生存分析的理论的请自行学习。不涉及理论,并不代表理论不重要,在以后的机器学习和临床预测模型的相关推文中,会经常用到这些理论,建议大家学习一下。生存过程的描述library(survival)library(survminer)使用survival包中的lung数据集用于演示,这是一份关于肺癌患者的生存数据。time是生存时间,以天为单位,status是生存状态,1代表删失,2代表死亡。但是一般在生存分析中我们喜欢用1代表死亡,用0代表删失,所以我们更改一下(其实不改也可以,你记住就行)。df
2022年11月24日
其他

R语言计算AUC(ROC曲线)的注意事项

关注公众号,发送R语言或python,可获取资料“医学和生信笔记,专注R语言在临床医学中的使用、R语言数据分析和可视化。主要分享R语言做医学统计学、临床研究设计、meta分析、网络药理学、临床预测模型、机器学习、生物信息学等。💡专注R语言在🩺生物医学中的使用之前的推文中介绍了ROC曲线的本质以及两面性:
2022年11月23日
其他

ROC曲线纯手工绘制

关注公众号,发送R语言或python,可获取资料“医学和生信笔记,专注R语言在临床医学中的使用、R语言数据分析和可视化。主要分享R语言做医学统计学、临床研究设计、meta分析、网络药理学、临床预测模型、机器学习、生物信息学等。💡专注R语言在🩺生物医学中的使用之前给大家介绍了很多画ROC曲线的R包和方法:
2022年11月22日
其他

ROC阳性结果还是阴性结果?

关注公众号,发送R语言或python,可获取资料“医学和生信笔记,专注R语言在临床医学中的使用、R语言数据分析和可视化。主要分享R语言做医学统计学、临床研究设计、meta分析、网络药理学、临床预测模型、机器学习、生物信息学等。💡专注R语言在🩺生物医学中的使用关于ROC曲线的内容很重要,无论是在医学统计、机器学习,还是临床预测模型中,都是很重要的内容,大家务必要掌握!大家都知道ROC曲线的横坐标是假阳性率,纵坐标是真阳性率,根据数据,我们可以计算很多个假阳性率和真阳性率,然后就可以在坐标轴上画出很多个点,把这些点连接成线就是ROC曲线了。那这些横纵坐标的值到底是怎么计算的呢?假如,我想根据ca125的值判定一个人到底有没有肿瘤,找了10个肿瘤患者,20个非肿瘤患者,都给他们测一下ca125,这样就得到了30个ca125的值。set.seed(20220840)ca125_1
2022年11月21日
其他

我常用的缺失值插补方法

关注公众号,发送R语言或python,可获取资料💡专注R语言在🩺生物医学中的使用欢迎加入🐧QQ交流群:613637742有的时候,面对一个有缺失值的数据,我只想赶紧把它插补好,此时的我并不在乎它到底是怎么缺失、插补质量如何等,我只想赶紧搞定缺失值,这样好继续进行接下来的工作。今天这篇推文就是为这种情况准备的!之前介绍过一个非常好用的缺失值插补R包:R语言缺失值插补之simputation包,支持管道符,使用起来非常简单且优雅,而且支持的方法的也非常多。但是它有一个最大的问题,不能一次性填补整个数据集的缺失值。比如我有一个数据集,我知道它有缺失值,但是不知道在哪些列,但是我只想快速填补所有的缺失值,这时候这个R包就点力不从心了。关于R语言中的缺失值插补,大家遇到最多的教程应该是mice包,不过我不太常用,所以就不介绍了。一般来说,如果只是简单的均值或中位数填补的话,不需要R包,自己写一行简单的代码就搞定了。均值/中位数/最大值/最小值等新建一个有缺失值的数据集。set.seed(12)df
2022年11月19日
其他

R语言因子分析

关注公众号,发送R语言或python,可获取资料💡专注R语言在🩺生物医学中的使用欢迎加入🐧QQ交流群:613637742因子分析可以看做是主成分分析的进一步扩展,主成分分析重点在综合原始变量的信息,而因子分析重在解释原始变量之间的关系。主成分并没有实际的意义,只是原始变量的线性组合,但是因子有明确的意义,是可以解释的。因子分析的步骤和主成分也是差不多的,关于因子分析前的一些准备工作可以参考之前主成分分析的步骤,比如相关矩阵的计算,KMO检验和Bartlett球形检验等,这里不再介绍。只有数据之间的相关性好,才有可能提炼出公共因子,建议大家相关性分析和两个检验不要忘记。R语言主成分分析演示数据数据来自于孙振球医学统计学第4版例22-2.
2022年11月18日
其他

R语言PCA可视化3D版

关注公众号,发送R语言或python,可获取资料💡专注R语言在🩺生物医学中的使用欢迎加入🐧QQ交流群:613637742之前详细介绍了R语言中的主成分分析,以及超级详细的主成分分析可视化方法,主要是基于factoextra和factoMineR两个神包。R语言主成分分析R语言主成分分析可视化(颜值高,很详细)今天说一下如何提取数据用ggplot2画PCA图,以及三维PCA图。提取数据还是使用鸢尾花数据集。rm(list
2022年11月17日
其他

R语言主成分分析可视化(颜值高,很详细)

关注公众号,发送R语言或python,可获取资料💡专注R语言在🩺生物医学中的使用欢迎加入🐧QQ交流群:613637742网络上很多R语言教程都是基于R语言实战进行修改,今天为大家介绍更好用的R包,在之前聚类分析中也经常用到:factoextra和factoMineR,关于主成分分析的可视化,大家比较常见的可能是ggbiplot,这几个R包都挺不错,大家可以比较下。之前已经多次用到了这两个R包:
2022年11月16日
其他

R语言主成分分析

关注公众号,发送R语言或python,可获取资料💡专注R语言在🩺生物医学中的使用欢迎加入🐧QQ交流群:613637742在医学研究中,为了客观、全面地分析问题,常要记录多个观察指标并考虑众多的影响因素,这样的数据虽然可以提供丰富的信息,但同时也使得数据的分析工作更趋复杂化。例如,在儿童生长发育的评价中,收集到的数据包括每一儿童的身高、体重、胸围、头围、坐高、肺活量等十多个指标。怎样利用这类多指标的数据对每一儿童的生长发育水平作出正确的评价?如果仅用其中任一指标来作评价,其结论显然是片面的,而且不能充分利用已有的数据信息。如果分别利用每一指标进行评价,然后再综合各指标评价的结论,这样做一是可能会出现各指标评价的结论不一致,甚至相互冲突,从而给最后的综合评价带来困难;二是工作量明显增大,不利于进一步的统计分析。事实上,在实际工作中,所涉及的众多指标之间经常是有相互联系和影响的,从这一点出发,希望通过对原始指标相互关系的研究,找出少数几个综合指标,这些综合指标是原始指标的线性组合,它既保留了原始指标的主要信息,且又互不相关。这样一种从众多原始指标之间相互关系入手,寻找少数综合指标以概括原始指标信息的多元统计方法称为主成分分析。关于特征值、特征向量、方差贡献率、累积方差贡献率等概念,大家可以阅读网络教程或者课本等。今天只是小试牛刀,后面会为大家带来更加详细的主成分分析可视化。加载数据使用R语言自带的iris鸢尾花数据进行演示。str(iris)##
2022年11月14日
其他

R语言线性趋势检验:Cochran Armitage 检验

关注公众号,发送R语言或python,可获取资料“医学和生信笔记,专注R语言在临床医学中的使用、R语言数据分析和可视化。主要分享R语言做医学统计学、临床研究设计、meta分析、网络药理学、临床预测模型、机器学习、生物信息学等。💡专注R语言在🩺生物医学中的使用Cochran
2022年11月13日
其他

R语言判别分析

关注公众号,发送R语言或python,可获取资料“医学和生信笔记,专注R语言在临床医学中的使用、R语言数据分析和可视化。主要分享R语言做医学统计学、临床研究设计、meta分析、网络药理学、临床预测模型、机器学习、生物信息学等。💡专注R语言在🩺生物医学中的使用判别分析(discriminant
2022年11月8日
其他

R语言聚类分析可视化(2)

关注公众号,发送R语言或python,可获取资料“医学和生信笔记,专注R语言在临床医学中的使用、R语言数据分析和可视化。主要分享R语言做医学统计学、临床研究设计、meta分析、网络药理学、临床预测模型、机器学习、生物信息学等。💡专注R语言在🩺生物医学中的使用之前的推文使用默认的plot函数进行聚类树的可视化,详情请点击:R语言聚类分析(1),今天继续扩展聚类树的可视化。默认的聚类树可视化函数已经非常好用,有非常多的自定义设置,可以轻松实现好看的聚类树可视化。比如加个背景,更改颜色等:op
2022年11月7日
其他

R语言聚类分析(1)

关注公众号,发送R语言或python,可获取资料“医学和生信笔记,专注R语言在临床医学中的使用、R语言数据分析和可视化。主要分享R语言做医学统计学、临床研究设计、meta分析、网络药理学、临床预测模型、机器学习、生物信息学等。💡专注R语言在🩺生物医学中的使用主要介绍使用R语言进行层次聚类、划分聚类(K均值聚类和PAM)。关于更多聚类分析可视化方法,可以参考下一期推文~系统聚类(层次聚类,Hierarchical
2022年11月6日
其他

分类变量进行回归分析时的编码方案

关注公众号,发送R语言或python,可获取资料💡专注R语言在🩺生物医学中的使用R语言中的分类变量在进行回归分析时,通常会进行一些编码设置,最常见的是哑变量设置,除了哑变量,还有其他的很多类型。通常一个有K个类别的分类变量在进入回归分析时,会被自动编码成K-1个序列,然后会得到K-1个回归系数,这些回归系数对应着因变量根据K个类别分组后计算的平均值!这样说起来非常抽象,下面对着例子看可能更简单一点。R中的这些编码方案又叫做比较(contrast)矩阵设计,虽然都是默认自动进行的,但是了解它们的工作方式可以帮助我们更好的理解背后的意义,以及如何自定义设置各种方案。比如我们在做逻辑回归时哑变量的设置是如何进行的,重复测量方差分析多重比较中contrast是怎样设置的等。演示数据使用hsb2数据集进行演示。其中write是数值型因变量,race是其中一个自变量,是无序分类变量,有4个类别:1
2022年11月4日
其他

R语言偏相关和典型相关分析

关注公众号,发送R语言或python,可获取资料“医学和生信笔记,专注R语言在临床医学中的使用、R语言数据分析和可视化。主要分享R语言做医学统计学、临床研究设计、meta分析、网络药理学、临床预测模型、机器学习、生物信息学等。💡专注R语言在🩺生物医学中的使用使用R语言实现偏相关分析和典型相关分析,并画出偏相关的散点图。关于偏相关和典型相关的具体含义和适用范围大家自己学习。偏相关(partial
2022年11月3日
其他

R语言条件(配对)逻辑回归-因变量是配对资料

关注公众号,发送R语言或python,可获取资料“医学和生信笔记,专注R语言在临床医学中的使用、R语言数据分析和可视化。主要分享R语言做医学统计学、临床研究设计、meta分析、网络药理学、临床预测模型、机器学习、生物信息学等。💡专注R语言在🩺生物医学中的使用R语言二项逻辑回归:
2022年10月31日
其他

R语言有序logistic回归-因变量为等级资料

关注公众号,发送R语言或python,可获取资料“医学和生信笔记,专注R语言在临床医学中的使用、R语言数据分析和可视化。主要分享R语言做医学统计学、临床研究设计、meta分析、网络药理学、临床预测模型、机器学习、生物信息学等。💡专注R语言在🩺生物医学中的使用R语言二项逻辑回归:
2022年10月29日
其他

R可视化:双向条形图

关注公众号,发送R语言或python,可获取资料“医学和生信笔记,专注R语言在临床医学中的使用、R语言数据分析和可视化。主要分享R语言做医学统计学、临床研究设计、meta分析、网络药理学、临床预测模型、机器学习、生物信息学等。💡专注R语言在🩺生物医学中的使用本系列内容来自github上面超级火爆的R语言可视化项目:tidyTuesday。是学习R语言数据分析和可视化极好的素材。CSDN项目地址:数绘小站的博客_CSDN博客-Tidy
2022年10月28日
其他

R可视化:动态峰峦图

关注公众号,发送R语言或python,可获取资料“医学和生信笔记,专注R语言在临床医学中的使用、R语言数据分析和可视化。主要分享R语言做医学统计学、临床研究设计、meta分析、网络药理学、临床预测模型、机器学习、生物信息学等。💡专注R语言在🩺生物医学中的使用本系列内容来自github上面超级火爆的R语言可视化项目:tidyTuesday。是学习R语言数据分析和可视化极好的素材。CSDN项目地址:数绘小站的博客_CSDN博客-Tidy
2022年10月28日
其他

R语言多项逻辑回归-因变量是无序多分类

关注公众号,发送R语言或python,可获取资料“医学和生信笔记,专注R语言在临床医学中的使用、R语言数据分析和可视化。主要分享R语言做医学统计学、临床研究设计、meta分析、网络药理学、临床预测模型、机器学习、生物信息学等。💡专注R语言在🩺生物医学中的使用R语言二项逻辑回归:R语言logistic回归的细节解读多项逻辑回归因变量是无序多分类资料(>2)时,可使用多分类逻辑回归(multinomial
2022年10月27日
其他

R语言方差分析的注意事项

关注公众号,发送R语言或python,可获取资料“医学和生信笔记,专注R语言在临床医学中的使用、R语言数据分析和可视化。主要分享R语言做医学统计学、临床研究设计、meta分析、网络药理学、临床预测模型、机器学习、生物信息学等。💡专注R语言在🩺生物医学中的使用R语言做方差分析很简单,就是一个函数aov(),包括但不限于单因素方差分析、多因素方差分析、协方差分析、重复测量方差分析等,都是这个函数。前面用一篇推文详细介绍了R语言中方差分析的各种实现方法:R语言方差分析总结R语言做方差分析和SPSS/SAS等传统统计软件不太一样,下面说一下需要注意的地方,主要是2个点:3种类型的方差分析单因素协方差分析和two-way
2022年10月26日
其他

R语言方差分析总结

关注公众号,发送R语言或python,可获取资料“医学和生信笔记,专注R语言在临床医学中的使用、R语言数据分析和可视化。主要分享R语言做医学统计学、临床研究设计、meta分析、网络药理学、临床预测模型、机器学习、生物信息学等。💡专注R语言在🩺生物医学中的使用介绍各种类型方差分析的R语言实现方法,目录如下:完全随机设计资料的方差分析随机区组设计资料的方差分析拉丁方设计方差分析两阶段交叉设计资料方差分析多个样本均数间的多重比较LSD-t检验TukeyHSDDunnett-t检验SNK-q检验多样本方差比较的Bartlett检验和Levene检验多样本方差比较的Bartlett检验多样本方差比较的Levene检验2
2022年10月24日
其他

R可视化:热力地图

关注公众号,发送R语言或python,可获取资料“医学和生信笔记,专注R语言在临床医学中的使用、R语言数据分析和可视化。主要分享R语言做医学统计学、临床研究设计、meta分析、网络药理学、临床预测模型、机器学习、生物信息学等。💡专注R语言在🩺生物医学中的使用本系列内容来自github上面超级火爆的R语言可视化项目:tidyTuesday。是学习R语言数据分析和可视化极好的素材。CSDN项目地址:数绘小站的博客_CSDN博客-Tidy
2022年10月21日
其他

R可视化:分面图组合为地图

关注公众号,发送R语言或python,可获取资料“医学和生信笔记,专注R语言在临床医学中的使用、R语言数据分析和可视化。主要分享R语言做医学统计学、临床研究设计、meta分析、网络药理学、临床预测模型、机器学习、生物信息学等。💡专注R语言在🩺生物医学中的使用本系列内容来自github上面超级火爆的R语言可视化项目:tidyTuesday。是学习R语言数据分析和可视化极好的素材。CSDN项目地址:数绘小站的博客_CSDN博客-Tidy
2022年10月20日