是否有R函数用于反转ad库存值,或将ad库存转换值转换为其预转换状态?
我有一个数值向量(一个时间序列),我知道对它应用了20%的ad股票结转转换。比如说,是否有R函数用于反转ad库存值,或将ad库存转换值转换为其预转换状态?,r,time-series,R,Time Series,我有一个数值向量(一个时间序列),我知道对它应用了20%的ad股票结转转换。比如说, X1,X2,X3,…Xn(预转换时间序列) P1,P2,P3,…Pn(Ad股票转换时间序列) 在哪里 P1=X1 P2=P1*0.2+X2 P3=P2*0.2+X3 PN=P(n-1)*0.2+Xn[下标有点偏离,但希望在这里很明显] 使用与以下类似的函数应用原始adstock效果: ## Function for calculating adstock #' #' @para
- X1,X2,X3,…Xn(预转换时间序列)
- P1,P2,P3,…Pn(Ad股票转换时间序列)
- P1=X1
- P2=P1*0.2+X2
- P3=P2*0.2+X3
- PN=P(n-1)*0.2+Xn[下标有点偏离,但希望在这里很明显]
## Function for calculating adstock
#'
#' @param x Numeric vector to be passed through.
#' @param rate Decay rate to be applied to `x`
#' @export
adstock <- function(x, rate = 0){
x %>%
stats::filter(filter = rate, method = "recursive") %>%
as.numeric() %>% return()
}
##计算adstock的函数
#'
#“@param x要传递的数值向量。
#“@param rate要应用于`x的衰减率`
#“@出口
adstock%
stats::filter(filter=rate,method=“recursive”)%%>%
as.numeric()%>%return()
}
我的问题是。假设我只有上面的P序列(即已经应用ad股票的时间序列),是否有一个R函数可以让我返回到X序列(预转换的时间序列)
非常感谢你 这似乎是一个简单的代数问题 p序列由递推关系定义 然后,解X得到以下关系式 因此,点i处的X值仅取决于p的当前值和先前值 这可以使用例如
dplyr::lag
x <- p - 0.2 * dplyr::lag(p)
x基于毛里茨的答案,这最终对我有效。我所做的只是将解决方案包装在一个函数中。需要替换第一个值,否则返回NA:
reverse_adstock <- function(x, rate = 0.2){
y <- x - rate * dplyr::lag(x)
y[[1]] <- x[[1]] # replace first value
return(y)
}
reverse\u adstock在转换的序列上使用相同的函数。把利率定为负数,谢谢!这很有效。我将其包装在一个函数中:``反向\u adstock