2025年4月18日 星期五 01:18:04 农历三月廿一 手机版 客户端

当logistic回归遇到log-binomial回归

当logistic回归遇到log-binomial回归

  Logistic回归遇到log-binomial回归。当结局发生率较大时,再使用OR来估计RR时会不准确,建议当结局发生率大于10%时,使用log-binomial回归方法替代Logistic回归,下面简单给大家介绍一下log-binomial回归。

我们知道Logistic回归的模型

  ,而log-binomial回归只将模型作一点变化,即将p/(1-p)换成p(p为结局发生的概率)。模型很容易理解,但模型等号前的lnp是个负数,而等号后面的B0+BiXi可以为正也可以为负,因此在回归时需要加一个限制条件即B0+BiXi≤0,因此log-binomal回归是一个有偏估计。

  现在我们模型一个数据看看两个回归的结果。我们设定某病的基线患病率为10%,分别模拟RR=1,2,3的三个数据,总人数为1000,暴露组和非暴露组各500例。如下表。当RR=1时,暴露组和非暴露组各有50人患病。

  分别使用Logistic回归和log-binomial回归进行统计分析,得到的结果如下表。

  可以看出,虽然log-binomial回归是有偏估计,但估计值与预设的RR完全一样,而且置信区间也比较小,也即更加精确。因此当结局发生率较高,应该用log-binomial回归尝试进行统计分析

  在进行log-binomial回归时,自变量如果是连续变量时,可能造成模型不收敛,因此我们需要将数据进行加权,方法是将原数据复制后,复制数据其它不变,将结局变量0与1对换,给予原数据较高的权重(一般0.99)以上,给予复制数据较低的权重(一般0.01以下),再进行回归分析。log-binomial回归尚不能在SPSS菜单中实现,现把程序给大家,拿走不谢。

  proc genmod data=a;

  ods select ParameterEstimates;

  ods output ParameterEstimates=para0;

  weight w;

  model y=x/D=BIN link=LOG INterCEPT=-1LRCI;

  run;

  proc print data=para0;

  run;

  data para;

  set para0;

  PR=EXP(Estimate);

  LPR=EXP(LowerLRCL);

  UPR=EXP(UpperLRCL);

  keep Parameter PR LPR UPR;

  proc print data=para;

  run;

参考标签

声明:本文转载仅出于学习和传播信息所需,并不意味着代表本站观点或证实其内容的真实性;其他网站或个人转载使用须保留本站所注“来源”,并自负相关法律责任;如作者不希望被转载或其他事宜,请及时联系我们!