Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否有R函数用于反转ad库存值,或将ad库存转换值转换为其预转换状态?_R_Time Series - Fatal编程技术网

是否有R函数用于反转ad库存值,或将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

我有一个数值向量(一个时间序列),我知道对它应用了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
    #'
    #' @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