如何解决具有lm和因数的面板回归,跨面板或分组的数据“泄漏”
我正在尝试使用此样本数据进行面板回归,但是看起来某些数据在各组之间“泄漏”:
data = data.frame(group = c('a','a','b','c','c'),var1 = c(10,8,5,7,9,3,2,9))
ft = lm(var1 ~ I(dplyr::lag(var1,1)) + factor(group),data = data)
ft$model
var1 I(dplyr::lag(var1,1)) factor(group)
2 8 10 a
3 5 8 a
4 7 5 b
5 9 7 b
6 0 9 b
7 3 0 c
8 2 3 c
9 9 2 c
在拟合的数据中,它表明一些数据已移动了组,即边缘情况。每组滞后1个,我希望每个组有两个观察结果,而第一个观察结果则被丢弃,但是'b'和'c'组有三个观察结果。
如何防止这种泄漏并使其滞后于各个组?预期的ft$model
类似于:
group var1 `lag(var1,1)`
1 a 10 NA
2 a 8 10
3 a 5 8
4 b 7 NA
5 b 9 7
6 b 0 9
7 c 3 NA
8 c 2 3
9 c 9 2
解决方法
为什么不先创建所需的数据,然后将其应用于lm
?
data %>%
group_by(group) %>%
mutate(lag_var1 = lag(var1)) -> data1
# group var1 lag_var1
# <chr> <dbl> <dbl>
#1 a 10 NA
#2 a 8 10
#3 a 5 8
#4 b 7 NA
#5 b 9 7
#6 b 0 9
#7 c 3 NA
#8 c 2 3
#9 c 9 2
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。