如何进行GLM,其中响应取决于同一组的响应?

时间:2013-09-04 18:04:16

标签: r regression glm

我有一个数据集

y x1 x2 x3
1 91 21 A1
0 54 87 A1
1 88 54 B1
1 67 42 B1
0 32 83 B1
.......

我首先要在x2> 50的子集上做一个gl~y + x1 + x2(我可以用子集来做这个),

mdl1 <- glm(y~x1+x2, family=binomial, data=subset(df, x2>50))

然后我想做第二个glm y~x1 + x2 + y(从x2> 50并且x3是相同的)。

例如,第二行具有x2 = 87且x3 = A1,那么它的y = 0将对第一行的y建模产生影响,该第一行在相同的x3 = A1中,并且具有x2 <50。同样,第3行和第5行的y将对第4行产生影响。

我不知道如何将其包含在模型中。

mdl2 <- glm(y~x1+x2+???, family=binomial, data=subset(df, x2<=50))

当x2&lt; 50依赖于相同x3的其他y时,我怀疑y。

1 个答案:

答案 0 :(得分:0)

我认为你可以使用一个组合的glm来捕捉“当x2&lt; 50依赖于同一个x3的其他y时”的想法:

mdl <- glm(y ~ x1 + x2 + x3:as.numeric(x2 < 50), family=binomial)

对于x2&gt; = 50,as.numeric(x2 < 50)为零,因此模型只是y~x1 + x2。对于x2&lt; 50, as.numeric(x2 < 50)是一个,因此模型变为y~x1 + x2 + x3。

采用这种方法,x1和x2的系数基于所有数据,但x3的效果仅基于x2