【问题标题】:How to do GLM where the response depends on the response of the same group?如何在响应取决于同一组的响应的情况下进行 GLM?
【发布时间】:2013-09-08 08:56:50
【问题描述】:

我有一个数据集

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 的子集上执行 glm 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

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

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

当 x2

【问题讨论】:

  • 你有什么问题?
  • @Thomas,为第二个 glm 编写模型和代码。
  • 你为什么不在你的问题中展示你已经提出的代码然后详细说明,因为它真的不清楚你想要什么。
  • @Thomas,我更新了帖子以包含解释,请看一下。

标签: r regression glm


【解决方案1】:

我认为您可以使用组合 glm 来捕捉“当 x2

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

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

使用这种方法,x1 和 x2 的系数基于所有数据,但 x3 的影响仅基于 x2

【讨论】:

    猜你喜欢
    • 2021-04-12
    • 2021-02-26
    • 2022-11-02
    • 1970-01-01
    • 1970-01-01
    • 2018-11-23
    • 2012-04-07
    • 2014-07-30
    • 1970-01-01
    相关资源
    最近更新 更多