【问题标题】:Logistic Unit Fixed Effect Model in RR中的物流单位固定效应模型
【发布时间】:2017-12-26 06:42:52
【问题描述】:

我正在尝试使用 R 估计面板数据的逻辑单元固定效应模型。我的因变量是二进制的,并且在两年内每天测量 13 个位置。 该模型的目标是根据 x 预测特定日期和位置的 y 值。

zero <- seq(from=0, to=1, by=1)
ids = dplyr::data_frame(location=seq(from=1, to=13, by=1))
dates = dplyr::data_frame(date = seq(as.Date("2015-01-01"), as.Date("2016-12-31"), by="days"))
data = merge(dates, ids)
data$y <- sample(zero, size=9503, replace=TRUE)
data$x <- sample(zero, size=9503, replace=TRUE)

在调查可用的软件包时,我已经阅读了许多(显然)这样做的方法,但我不确定我是否理解了软件包和方法之间的区别。

从我目前所读到的内容来看,glm()survival::clogit()pglm::pglm() 可用于执行此操作,但我想知道这些软件包之间是否存在实质性差异以及可能是什么。 以下是我使用过的电话: fixed &lt;- glm(y ~ x + factor(location), data=data) fixed &lt;- clogit(y ~ x + strata(location), data=data)

造成这种不安全的原因之一是我在使用 pglm(另见 this question)时遇到的错误,即 pglm 不能使用“within”模型: fixed &lt;- pglm(y ~ x, data=data, index=c("location", "date"), model="within", family=binomial("logit")).

pglm 的“内部”模型与glm()clogit() 中的方法有什么区别?在尝试预测给定日期和单位的 y 时,这三种方法中的哪一种是正确的?

【问题讨论】:

  • 阅读?glm后,您应该能够回答您的第一个问题。不鼓励在 SO 上提出多部分问题。请阅读minimal reproducible example 并使用edit 工具来缩小您的问题并提供要编码的任务的具体示例。
  • 阅读 ?glm 后我无法回答我的第一个问题,这就是我在这里问的原因。但是,我重新提出了我的问题并使其可重现。
  • 错误:'date_frame' 不是从 'namespace:dplyr' 导出的对象

标签: r logistic-regression panel-data


【解决方案1】:

我没有看到您已经定义了一个适当的假设来在您所谓的“面板数据”的上下文中进行测试,但只要让glm 给出层内逻辑系数的估计值,它就可以完成通过添加 family="binomial" 并按“单位”变量分层:

> fixed <- glm(y ~ x + strata(unit), data=data, family="binomial")
> fixed

Call:  glm(formula = y ~ x + strata(unit), family = "binomial", data = data)

Coefficients:
        (Intercept)                    x   strata(unit)unit=2   strata(unit)unit=3  
            0.10287             -0.05910             -0.08302             -0.03020  
 strata(unit)unit=4   strata(unit)unit=5   strata(unit)unit=6   strata(unit)unit=7  
           -0.06876             -0.05042             -0.10200             -0.09871  
 strata(unit)unit=8   strata(unit)unit=9  strata(unit)unit=10  strata(unit)unit=11  
           -0.09702              0.02742             -0.13246             -0.04816  
strata(unit)unit=12  strata(unit)unit=13  
           -0.11449             -0.16986  

Degrees of Freedom: 9502 Total (i.e. Null);  9489 Residual
Null Deviance:      13170 
Residual Deviance: 13170    AIC: 13190

这不会考虑任何日期排序,这是我所期望的兴趣。但正如我上面所说,似乎还没有以任何顺序排序为前提的假设。

这将创建一个固定效应模型,其中包括 date 与 y 事件概率的样条关系。我选择将日期居中而不是将其保留为一个非常大的整数:

library(splines)
fixed <- glm(y ~ x + ns(scale(date),3) + factor(unit), data=data, family="binomial")
fixed
#----------------------
Call:  glm(formula = y ~ x + ns(scale(date), 3) + factor(unit), family = "binomial", 
    data = data)

Coefficients:
        (Intercept)                    x  ns(scale(date), 3)1  ns(scale(date), 3)2  
            0.13389             -0.05904              0.04431             -0.10727  
ns(scale(date), 3)3        factor(unit)2        factor(unit)3        factor(unit)4  
           -0.03224             -0.08302             -0.03020             -0.06877  
      factor(unit)5        factor(unit)6        factor(unit)7        factor(unit)8  
           -0.05042             -0.10201             -0.09872             -0.09702  
      factor(unit)9       factor(unit)10       factor(unit)11       factor(unit)12  
            0.02742             -0.13246             -0.04816             -0.11450  
     factor(unit)13  
           -0.16987  

Degrees of Freedom: 9502 Total (i.e. Null);  9486 Residual
Null Deviance:      13170 
Residual Deviance: 13160    AIC: 13200

【讨论】:

  • 非常感谢您的回答/评论,这完美地阐明了我正在努力解决的问题。我已经用我想要完成的目标更新了我的问题:我想根据 x 预测给定日期的 y。在这种情况下,我将如何进行顺序排序?
  • 使用您的固定效果代码(适用于我的数据集)会导致我的 R 冻结(或者至少会持续运行很长时间)。没有警告或任何东西,所以很难说什么是错的。有任何想法吗?接下来我将尝试生存包,但也未能使用 pglm 获得结果(请参阅 CV:stats.stackexchange.com/questions/146434/…)。
  • @Deleet 由于没有数据,此评论没有太多意义或实质性回应的可能性。它只是说一些未指定性质的未指定数据对象导致了一些不良行为。
  • 事实证明,如果一个人让 R 运行 30 分钟,它确实适合最后。我最终使用了来自survivor 的clogit 函数,它产生了类似的输出,但具有近乎即时的拟合时间。 (我的数据是专有的,所以我不能分享它们。)
  • 为什么要在此处包含拦截?在线性固定效应模型中,各个常数应该与截距共线,不是吗?这个logit with strata不是这样吗?
猜你喜欢
  • 2015-04-06
  • 2018-11-17
  • 2022-01-05
  • 2017-10-18
  • 1970-01-01
  • 1970-01-01
  • 2023-01-26
  • 1970-01-01
  • 2015-04-22
相关资源
最近更新 更多