BTYD パッケージを使用して CLV モデルを構築していますが、回避できないような障害にぶつかりました。
このチュートリアルのセクション 2.1 の指示に注意深く従っています。十分な統計量による顧客のキャリブレーション マトリックス (cal.cbs) にたどり着くまで、すべてが順調に進んでいるように見えました。チュートリアルで説明されているように、次のコードを使用して cal.cbs を生成しました。
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="week")
最後の行まですべてが機能しているように見えました。R から次のメッセージが表示されました。
> cal.cbs <- dc.BuildCBSFromCBTAndDates(cal.cbt, cal.cbs.dates, per="week")
Started making calibration period CBS...
Finished building CBS.
Warning message:
In cbind(f, r, T) :
number of rows of result is not a multiple of vector length (arg 2)
これが何を意味するのか完全にはわからないので、これが大したことなのかどうかはわかりません... パラメータの推定を試みるまで無視することにしました。これが起こったことです:
> params <- pnbd.EstimateParameters(cal.cbs)
Error in optim(logparams, pnbd.eLL, cal.cbs = cal.cbs, max.param.value =
max.param.value, :
L-BFGS-B needs finite values of 'fn'
In addition: Warning message:
In log(exp(loga - logb) - 1) : NaNs produced
ここからどこへ行けばいいのか本当にわかりません。pnbd.EstimateParameters 関数のソース コードを調べましたが、何が問題なのか正確にはわかりませんでした。誰かがこれを修正する方法を少しでも知っていますか? 私は今完全に立ち往生しているので、どんな提案も大歓迎です。