私はRでBTYD BG NBDを使用しており、個々のレベル推定を行っています。データ準備のため BTYD WalkthroughBTYDすべての観測について個別レベル推定
コード:20ページのドキュメント次たとえば
system.file("data/cdnowElog.csv", package = "BTYD")%>%
dc.ReadLines(., cust.idx = 2, date.idx = 3, sales.idx = 5)%>%
dc.MergeTransactionsOnSameDate()%>%
mutate(date = parse_date_time(date, "%Y%m%d")) -> elog
end.of.cal.period <- as.Date("1997-09-30")
elog.cal <- elog[which(elog$date <= end.of.cal.period), ]
split.data <- dc.SplitUpElogForRepeatTrans(elog.cal);
birth.periods <- split.data$cust.data$birth.per
last.dates <- split.data$cust.data$last.date
clean.elog <- split.data$repeat.trans.elog;
freq.cbt <- dc.CreateFreqCBT(clean.elog);
tot.cbt <- dc.CreateFreqCBT(elog)
cal.cbt <- dc.MergeCustomers(tot.cbt, freq.cbt)
cal.cbs.dates <- data.frame(birth.periods, last.dates, end.of.cal.period)
cal.cbs <- dc.BuildCBSFromCBTAndDates(cal.cbt, cal.cbs.dates,per="week")
params <- pnbd.EstimateParameters(cal.cbs);
1は、特定の観測のための推定値を得ることができます。個人レベル推定のための コード:
cal.cbs["1516",]
# x t.x T.cal
# 26.00 30.86 31.00
x <- cal.cbs["1516", "x"]
t.x <- cal.cbs["1516", "t.x"]
T.cal <- cal.cbs["1516", "T.cal"]
bgnbd.ConditionalExpectedTransactions(params, T.star = 52,
x, t.x, T.cal)
# [1] 25.76
私の質問は、それは私がハードのような特定のID番号をコーディングするのではなく、各行の期待を含むデータフレームを得ることができることを再帰的にこのように実行することが可能です」この場合は1516になりますか?
ありがとうございます!
と簡単です。次に質問をするときは、一般的な視聴者があなたの後ろにあるデータセットでおもしろくするために、より適切な情報を提供してください。ご多幸を祈る。 – InfiniteFlashChess