Upgrade to Pro — share decks privately, control downloads, hide ads and more …

SaaS アナリティクス・シリーズ - 生存分析のためのデータの作り方 Part 2

SaaS アナリティクス・シリーズ - 生存分析のためのデータの作り方 Part 2

SaaSなどのサブスクリプションのビジネスでは顧客のチャーンをしっかりと理解することが非常に重要になりますが、そこでよく使われるのが生存分析です。

今回は、アクセスログのデータから生存分析ためのデータを作成する方法を紹介します。

Ikuya Murasato

June 03, 2021
Tweet

More Decks by Ikuya Murasato

Other Decks in Business

Transcript

  1. 4

  2. 37 60 10 7 21 9 3 30 4/20 4/10

    4/3 3/13 3/4 1/4 1/1 11/30
  3. 42 10 20 30 50 100 0 40 60 70

    80 90 10 20 30 ස౓ ར༻ִؒʢ೔ʣ ར༻ִؒͷ࠷େ஋ ࠷େͷར༻ִؒΛ͖͍͠஋ʹ͢Δͱɺ1ճͷۃ୺ͳར༻ִؒʹৼΓճ͞ΕɺλΠϜ ϦʔʹνϟʔϯΛਪఆͰ͖ͳ͍ɻ νϟʔϯ
  4. 43 ۃ୺ͳར༻ִؒͷ஋ͷӨڹΛड͚ͳ͍Α͏ʹɺશମͷ95%ͷར༻ִ͕ؒ ؚ·ΕΔͱ͜Ζʹɺ͖͍͠஋Λઃఆ͢Δɻ 10 20 30 50 100 0 40

    60 70 80 90 10 20 30 ස౓ ར༻ִؒʢ೔ʣ ͖͍͠஋ શମͷ95%ͷར༻ ִؚ͕ؒ·ΕΔ 55
  5. 44 ͜ͷΑ͏ʹɺස౓Λখ͍͞ํ͔ΒॱʹͳΒ΂ͯɺશମͷσʔλͷͲͷ͘ Β͍ΛؚΉ͔Λද͖͍͢͠஋ΛύʔηϯλΠϧͱݺͿɻ 10 20 30 50 100 0 40

    60 70 80 90 10 20 30 ස౓ ར༻ִؒʢ೔ʣ ར༻ִؒͷ95ύʔηϯλΠϧ 55 શମͷ95%ͷར༻ ִؚ͕ؒ·ΕΔ
  6. 45 10 20 30 50 100 0 40 60 70

    80 90 10 20 30 ස౓ ར༻ִؒʢ೔ʣ ར༻ִؒͷ95ύʔηϯλΠϧ 55 νϟʔϯ ར༻ִؒͷ࠷େ஋Ͱ͸ͳ͘ɺ95%ύʔηϯλΠϧΛ͖͍͠஋ʹઃఆ͢Δ͜ͱͰɺۃ ୺ʹେ͖͍ར༻ִؒΛআ͍ͯɺར༻࣮ଶʹΑΓ͍ۙܗͰ͖͍͠஋ΛઃఆͰ͖Δɻ
  7. 47 6/3 ࠓ೔ 4/20 4/9 ࠷ޙͷར༻ 55೔લ 2/24 1/7 11/30

    9/26 6/18 10/26 6/5 ࠷ޙͷར༻೔ <= (<ࠓ೔ͷ೔෇> − <ར༻ִؒͷ95ύʔηϯλΠϧ>) νϟʔϯͷ൑ఆ
  8. 49 10 20 30 50 100 0 40 60 70

    80 90 10 20 30 ར༻ִؒʢ೔ʣ Ϣʔβʔ͝ͱʹར༻ִؒͷ95ύʔηϯλΠϧΛܭࢉ͢Δɻ 55 10 20 30 50 100 0 40 60 70 80 90 10 20 30 ར༻ִؒʢ೔ʣ ར༻ִؒͷ95ύʔηϯλΠϧ ར༻ִؒͷ95ύʔηϯλΠϧ 32 ϢʔβʔA ϢʔβʔB
  9. 50 6/3 4/20 4/9 Ϣʔβʔ͝ͱͷར༻ִؒͷύʔηϯλΠϧΛར༻ͯ͠ɺνϟʔϯਪఆ͢Δɻ 3/3 1/7 12/30 11/29 9/26

    6/18 3/20 ར༻ִؒͷ95ύʔηϯλΠϧ: 55೔ ར༻ִؒͷ95ύʔηϯλΠϧ: 32೔ 6/3 ࠓ೔ 4/20 5/14 2/18 2/2 12/23 11/15 10/3 8/28 7/20 ࠓ೔ ࠷ޙͷར༻ 55೔લ 32೔લ ࠷ޙͷར༻
  10. 52 10 20 30 50 100 0 40 60 70

    80 90 10 20 30 ස౓ ར༻ִؒʢ೔ʣ ར༻ִؒͷ90ύʔηϯλΠϧ νϟʔϯͷਪఆج४ΛγϏΞʹ͚ͨ͠Ε͹ɺΑΓখ͞ͳύʔηϯλΠϧΛར༻ ͢Ε͹ྑ͍ɻ 42 νϟʔϯ
  11. 60 Ϣʔβʔ໊ ར༻೔ lag(ར༻೔) ར༻ִؒ Tom 2020-02-01 <NA> <NA> Tom

    2020-05-01 2020-02-01 90 Tom 2020-09-01 2020-05-01 123 <ར༻೔> − lag(<ར༻೔>) ར༻ִؒ
  12. Ϣʔβʔ໊ ར༻೔ ར༻ִؒʢ೔ʣ Tom 2020-02-01 <NA> Tom 2020-09-01 212 Tom

    2020-05-01 -123 ར༻೔Ͱฒͼସ͑ΒΕ͍ͯͳ͍ͱਖ਼͍͠ར༻ִ͕ؒܭࢉͰ͖ͳ͍ɻ
  13. Ϣʔβʔ໊ ར༻೔ lag(ར༻೔) ར༻ִؒ Tom 2020-02-01 <NA> <NA> Tom 2020-05-01

    2020-02-01 90 Tom 2020-09-01 2020-05-01 123 John 2020-01-01 2020-09-01 -243 John 2020-02-03 2020-01-01 33 ͔͠͠ɺ͜ͷ··ͩͱTomͱJohnʹ·͕ͨͬͯલճͷར༻೔Λܭࢉ͠ ͯ͠·͏ɻ
  14. Ϣʔβʔ໊ͰάϧʔϓԽ͓ͯ͘͜͠ͱͰɺϢʔβʔ͝ͱʹར༻ִ͕ؒద ੾ʹܭࢉͰ͖Δɻ Ϣʔβʔ໊ ར༻೔ lag(ར༻೔) ར༻ִؒʢ೔ʣ Tom 2020-02-01 <NA> <NA>

    Tom 2020-05-01 2020-02-01 90 Tom 2020-09-01 2020-05-01 123 John 2020-01-01 <NA> <NA> John 2020-02-03 2020-01-01 33
  15. Ϣʔβʔ໊ ར༻೔ lag(ར༻೔) ར༻ִؒʢ೔ʣ Tom 2020-02-01 <NA> <NA> Tom 2020-02-01

    2020-02-01 0 Tom 2020-05-01 2020-02-01 90 Tom 2020-09-01 2020-05-01 123 ಉ͡೔ʹෳ਺ͷΞΫηε͕͋Δͱɺར༻ִ͕ؒ0೔ʹͳͬͯ͠·͏ͷ Ͱɺ1೔1ΞΫηεͷσʔλʹ͢Δඞཁ͕͋Δɻ
  16. 76 ֤Ϣʔβʔͷར༻ִ͕ؒܭࢉͰ͖ͨΒɺੜଘۂઢ༻ͷσʔλΛ࡞੒͢ΔͨΊʹɺ ࠷ॳͷར༻೔ɺ࠷ޙͷར༻೔ɺར༻ִؒͷ95ύʔηϯλΠϧΛूܭ͍ͨ͠ɻ Ϣʔβʔ໊ ࠷ॳͷར༻೔ ࠷ޙͷར༻೔ ར༻ִؒͷ95ύʔηϯλΠϧ Tom 2020-02-01 2020-11-20

    120 John 2020-01-01 2020-04-04 39 Ϣʔβʔ໊ ར༻೔ ར༻ִؒʢ೔ʣ Tom 2020-02-01 <NA> Tom 2020-05-01 90 Tom 2020-09-01 123 Tom 2020-11-20 80 John 2020-01-01 <NA> John 2020-02-03 33 John 2020-02-24 21 John 2020-04-04 40
  17. Ϣʔβʔ໊ ࠷ॳͷར༻೔ ࠷ޙͷར༻೔ ར༻ִؒͷ95ύʔηϯλΠϧ Tom 2020-02-01 2020-11-20 120 John 2020-01-01

    2020-04-04 39 Ϣʔβʔ໊ ར༻೔ ར༻ִؒʢ೔ʣ Tom 2020-02-01 <NA> Tom 2020-05-01 90 Tom 2020-09-01 123 Tom 2020-11-20 80 John 2020-01-01 <NA> John 2020-02-03 33 John 2020-02-24 21 John 2020-04-04 40 ར༻೔ͷ࠷খ஋ͱ࠷େ஋Λूܭ͢Ε͹ɺ࠷ॳͷར༻೔ɺ࠷ޙͷར༻೔ʹ ͳΔɻ 77
  18. Ϣʔβʔ໊ ར༻೔ ར༻ִؒʢ೔ʣ Tom 2020-02-01 <NA> Tom 2020-05-01 90 Tom

    2020-09-01 123 Tom 2020-11-20 80 John 2020-01-01 <NA> John 2020-02-03 33 John 2020-02-24 21 John 2020-04-04 40 78 ར༻ִؒͷ95ύʔηϯλΠϧΛूܭ͍ͨ͠ɻ Ϣʔβʔ໊ ࠷ॳͷར༻೔ ࠷ޙͷར༻೔ ར༻ִؒͷ95ύʔηϯλΠϧ Tom 2020-02-01 2020-11-20 120 John 2020-01-01 2020-04-04 39
  19. 80 ※࣮ࡍʹूܭ͢Δࡍ͸ɺsummarize(ूܭ)ؔ਺ͷதͰར༻͢Δ quantile(<ར༻ִؒ>, probs = 0.95) ར༻ִؒͷ95ύʔηϯλΠϧ Ϣʔβʔ໊ ར༻೔ ར༻ִؒʢ೔ʣ

    Tom 2020-02-01 <NA> Tom 2020-05-01 90 Tom 2020-09-01 123 Tom 2020-11-20 80 John 2020-01-01 <NA> John 2020-02-03 33 John 2020-02-24 21 John 2020-04-04 40 Ϣʔβʔ໊ ࠷ॳͷར༻೔ ࠷ޙͷར༻೔ ར༻ִؒͷ95ύʔηϯλΠϧ Tom 2020-02-01 2020-11-20 120 John 2020-01-01 2020-04-04 39
  20. 88 6/3 ࠓ೔ 4/20 4/9 ࠷ޙͷར༻ 55೔લ 2/24 1/7 11/30

    9/26 6/18 10/26 6/5 ࠷ޙͷར༻೔ <= (<ࠓ೔ͷ೔෇> − <ར༻ִؒͷ95ύʔηϯλΠϧ>) νϟʔϯͷ൑ఆ