Я строю модель pareto / nbd с использованием пакета BTYD
и получаю ошибку при его использовании.Я следовал указаниям из [прохождения BTYD] [1].Все работало нормально, пока я не попал в калибровочную матрицу по количеству статистических данных клиента (cal.cbs).Я использовал следующий код для генерации cal.cbs, как указано в руководстве:
library(BTYD)
tot.cbt <- dc.CreateFreqCBT(elog)
cal.cbt <- dc.MergeCustomers(tot.cbt, freq.cbt)
birth.periods <- split.data$cust.data$birth.per
last.dates <- split.data$cust.data$last.date
cal.cbs.dates <- data.frame(birth.periods, last.dates,
end.of.cal.period)
cal.cbs <- dc.BuildCBSFromCBTAndDates(cal.cbt, cal.cbs.dates,
per="month")
Но я получил предупреждающее сообщение:
In cbind(f, r, T) :
number of rows of result is not a multiple of vector length (arg 2)
Хотя я преодолел предупреждение с помощьюследующий код:
tot.cbt <- dc.CreateFreqCBT(elog.cal)
# instead of
tot.cbt <- dc.CreateFreqCBT(elog)
Но я получаю сообщение об ошибке при оценке параметров:
params <- pnbd.EstimateParameters(cal.cbs)
Ошибка в pnbd.LL (params, x, tx, T.cal): T.cal должен быть числовым и не может содержать отрицательных чисел.
Я понятия не имею, как решить эту проблему и почему я получаю эту ошибку.Кто-нибудь может мне помочь, пожалуйста?Большое спасибо заранее!