lrm fit vs glm适合不连续函数

时间:2015-11-21 19:59:41

标签: r

使用lrmrms包)进行拟合时出错,而我没有使用glm。我想将lrm函数用于与软件包相关的验证和校准功能。

也许我对我的模型感到困惑:如果协变量为零,我预计会有非常不同的结果,如果结果是非零的话。更喜欢将两个术语而不是单个函数拟合到数据

 a= c(rep(0,10),rnorm(90,10,1)) # 10% outcomes=0, 90% clustered around 10.
 b= rnorm(100)>0
 mydataframe=data.frame(a,b)
 glm(b~I(a>0)+a,data=mydataframe,family='binomial') # no errors.
 lrm(b~I(a>0)+a,data=mydataframe)
  

if(!length(fname)||!any(fname == zname)){:     缺少需要TRUE / FALSE的值

当然glm或lrm只用glm(b~a, data=mydataframe)就可以正常工作,但是当" a"的功能时,也不应该工作。包含两次?或者是否存在一些奇点或难以置信的估计?

提前感谢任何方向!

1 个答案:

答案 0 :(得分:0)

感谢jogo的评论,我认为问题仅在于我的公式中缺少特定的变量名称。无论出于何种原因,lrm()不像glm()那样处理它。简单地将新变量分配给I(a> 0)并在模型中包含该变量似乎删除了错误:

 a= c(rep(0,10),rnorm(90,10,1)) # 10% outcomes=0, 90% clustered around 10.
 b= rnorm(100)>0
 mydataframe=data.frame(a,b)
 glm(b~I(a>0)+a,data=mydataframe,family='binomial') # no errors.
 mydataframe$k = I(a>0)
 lrm(b~k+a,data=mydataframe) # also works!