Prophet、並びに外部変数に関して

Prophet に関しての質問です。
前提として、自己都合・会社都合退職者数をそれぞれ予測したい、というのが課題としてあります。
次に、データとして、退職日、退職時の年齢、エンゲージメントスコア(2018年8月、2019年10月)分があります。
基本的な所が分かってないのでそこから確認ですが、まずこのデータでProphetを出来るのか、が初めの質問です。
もう少し具体的に、退職した社員のデータだけで良いのが、すべての社員のデータが必要か、ということを確認したいと思います。
多分退職した社員のデータで良いような気はしますが。
次に、年齢とエンゲージメントスコアは外部変数として使えるのか、と使う場合は、どう使うべきかを確認したいと思います。
感覚的に、若い人ほど自己都合で辞めやすい気はしますが、予測を考えた場合、退職していない社員のデータが無いとどう年齢を使うのか分かりにくく、且つ年齢ではなく生年月日を使うべきではないかと思わなくもないです。
次にエンゲージメントが低いほど自己都合で辞めやすいという仮説は立ちますが、外部変数として例えば辞めた日のスコアが分かるわけでもなく、将来のスコアがあるわけでもなく、全員が18年と19年の調査に参加したわけでもありません。
最後に年齢とエンゲージメント共通ですが、Sumを使うべきか、Averageを使うべきかがあります。
ここまで考えるとProphetでは年齢とエンゲージメントは外部変数として使えないのではないかと思いますが、ねんのため。
宜しくお願い致します。

確かにProphetでの予測に向いているケースとは言えなさそうですね。

Prophetが予測の拠り所にしているのは、年、週などの季節性のパターンと、全体としてどの程度上がり調子なのか、下がり調子なのか、といったトレンドです。

外部予測変数については、これを使って未来の値を予測するには、過去の値に加えて、未来の外部予測変数の値を用意する必要があります。

外部予測変数が、未来について確定しているものであったり、独立して予測しやすいものであったり、予測できなくても、値を仮定したwhat-if分析がしたい場合は未来の値を用意することができると思いますが、そういったケースではないようにお見受けします。

この場合にProphetを適用するとすると、社員の退職数そのものに季節性とトレンドを拠り所にした予測を外部変数なして行う、または、全社員数を外部変数として、将来の会社の社員数を仮定した予測、といったことまではできると思います。

社員個人レベルでの年齢、エンゲージメントなどの離職への影響を見たいということであれば、コックス回帰などの生存分析のほうが妥当な手法ではないかと思います。

ご回答ありがとうございます、

ある程度理解できましたが、Prophetに適切なデータの性質について、もう少し理解したいと思います。
基本的な内容となりますが、ご容赦下さい。

まず、私の例でいうと、データのユニットとしては各社員ですが、日付がユニットであるべきでしょうか。つまりAさんが○○日に辞めた、というデータではなく、○○日に何人辞めたというデータでなければだめでしょうか。外部変数を使う際には日付ごと何人のデータであるべきのように思いますが、外部変数を使わない場合はどちらでも構わないように思います(value columnを# of casesにすれば)。

次に外部変数ですが、将来予測をする際にはどのようにデータとして入力すべきでしょうか。
○○日の要素A,○○日の要素Bという形に各日のデータに入力し、将来予想したい部分に関しては、日付と要素A,Bの未入力して、離職数は空欄にしておけばよいのでしょうか。

最後に、西田様が例として使っていた売り上げを広告や割引率で予測する場合ですが、割引はともかく広告が効果を発揮するにはタイムラグがあるように思います。
そのようにずれがある効果に関してはどのように取り扱えばいいのでしょうか。
アイデアとして、広告が効果を発揮するのが1か月ごと仮定して、1か月前の広告費を入れる、というようなことは出来ますが、それはそれで問題が発生しそうですので。

基礎的なことで恐縮ながら、ご回答いただけますと幸いです。
よろしくお願いします。

3つご質問があると思いますので、順にお答えします。

prophetのアルゴリズムに最終的に渡すデータは、日付単位などの時系列データとなりますが、一行が一人を表すデータでも、Exploratoryがprophetを呼び出す前に、日毎の人数を数えて内部で時系列化しますので、おっしゃるとおりそのまま使用できます。

外部変数を使うときの入力データとしては、離職欄のみ空白のデータを入力してください。例えば、離職の時系列のデータフレーム(過去データ)と、外部予測変数のデータフレーム(過去+未来のデータ)を日付をキーとしてでfull joinするとそのようなデータフレームを作ることができると思います。

広告の効果を外部変数にする例については、広告効果のズレを考慮すると、インパクトの畳み込みなどの加工を入れて、ある日へのそれまでの広告の総合的な影響を表現する値を計算してから、それをprophetの外部変数に使う、などがアイデアとしてありうると思います。

「いいね!」 1

お世話になっております、

ご回答ありがとうございました。
何となくイメージが分かってきましたので、あれこれ実験してみたいと思います。
また、個人の予測に関してはCox regression に挑戦してみます。
勉強になりました、ありがとうございます。

「いいね!」 2