TFL

177:为什么需要人口统计学资料和基线资料?table编写

2022-12-14  本文已影响0人  SASPRO的打工人生活

几乎所有的临床试验都会收集人口学的信息,比如出生日期,年龄,性别等,下面是一张通用的人口统计学Form。

有些还会在人口统计学Form收集身高体重等信息,这个一般放在VS domain。

今天我们来讲讲为什么要收集这些信息以及对应的TFL怎么编写。

收集这些人口统计学的信息,是因为它们可能与研究主题相关,并可用于统计分析的分层。比如糖尿病/高血压试验,年龄和性别都是一些比较关键的研究因素,常用于亚组分析,或在推断分析中用作协变量(怎么感觉这两句是一个意思)。

根据收集来的人口学信息,可能就会根据这些信息进行分组或者分亚组。然后这些数据可能在安全性分析和疗效性分析都起作用,因为两者都可以根据人口统计学特征进行分层。

然后收集的一些既往病史/既往用药等其他既往信息也是同样的道理,都可能对试验有影响。

大多数临床数据到TFL阶段,大多数就是分为3大部分(也就是shell的结构):

一:受试者信息总结表

二:疗效性分析表

    三:安全性分析表

接下来我们讲讲如何写人口学的表格,一般shell长这样

大家写这种类型的table,就是将shell分成一个一个section,比如求年龄定量统计量是Section1,求性别定性统计量是Section2,求民族定性统计量是Section3......

我们写程序的时候就按照这个逻辑去处理,具体看程序,我用我自己创建的RAW.DM数据集

当筛选出我们所需要的观测之后,就可以求频数频率那些了,实现的方法可以通过proc freq或者proc sql(当然还有其他方法)

有时候不同的统计师可能会有不一样的shell格式,有的可能还会要求求小n,这个简单,你就理解成只需要按照组别分类就可以了,比如性别,如果求小n,筛选sex^=""的观测,直接tables trtpn就可以,之后转置一下就是小n的值。然后下面的具体男女分类那么tables trtpn*sex,加上sex就可以了。

求小n,我还有一种方法,就是再output一次,让我的目标变量等于要求的变量,具体实现方法见程序

看下求出来的数据集长什么样,两种方法求出来的频数都是一样的,注意用proc freq求出来的数据集里面的percent大多数时候并不是我们需要的频率,所以请直接忽略。

SQL过程创建的数据集:

可以看到如果要求小n的话,都要分成两个数据集,但是的话也可以提前在数据集里面再output一次,像下面这样:

可以看到直接把小n求出来了,如果有多个变量,那就分别output几次,像下面这样

这时候性别和种族的小n和具体分类都求出了

如果不喜欢上面的方式,那就写个宏重复分别计算每个section的频数吧

而且用宏有个好处,就是你可以多添加几个宏变量,把排序变量和col1都算出来,具体我就不举例了,不知道的可以私聊我。

频数求出来了,接下来就开始计算频率了,这个我也不写了,直接用count除以每组的大N就是频率了。

频数频率求出来了,但是现在是纵向结构,我们需要横向的每组列出来,这时候就需要用到转置,我一般这样转

还有一个需要处理的东西就是col1,因为我们求出来的数据集排序很可能不是shell上展示的顺序,所以一个好的办法就是自己创建一个shell,sort1,sort2就是最终数据集的排序变量,然后我们求出的数据集和shell拼接一下,通过shell数据集里面的排序变量来排序。

而且很多时候数据集里面只有单个值,比如说只有女,但是我们也要展示男的数量,虽然为0,所以这时候就得我们自己创建shell,比如下面这样:

我上面的程序差不多就能把这张表写出来,有些细节你们自己写的时候注意一下,我没贴出来,太懒了,也写了很久这篇文章。

后面熟悉的话,数据集又清晰明了,最多一个小时把一张基线表写出来(复杂的,当然是靠复制粘贴。简单的甚至最多半小时就要写出来,而且大多数时间是用在找变量,检查频数是否正确上)

我这程序也不是很复杂吧,简单明了,不用谢我,给我一个么么哒就可以了。

上一篇 下一篇

猜你喜欢

热点阅读