复制我之前的评论作为答案:我相信 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,后来扩展为整本书: