医学案例统计分析与SAS应用(笔记)一
一,样本含量估计 & proc power:
首先确定以下因素:
1)第一类错误概率 α 假阳性错误,α 设定越小,样本量越大,一般取0.05.
2)第二类错误概率 β 假阴性错误, β 设定越小,或把握度1- β 设定的越高,样本量越大,一般 β 取0.1、0.2,把握度取0.9、0.8
3)其他要素
二, 常用试验设计方法 & proc plan:
1)完全随机设计
2)配对设计及随机区组设计
3)析因设计
#####################################
完全随机设计 如下例所示:
例如: 研究A药物和B药物对糖尿病的疗效,以空腹血糖测量值和空腹血糖疗效作为主要疗效指标, 希望有80%的把握发现两种药物的真实差异。
Step1: 估算样本量:
空腹血糖测量值为因素推算样本量,研究者通过以往研究获得两组空腹血糖均值和标准差分别是:8.06±1.82 和 7.23±1.52,计算出合并方差2.81,标准差为1.68:
proc power;
twosamplemeans
groupmeans=8.06|7.23
stddev=1.68
power=0.8
ntotal=.;
run;
空腹血糖疗效作为因素, 需要给出第一类和第二类错误率,并且通过以往的预实验了解两组的预期有效率。已知两组的有效率分别是 71% 和 83%
proc power;
twosamplefreq
groupproportions=(0.71,0.83)
power=0.8
ntotal=.;
run;
两个因素估算样本量分别是132 和 384, 取最大值。
Step2: 随机分组:
proc plan seed=200709; /* seed 参数可空缺,用于产生随机数,相同的seed 产生相同的随机数,为了复现产生的随机数,建议设置seed 值(当时时间)*/
factors rand =384 random; /*因素名称: rand,样本量:384,抽样方式:random*/
output out=outa;
data outb;
set outa; /* 常规用法,将上一个数据集outa 导入outb */
if rand <=192 then group='A';
ELSE group='B';
num=_N_; /* sas 自动变量,观测值序号*/
PROC PRINT;
RUN;
####################################################
随机区组设计如下例:
某研究所研究三种饲料对小白鼠的体重影响,希望有80%的把握度发现三种饲料对增重的真实影响。
设计方案: 单因素--饲料 三个水平---三种饲料,可以完全随机分组或者随机区组设计。若想要结果可靠,饲料喂养前小白鼠的体重应该相同或者相近,建议:随机区组设计
Step1: 估算样本量
结果指标:体重,连续变量。对多组连续变量的比较,估计样本量之前,需要确定第一类和第二类错误概率,并根据预实验和以往的研究估算每组的均值和标准差 。已知:三种饲料的增重均值为61.4、72.9、68.7,标准差为:10.7、12.3、11.8,合并标准差为11.6
proc power;
onewayanova /* 单因素方差分析进行样本量估计*/
test=overall /* 做三组总体比较而不是两两比较*/
groupmeans=61.4|72.2|68.7
stddv=11.6
power=0.8
ntotal=.;
run;
Step2: 随机分组:
改项目选用随机区组设计,思路在于:先将没三个体重相同或相近的小白鼠配成一组,共有:69/3=23区组,每个区组的小白鼠按照某种约定顺序编号1~3,组后 proc plan 进行区组分配
proc plan;
factors block=23 ordered rank=3 random;
/* block 区组23, block 排序方式:ordered 顺序排序, rank:每一份block内小白鼠数量3,小白鼠排序方式:random 随机 */
run;
####################################################
析因设计的随机分组:
某机构研究A药物和B药物对幽门螺杆菌的抑制作用,同时希望了解两种药物的联合作用效果。
设计思路:两个因素,交叉组合成4组,A0+B0,A1+B0,A0+B1,A1+B1,如果因素间可能存在交互效应,最好采用:析因设计,析因设计主要思路:一旦按照交叉组合分成4组后,如何随机分组与完全随机设计是相同的,可以看成是有四个组的完全随机分组,只是析因设计需要每个组的样本量相同。
Step1: 估算样本量:
以幽门螺杆菌的清除率为分类变量。proc power 目前尚无关于多组率比较的样本含量计算程序(??),因此可根据公式计算出样本含量:
α=0.05,β=0.1,v=4-1=3, 查λ界值表λ为14.17,根据以往研究或预实验,最大率和最小率分别为0.69和0.18,求得每组需要样本量25.
Step 2: 随机分组:
data outb;
set outa;
if rand <=25 then group='空白组';
else if rand <=25 then group='A药物';
else if rand <=25 then group='B药物';
ELSE group='A+B药物';
num=_N_;
PROC PRINT;
RUN;
###################################################################
关系型研究的样本含量估计:
某医生研究空腹血糖和糖化血蛋白的关系,考虑年龄、身高、体重可能影响二者的关系。希望能有80%的把握度发现二者的真实关系。
设计思路:研究变量之间的关系,研究指标为连续型变量,最常见的分析方法是相关和回归。如果两个变量有明确的因果关系,可以用回归分析;如果两个变量无主次之分,可以用相关分析。在样本含量估计时,只要确定研究因素和校正因素,相关和回归所求得的样本含量估计值是一致。
研究者通过研究资料获得两个变量的偏相关系数,即矫正其他混杂因素后的纯相关系数为0.4
以空腹血糖作为因变量,观察糖化血蛋白对空腹血糖的影响,同时矫正年龄、身高、体重的混杂,则可采用回归分析
Step1, 样本量估算:
使用回归分析估算
proc power;
multreg /* 选择的方法是回归分析估计样本量*/
partialcorr=0.4 /* 两个变量的偏相关系数 0.4 */
nfullpredictors =4 /*4个因素,包括自变量和混杂因素*/
ntestpredictors=1 /*1个主要变量,其他的为矫正因素*/
power=0.8
ntotal=.l;
plot x=power min=0.2 max=0.9; /*以power为x轴,样本含量为y轴绘图*/
run;
使用相关分析估算:
proc power;
onecorr /*表明对相关分析进行样本含量估计*/
corr=0.4 /* 两个变量的偏相关系数 0.4 */
npartialvars=3 /*3个矫正因素 */
power=0.8
ntotal=.;
run;