我正在研究BTYD R软件包,问题是客户在校准结束时存活的概率非常高。即使在校准周期中仅有一次交易的观察也具有0.9999左右的概率。我知道参数" s" (由包估计)用于此计算。我的伽马非常低(几乎为0)。当我尝试手动更改它以获得更高的值时,概率会下降。知道如何处理这个问题吗?我在下面附上我的代码。
elog <- dc.MergeTransactionsOnSameDate(elog)
end.of.cal.period <- min(elog$date)+as.numeric((max(elog$date)-min(elog$date))/2)
data <- dc.ElogToCbsCbt(elog, per="week",
T.cal=end.of.cal.period,
merge.same.date=TRUE,
statistic = "freq")
cal2.cbs <- as.matrix(data[[1]][[1]])
## prameters estimation
params2 <- pnbd.EstimateParameters(cal2.cbs)
## log likehood
(LL <- pnbd.cbs.LL(params2, cal2.cbs))
p.matrix <- c(params2, LL)
for (i in 1:20) {
params2 <- pnbd.EstimateParameters(cal2.cbs, params2)
LL <- pnbd.cbs.LL(params2, cal2.cbs)
p.matrix.row <- c(params2, LL)
p.matrix <- rbind(p.matrix, p.matrix.row)
}
(params2 <- p.matrix[dim(p.matrix)[1],1:4])
# set up parameter names for a more descriptive result
param.names <- c("r", "alpha", "s", "beta")
LL <- pnbd.cbs.LL(params2, cal2.cbs)
# PROBABILITY A CUSTOMER IS ALIVE AT END OF CALIBRATION / TRAINING
x <- cal2.cbs["123", "x"] # x is frequency
t.x <- cal2.cbs["123", "t.x"] # t.x is recency, ie time of last transactions
T.cal <- 26 # week of end of cal, i.e. present
pnbd.PAlive(params2, x, t.x, T.cal)
答案 0 :(得分:3)
没有&#34; gamma&#34;正在估计的参数 - &#34; s&#34;和&#34; beta&#34;定义辍学率异质性的伽玛分布。我建议您编辑帖子以包含参数以及
的输出pnbd.PlotDropoutRateHeterogeneity(params2)
如果没有查看参数估计值或了解数据的上下文,则至少有两种(非互斥)可能性。
首先,您可能具有非常低(例如,零)的辍学率。如果是这样,您仍然可以使用简单的NBD交易率模型,并假设零辍学率。
其次,你可能会看到&#34;增加频率悖论&#34;。从Peter Fader / Bruce Hardie papers之一的第17-19页开始:
对于低频客户,新近度与[预期交易]之间存在几乎线性的关系。但是,这种关系变得很高 非线性的高频客户。换句话说,对于客户 谁曾经做过相对大量的交易, 新近度在决定[价值]方面比在一个方面起着更大的作用 不常见的过去购买者。
根据作者的说法,像你这样的客户描述很少(甚至只是一个)交易很有可能被“活着”#34;对新近度的依赖程度较低。这是因为根据定义,低频率客户可能会有很长的差距。购买之间。因此,即使他们没有交易一段时间,我们也应该为较低频率的客户分配较少的风险。将此与高频客户进行比较 - 我们在没有看到交易的情况下走得越久,我们就越快得出结论:客户已经死了#34;因为我们知道他们通常会做很多交易。