【问题标题】:how to regress unemployment on minimum wage in r如何根据 r 中的最低工资回归失业
【发布时间】:2021-07-29 08:57:24
【问题描述】:

我有两个不同的数据集,一个包含各州的年失业率(列在单列下),第二个数据集包含每个州的最低工资。两者都只有 2003-2020 年之间的数据。

问题是

  1. 它们位于不同的数据集中
  2. X 变量(最低工资)跨越 17 个不同的列

问题

  1. 如何对来自 2 个不同数据集的数据进行回归
  2. 如何在不输入 minwage$2003 + minwage$2004 + 的情况下回归 17 列。 . . + minwage$2020

我试过这个,但同样效率很低。

unemp_minwage <- lm(unemployment_03_20$`U-3` ~ minwage$`2003` + minwage$`2004` + minwage$`2005` + minwage$`2006` + minwage$`2007` + minwage$`2008` + minwage$`2009` + minwage$`2010` + minwage$`2011` + minwage$`2012` + minwage$`2013` + minwage$`2014` + minwage$`2015` + minwage$`2016` + minwage$`2017` + minwage$`2018` + minwage$`2019` + minwage$`2020`)

更不用说我得到了这个错误代码: model.frame.default 中的错误(公式 = 失业_03_20$U-3 ~ minwage$2003 + : 可变长度不同(找到'minwage$2003')

然后我尝试只回归一年的最低工资,但遇到了类似的错误。

建议?

【问题讨论】:

    标签: r olsmultiplelinearregression


    【解决方案1】:

    要获得问题中的确切公式:

    as.formula(paste("unemployment_03_20$`U-3` ~", paste(paste0("minwage$`", 2003:2020, "`"), collapse = " + ")))
    

    所以你可以这样做(为了清楚起见):

    model <- as.formula(paste("unemployment_03_20$`U-3` ~", paste(paste0("minwage$`", 2003:2020, "`"), collapse = " + ")))
    
    unemp_minwage2015 <- lm(model)
    

    我强烈建议先合并数据,以免无意中出错,然后向lm() 提供该数据(而不是来自多个数据集的单个向量。

    【讨论】:

    • 我得到了这个错误 model.frame.default(formula = model, drop.unused.levels = TRUE) 中的错误:可变长度不同(找到'minwage$2003') 我该怎么做合并数据?
    • 有没有办法让多列回归,而不必先使用粘贴功能再回归?
    • @ihaveaquestion 您收到该错误是因为您的 DV(U-3)是比您的 IV 更长的向量。这可能是一个大问题,因为您的案例并没有以您期望的方式相互映射。请参阅merge 函数以了解如何合并数据。
    • @ihaveaquestion 还有其他方法。例如,如果您传递给 lm() 的 data 参数的数据集中只有您的 DV 和您的 IV,您可以执行 lm(DV ~ ., data = myDataset) 并得到您想要的。
    猜你喜欢
    • 2019-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-21
    • 2016-05-01
    • 1970-01-01
    • 2018-05-25
    • 2021-03-08
    相关资源
    最近更新 更多