【发布时间】:2019-03-19 23:50:07
【问题描述】:
我正在研究营销组合建模,我正在关注这篇文章
https://analyticsartist.wordpress.com/2014/01/31/adstock-rate-deriving-with-analytical-methods/
文章定义adstock函数如下:
adstock <- function(x, rate=0){
return(as.numeric(filter(x=x, filter=rate, method="recursive")))
}
并进一步使用 R 中 minpack.lm 包中的 nlsm 来计算比率和系数。
model1 <- nlsLM(Applications~b0 + b1 * adstock(Media1, r1) + b2 * adstock(Media2, r2) +
b3 * adstock(Media3, r3) + b4 * adstock(Media4, r4) + b5 * adstock(Media5, r5) +
b6 * adstock(Media6, r6) + b7 * adstock(Media7, r7),
algorithm = "LM",
start = c(b0= 1, b1= 1, b2= 1, b3 = 1, b4 = 1, b5 =1, b6= 1, b7= 1, r1=0, r2=0, r3=0, r4=0, r5=0, r6=0, r7=0),
lower = c(b0=-Inf, b1=-Inf, b2=-Inf, b3 = -Inf, b4 = -Inf, b5 =-Inf, b6= -Inf, b7= -Inf, r1=0, r2=0, r3=0, r4=0, r5=0, r6=0, r7=0),
upper = c(b0= Inf, b1= Inf, b2= Inf, b3 = Inf, b4 = Inf, b5 =Inf, b6= Inf, b7= Inf, r1=0.5, r2=0.5, r3=0.5, r4=0.5, r5=0.5, r6=0.5, r7=0.5))
但是,模型一直失败并出现以下错误
Error in filter_(.data, .dots = compat_as_lazy_dots(...)) :
argument ".data" is missing, with no default
似乎错误来自 adstock 功能,但我不知道如何解决它。
我真的希望有人能帮忙解决这个问题。
提前非常感谢!!
【问题讨论】:
-
您认为您正在使用哪个
filter函数?该错误看起来像dplyr::filter,但您在此处列出的参数看起来像其他东西。 -
尝试使用
return(as.numeric(stats::filter(...)))(使用您的实际参数)。 -
@r2evans,我想这是我一生中最大的错误。你是对的,它被
dplyr::filter和stats::filter掩盖了解决了这个问题。如果我以任何方式浪费了您的时间,我们深表歉意,并非常感谢您的回复。 -
(奇怪的是我以前见过这种类型的问题,
dplyr::filter掩盖了stats::filter,但我无法轻易找到有代表性的问题。) -
没错,我也在找同样的东西,但没有找到任何问题