1

我正在将SAS命令与R. 考虑一下我想评估一次暴露(如CATwhere1 equals high0 equals low)和one cofounding variable (如cholesterol leve, CHL)对疾病变量(如CHD)的影响。为了SAS获得优势比的数值,例如,当模型包含交互项(如 ())时,考虑CHL等于 220 且HPT等于 1的特定值CC = CAT*CHL,命令为:

PROC GENMOD data=l2 DESCENDING;
MODEL CHD=CAT CHL CC/LINK=LOGIT DIST=BINOMIAL;
ESTIMATE CAT 1 CC 220 /EXP;
RUN;

我只想在 R 中找到这样的命令。在 R 中是否有任何代码?

4

1 回答 1

1

复制我之前的评论作为答案:我相信 OP 正在询问具有 4 列的数据情况,并且需要

mdl <- glm(CHD ~ CAT + CHOL + CC, data=df, "binomial") 

听从您的建议。然而,更好的是不单独计算交互项,而是使用公式机制来表示与“*”运算符的交互:

mdl <- glm(CHD ~ CAT * CHOL , data=df, "binomial")

这将为您提供主效应和交互系数。它还可以更好地使用 predict 方法,在这种方法中,您不会因为可能输入与主效应不匹配的交互项而被绊倒。我不确定 /EXP 选项在 SAS 中产生了什么,但我猜它可能会返回优势比。这给出了预测的概率:

predict(mdl, data.frame(CHL=220, HPT=1), type= "response")

我不认为每个协变量的单个值可以产生优势比,除非您隐含地假设协变量平均值的基线。您可以通过以下方式获得有用的信息:

exp( diff( predict(mdl, data.frame(CHL=c(220, mean(df$CHL) ) , HPT= c(1,0) )  ) ) )

这旨在是(尽管在没有数据的情况下未经测试并且可能需要一些进一步的算术)比较一个 CHL = 220 的人和一个没有高血压的人的优势比以及无论队列的平均值如何胆固醇可能是。

加州大学洛杉矶分校生物统计学页面非常适合学习这一点,您也许可以在此页面上获取一些数据示例:

对于想要使用 SAS 的先验知识的人来说,还有一些资源:

http://r4stats.com/2012/06/13/why-r-is-hard-to-learn/

http://www.revolutionanalytics.com/news-events/free-webinars/2011/intro-to-r-for-sas-spss/

免费 PDF,后来扩展为整本书:

于 2013-02-09T20:47:14.917 回答