以下是 R 代码:
model1 <- glm(wt82_71 ~ qsmk + sex + race + poly(age, 2, raw = TRUE) + education + poly(smokeintensity, 2, raw = TRUE) + poly(smokeyrs, 2, raw = TRUE) + exercise + active + poly(wt71, 2, raw = TRUE) + qsmk:smokeintensity,data = nhefs)
在Python中,我编写了以下代码:
mod3 = smf.glm(formula='qsmk ~ sex + race + education + exercise + active + poly(age,2) + poly(smokeintensity,2) + poly(smokeyrs,2) + poly(wt71,2)', family=sm.families.Binomial(), data=nhefs).fit()
mod3.summary()
poly()
在Python中应该是什么?以下是一些注释:
(1) poly(x, 2)
添加一个二阶正交多项式,如果希望产生与x + x^2
相同的系数,则添加参数raw=TRUE
(2) x1*x2
输入x1
和x2
的主效应以及它们的乘积项,x1:x2
只输入乘积项(对于smokeintensity
是必要的,因为我们希望在交互作用中smokeintensity
以线性方式处理,但在主效应中以二次方式处理,因此对于smokeintensity
的线性项无法估计)
(3) 具有缺失值的观测值会自动删除
smf
是指哪个模块。 - MichaelChirico