一、代码示例(部分参数)
proc logistic data=Adpasi outest=betas covout;
class SEX DSACTST CMMTXFL CMAPTFL;
model AVALC(event='Y')= AGE SEX BMIBL PROGCLS DSACTST BSABL CMMTXFL CMAPTFL
/selection=stepwise slentry=0.05 slstay=0.1 details lackfit;
output out=pred p=phat lower=lcl upper=ucl predprob=(individual crossvalidate);
ods output Association=Association;
run;
二、proc logistic中的参数解析
1、data= :指示输入数据集名称
2、outest=:给出系数矩阵
三、class语句解析
指示后面的model语句中模型中变量,有哪些是字符型的分类变量。该语句必须在model之前生效。class语句后面可以跟参数,参数有两种表达方式。第一种是跟在每一个变量后面,如此不同的变量可以跟不同的参数,以参数missing,变量var为例,形如:class var1 missing var2 var3 missing;第二种是跟在所有变量后面,作为通用的参数。形如:class var1 var2 var3/missing;
class语句可以在各个过程步通用。
1、param=:该参数有若干可选项
GLM: 该取值作用目前不得而知,但是它是后面使用 lsmeans 语句的前提,只有该选项设定后 lsmeans语句才会执行。
四、model语句及其参数解析
model语句中的主体是一个等式,它是多过程步公用的语句。等式的左边(AVALC)是反应变量,右边是用来预测的控制变量(AGE SEX BMIBL PROGCLS DSACTST BSABL CMMTXFL CMAPTFL)。
1、event=:在AVALC后面的(event='Y')作用是指示把AVALC中的哪个值作为分析的目标类别。event=除了直接设置值外,还有两种选项:event=first和event=last,分别表示选取AVALC中排序在第一个的那个值和最后一个值。event选项只能在反应变量是二分类的情况下使用。
2、selection=:用来设定把变量加入模型的方法。当等式右边的控制变量不是一个的时候,简单的说,就会涉及到一个问题:哪个变量先进模型?因为一般来说自变量越少,对结果的解释力度就越弱,所以简单的想法是尽量多的在等号右边加入变量。然而,变量虽多,但每个变量对最终解释力度的贡献不同,有些甚至可能完全没有贡献,所以需要对变量要有个筛选。
选项有5个,对应的是五种筛选方法,括号里是选项简写:
(1)BACKWARD(B):向后剔除法。将所有变量(AGE SEX BMIBL PROGCLS DSACTST BSABL CMMTXFL CMAPTFL)全部放到模型中检验,检查解释力度最低的那个变量,然后和事先设定的剔除的检验水准进行比较,进行剔除。然后重复上述过程,知道没有可以剔除的变量为止。
(2)FORWARD(F):向前剔除法。与向后剔除法相反,先选择其中一个变量进入模型中,检查该变量的解释力度,如果符合进入的检验水准则加入模型,然后重复上述过程,知道新变量对总体解释力度没有贡献为止。
(3)NONE(N):SAS的默认方法。
(4)STEPWISE (S):逐步回归法。是对向后剔除法和向前剔除法的综合应用。先用向前剔除法加入变量 ,然后再用向后剔除法排除不合适的变量。这是一个反复的过程,直到既没有显著的解释变量选入回归方程,也没有不显著的解释变量从回归方程中剔除为止。以保证最后所得到的解释变量集是最优的。
(5)SCORE:最优子集法。顾名思义,遍历了所有可能的变量组合,因此筛选出的特征必定是最优的。但缺点是计算量非常大。
3、slentry=:只有当selection=选项为STEPWISE和FORWARD的时候才能用,用来设定进入的检验水准。可简写成 sle=。
4、slstay=:只有当selection=选项为STEPWISE和BACKWARD的时候才能用,用来设定剔除的检验水准。可简写成 sls=。
5、details:显示逐步选择过程,但是当SELECTION=NONE的时候无效
6、lackfit:执行Hosmer和Lemeshow拟合优度检验。
五、lsmeans 语句及其参数解析
lsmeans 语句的语法 lsmeans 变量1 变量2 ....... /参数1 参数2;他的使用需要class中使用 param=GLM 才能使用。该语句可以在一个过程步中重复使用,这样有一个好处,因为斜杠后面参数是所有变量共享的,如果想给每个变量定制个性化参数就不能只用一个lsmeans语句。lsmeans语句参数有:
1、ilink:用来设置生成均值,均值标准误。
2、cl:用来设置上下限,包括均值上下限,均值标准误的上下限。
3、pdiff:用来生成差分表,设置该参数会增加一个差分表。