如何提取与使用SAS PROC输出?以计算参数指数值(优势比)为例
在SAS中实现逻辑回归并计算优势比
R中的实现
你在R中通过逻辑回归拟合模型并计算优势比的代码如下:
mylogit <- glm(tvsitcom ~ gender+age, data=student, family = "binomial") odds_ratio <- exp(coef(mylogit))
SAS实现的关键纠正与步骤
注意:你最初及更新后的代码中使用proc reg是错误的——proc reg用于线性回归,而对应R中glm(..., family="binomial")的逻辑回归,SAS需要使用proc logistic。
要计算优势比,无需额外PROC,只需两步:
- 用
proc logistic拟合模型,通过ODS将参数估计结果导出到数据集 - 用DATA步对参数估计值取自然指数,得到优势比
正确的SAS代码如下:
/* 拟合逻辑回归,输出参数估计到数据集param */ proc logistic data=perm.college; model tvsitcom(event='1') = age gender; /* event参数指定二分类变量的阳性事件取值,请根据你的实际数据调整 */ ods output ParameterEstimates=param; run; /* 计算优势比:对参数估计值取自然指数 */ data odds_ratios; set param; odds_ratio = exp(Estimate); run; /* 查看最终的优势比结果 */ proc print data=odds_ratios; run;
对原更新代码的说明
你之前更新的代码仍使用proc reg,这会拟合线性回归模型,得到的系数和R中逻辑回归的系数完全不对应,因此必须替换为proc logistic才能得到等价的结果。
内容的提问来源于stack exchange,提问作者jcruzer
相关产品推荐
相关产品推荐

