R?中不同自变量列和滞后因变量的循环回归



我试图在不同的滞后期对过去的新员工进行未来增长(独立变量)的回归,I为I是1:24,但在运行回归时我一直遇到问题。我将感谢帮助我得到的错误或关于如何运行回归的任何更好的建议。

由于我需要计算与滞后期相对应的时间框架内的未来增长,我计算并存储了时间段1:24 in的增长,列名为growth_m1, growth_m2,…在同一个数据表中使用下面的公式:

n <- 24
for (i in 1:n) {
growth_data[[paste0("growth_m", i)]] <- c(growth_data$sales - lag(growth_data$sales,i))
}

我的数据是这样的:

newemployees growth_m1 growth_m2 growth_m3
-0.03   NA  NA  NA  
1.01    0.3 NA  NA  
0.72    0.0 0.3 NA  
-1.21   0.7 0.7 1.0 
-2.51   0.0 0.7 0.7 
2.14    0.3 0.3 1.0 
-5.66   0.0 0.3 0.3 

现在我需要对滞后(growth_data$newemployees, I)运行growth_mi列的回归,并将系数存储在1点24分I的数据框架中。我已经尝试了下面的公式,但我得到一个错误:

model <- list()
for (i in 1:24){
model[[i]] = lm(growth_data[,names(growth_data)[grepl(paste0("growth_m", i),names(growth_data))]][1] ~ lag(growth_data$newemployees,i), data=growth_data)
}

model.frame.default(formula = growth_data[,names(growth_data))[grepl(paste0("growth_m",:无效类型(列表)变量'growth_data[,names(growth_data)][1]'

如何运行此回归并正确存储数据?我是一个非常新的R,所以会感谢任何帮助!

使用内置到R中的anscombe作为示例(因为问题中缺少输入)首先创建公式fo的字符向量,然后使用lapply运行每个公式,给出models中的lm模型。以后请阅读r标签页面顶部的信息,并提供完整的可复制示例。这使用了坍缩包中的flag,它与base R中的lag不同- base Rlag不适用于普通向量。使用do.call的目的是显示如下所示的Call:行。如果我们只使用更简单的run_lm <- function(fo) lm(formula(fo), anscombe),结果将是正确的;但是,Call:行实际上显示的是formula(fo)

library(collapse) 
fo <- sprintf("y%d ~ x%d + flag(y%d)", 1:4, 1:4, 1:4)
run_lm <- function(fo) do.call("lm", list(formula(fo), quote(anscombe)))
models <- lapply(fo, run_lm)
models

[[1]]
Call:
lm(formula = y1 ~ x1 + flag(y1), data = anscombe)
Coefficients:
(Intercept)           x1     flag(y1)  
4.7739       0.4849      -0.2138  

[[2]]
Call:
lm(formula = y2 ~ x2 + flag(y2), data = anscombe)
...snip...

注意

anscombe看起来像这样:

> anscombe
x1 x2 x3 x4    y1   y2    y3    y4
1  10 10 10  8  8.04 9.14  7.46  6.58
2   8  8  8  8  6.95 8.14  6.77  5.76
3  13 13 13  8  7.58 8.74 12.74  7.71
4   9  9  9  8  8.81 8.77  7.11  8.84
5  11 11 11  8  8.33 9.26  7.81  8.47
6  14 14 14  8  9.96 8.10  8.84  7.04
7   6  6  6  8  7.24 6.13  6.08  5.25
8   4  4  4 19  4.26 3.10  5.39 12.50
9  12 12 12  8 10.84 9.13  8.15  5.56
10  7  7  7  8  4.82 7.26  6.42  7.91
11  5  5  5  8  5.68 4.74  5.73  6.89

相关内容

  • 没有找到相关文章

最新更新