【问题标题】:mlogit and clusterSEs - error in dataframemlogit 和 clusterSEs - 数据框中的错误
【发布时间】:2020-12-03 13:24:03
【问题描述】:

我有一个数据集,每个客户有多个观察值,并希望在 R 中进行多项回归。为了考虑每个客户的多个观察值,我需要检查聚类标准误差。

为此,我使用了mlogitclusterSEs 包。

我的第一步是将我的原始数据帧转移到一个宽数据帧中:

mlMASTER_DATA <- mlogit.data(MASTER_DATA, shape = "wide", choice="Booking_status")

之后我创建了我的模型:

mnlModel_P3 <- mlogit(Booking_status ~ 1 | logprevious_bookings + logsearches,
                      data=mlMASTER_DATA, reflevel = "is_booked_24h", na.action = na.exclude)

模型运行正常。

在第三步中,我想考虑标准错误:

Cluster_model <- cluster.im.mlogit(mnlModel_P3, mlMASTER_DATA, ~user_id)

但是,我收到以下错误消息:

error in `[.data.frame`(as.data.frame(x), i, j, drop = drop) : 
  undefined columns selected

有人可以帮忙解决这个问题吗? 非常感谢!!

【问题讨论】:

  • 通常这意味着您正在尝试选择数据中不存在的变量。如果mlogit.data 在转换数据时删除了user_id 索引,那么在调用转换后的数据时,cluster.im.mlogit 函数将无法使用它。但是对于稳健的标准误差,您可能可以使用三明治估计器。查看sandwich 包。您可以使用mlogit 返回的方差协方差矩阵轻松创建面包和肉。

标签: r standard-error mlogit


【解决方案1】:

在使用 cluster.im.logit() 之前,您可能需要使用 dfidx 包转换您的 data.frame,该包将包含观察和集群详细信息的索引嵌入到您的数据框中。

例如,首先运行help(cluster.im.logit),然后在帮助象限中滚动到底部并查看示例。

这是我要开始的一个:

H.ml <- dfidx(H, shape="wide", choice="depvar", varying=c(3:12), 
                idx = list(c("idcase", "region")))

这会将 H df 转换为宽格式,但还包括一个 idx 列。 idx 实际上是一个由观察和集群组成的两部分索引(据我所知)。然后,您可以使用这个新的 df 运行您的 mlogit:

m <- mlogit(depvar~ic+oc, H.ml)

接下来在模型输出上运行 cluster.im.logit() 并使用您指定的集群(嵌入在 idx 中)运行 df。再次根据帮助文件:

cluster.im.h <- cluster.im.mlogit(m, H.ml, ~ region)

【讨论】:

  • 请您更新答案并提供帮助文件中的示例
  • 感谢您的产品。刚刚更新。对此很陌生。
  • 不用担心 :) - 在我的审核队列中,并希望让 Stackoverflow 对每个人都很好:)
猜你喜欢
  • 2015-06-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多