R-从窗口内的回归中提取β和α

R-从窗口内的回归中提取β和α,r,dplyr,time-series,tidyverse,linear-regression,R,Dplyr,Time Series,Tidyverse,Linear Regression,我有这个数据框: structure(list(X_ = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10), Y_ = c(0.00485082338451504, -0.0168046606213001, 0.0271922543834244, 0.00553894528785559, 0.0459064669618974, 0.0735144938632293, 0.0368605806880207, 0.0597490764776278, 0.024430047478

我有这个数据框:

structure(list(X_ = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10), Y_ = c(0.00485082338451504, 
-0.0168046606213001, 0.0271922543834244, 0.00553894528785559, 
0.0459064669618974, 0.0735144938632293, 0.0368605806880207, 0.0597490764776278, 
0.0244300474780141, 0.00904348896641594), Window_5 = c(-4, -3, 
-2, -1, 0, 1, 2, 3, 4, 5), Window_2 = c(-1, 0, 1, 2, 3, 4, 5, 
6, 7, 8)), row.names = c(NA, -10L), class = c("tbl_df", "tbl", 
"data.frame"), na.action = structure(c(`1` = 1L), class = "exclude"))
X_uy_uuuu窗口5窗口2
1     1  0.00485       -4       -1
2     2 -0.0168        -3        0
3     3  0.0272        -2        1
4     4  0.00554       -1        2
5     5  0.0459         0        3
6     6  0.0735         1        4
7     7  0.0369         2        5
9     9  0.0244         4        7
10    10  0.00904        5        8
其中
Window_5=X_-5
Window_2=X_-2
。我在寻找一条简单回归线的β和α,其中α和β:

然而,挑战在于,我需要为每一行指定一个
X\uuu
窗口的参数。例如,对于<代码> x>=7/代码>,回归行只考虑代码< >代码> x> < /代码>开始于<代码> Windows WOW5并结束于<代码> Windows WOR2,在这种情况下<代码> Xy= 7 >窗口将从<代码> Xy= 2 > <代码> Xy= 5 < < /P> 因此,预期的输出将是:(我在excel中进行了此操作,并仔细检查了它,因此值应该是正确的)


PS:如果你能添加错误,那就太好了,但严格来说这不是必需的。

我有一些代码,看起来它应该做你想做的事情。虽然不“整洁”。。。(它应该使用
purrr::pmap
+
broom::tidy
+…)


wfun如果您只需要一个固定宽度的滑动窗口回归(在您的示例中为4,但与您的示例的格式不完全相同),那么可以看看RollRegrees包

library(rollRegres)
roll_regres(Y_ ~ X_, data = dd, width=4)

我将数据作为图像提供,以便更好地查看。您不需要输入,因为我给了您一个可复制的图像示例(第一组代码)。这是X_u2,我会纠正它!能否请您重新编辑您的问题,以便所有文本信息都显示为文本而不是图像?文本可以通过多种方式访问(通过视障者的屏幕阅读器,可搜索…)是的!我正在尝试你刚才做的编辑(我不得不删除它,因为“Window_2”的值是错误的),我现在更正了数据!您的解决方案给了我这个错误:''error in FUN(X[[i]],…):当我在t(sapply(…)中为我的数据帧名称“df”替换“dd”时,对象“dd”未找到',当我在:res中为df替换dd时,仍然给出一个错误:res相同的错误:“error in start:end:Argumento NA/NaN”,其中我现在运行res,但(1)它没有返回X,你能解释一下它的功能吗?直到代码行:“Alpha=cc((Intercept))…什么是cc?它类似于向量“c()”?你能解释最后两行吗?特别是lappy逻辑(如果你认为更清楚的话,你可以使用%>%)(1)你可以
cbind()
将结果添加到原始数据帧中;(2)
cc
在您询问的值上方的行中定义。(3)
lappy()
i
的每个值运行
wfun()
,并将结果作为列表返回