【问题标题】:Separate logistic models within dataframe [closed]数据框中的单独逻辑模型[关闭]
【发布时间】:2018-04-16 00:30:45
【问题描述】:

我有一个数据集,包含 16 个不同国家/地区的 3240 个观测值。我想为每个国家/地区运行 16 个单独的逻辑模型,因为我预计我的预测变量的影响会因国家/地区而异。

Data <- data.frame(
X = sample(1:100),
Y = sample(c("yes", "no"), 100, replace=TRUE),     
country=sample(c("UK","USA","Denmark","Norway","Iceland","Ireland","Sweden","Italy","France","Germany","Luxembourg","Belgium","Netherlands","Spain","Portugal","Greece"),100, replace=TRUE))

如何在 R 中做到这一点?

【问题讨论】:

  • 发布带有输入数据样本的可重现示例是获得帮助的好方法。有一些方法可以在 R 中解决您的问题。
  • 我现在尝试编辑它,所以它可能更有意义:)
  • 有很多问题显示如何通过分组变量运行回归(this is one [虽然我会使用循环]。(ps my2c,如果它们不同,可能值得测试,通过拟合交互项,而不是假设)
  • 听起来你真正需要的是一个多层次的模型。
  • 我已经做了一个多层次的模型。我有兴趣自己运行 16 个国家/地区,以将多级模型中的系数与单独的回归系数进行比较。

标签: r logistic-regression


【解决方案1】:

当然可以。根据您的基本问题,其他方法可能更合适(如混合效应模型)。

以下两个例子是等价的。您可以向其中添加肉(例如提取系数)。

sapply(Data$country, FUN = function(ctry) {
  summary(glm(Y ~ X, data = Data, family = binomial, subset = country == ctry))
}, simplify = FALSE) # if simplify = FALSE, it is coerced to a matrix

for (ctry in Data$country) {
  print( # print has to be called explicitly inside a for loop
    summary(glm(Y ~ X, data = Data, family = binomial, subset = country == ctry))
  )
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-26
    • 2022-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-16
    • 1970-01-01
    相关资源
    最近更新 更多