funneljoin: Defining a Tidy Grammar of Funnels in R

funneljoin: Defining a Tidy Grammar of Funnels in R

An introduction to the R package funneljoin, which makes it easy and fast to analyze series of events.

536b78165ceec382bf367917ab26a44a?s=128

Emily Robinson

November 08, 2019
Tweet

Transcript

  1. funneljoin: Defining a Tidy Grammar of Funnels in R Emily

    Robinson @robinson_es
  2. What is a funnel? A funnel is a set of

    events by users over time
  3. E-Commerce company redesigning the homepage ➔ Potential questions: ➔ What’s

    the last page people visit before coming to the homepage? ➔ What are all the product pages people see after the homepage? ➔ How many people who visit the homepage go on to buy something? ➔ What if we limit that to buy within two days?
  4. Some other “first this than that” questions ➔ Which salmon

    migrated to station 1 then station 3 before station 2? ➔ What drugs did people take in the last month before starting drug X? ➔ What was the last ad clicked before registering? ➔ What companies had their stock hit $100 per share then drop to $40?
  5. Example question ➔ When was each user’s first landing and

    their first registration afterward?
  6. Old workflow ➔ When was each user’s first landing and

    their first registration afterward? 1. Filter landed for the first row per user 2. Left join with registered on user_id 3. Filter for timestamp.y > timestamp.x or NA 4. Filter for first row of timestamp.y
  7. Old workflow ➔ Who registered the first time ever after

    their last landing? 1. Filter landed for the last row per user 2. Filter registered for first row per user 3. Left join with registered on user_id 4. Filter for timestamp.y > timestamp.x or NA
  8. Funneljoin package: github.com/robinsones/funneljoin

  9. Goals of this talk: you and funnels 5 minutes ago

    After this talk Tomorrow
  10. Funneljoin Overview

  11. after_join() ➔ When was each user’s first landing and their

    first registration afterward?
  12. after_join() ➔ When was each user’s first landing and their

    first registration afterward? ➔ Table 1 ➔ Table 2 ➔ User column names(s) ➔ Time column name(s) ➔ Type of afterjoin
  13. after_join() structure ➔ When was each user’s first landing and

    their first registration afterward? ➔ Table 1 ➔ Table 2 ➔ User column names(s) ➔ Time column name(s) ➔ Type of afterjoin
  14. Different funnels Time Ad Click Conversion

  15. First ad click and first conversion afterwards? Time Ad Click

    Conversion
  16. First ad click and first conversion afterwards? Time Ad Click

    Conversion
  17. First ad click and first conversion afterwards? Time Ad Click

    Conversion
  18. First ad click and first conversion afterwards? Time first-firstafter Ad

    Click Conversion
  19. Most recent ad click and all conversions afterward? Time Ad

    Click Conversion
  20. Most recent ad click and all conversions afterward? Time Ad

    Click Conversion
  21. Most recent ad click and all conversions afterward? Time Ad

    Click Conversion
  22. Most recent ad click and all conversions afterward? Time last-any

    Ad Click Conversion
  23. All ad clicks and all the conversions afterward Time Ad

    Click Conversion
  24. All ad clicks and all the conversions afterward Time Ad

    Click Conversion
  25. All ad clicks and all the conversions afterward Time any-any

    Ad Click Conversion
  26. Different funnels Time first-firstafter any-any last-any Ad Click Conversion

  27. 16 types of funnels Table 1 type Table 2 type

    First (ever) First (ever) Last (ever) Last (ever) Any (all) Any (all) Lastbefore Firstafter Any combination of:
  28. Demo

  29. Analyzing StackOverflow R questions https://www.kaggle.com/stackoverflow/rquestions/downloads/rquestions.zip/3

  30. How many people who ask a question later answer one?

  31. How long does it take for people to answer their

    first question?
  32. How long does it take for people to answer their

    first question?
  33. What percent answer within a week of asking their first

    question?
  34. Who answers a question before asking one?

  35. Conclusion

  36. Funneljoin goals “Impossible” Possible

  37. Funneljoin goals Time- consuming & error-prone Quick & easy

  38. Funneljoin goals Limited Creativity Asking & answering new questions

  39. Learn more https://robinsones.github.io/funneljoin/ https://hookedondata.org/introducing-the- funneljoin-package/

  40. Thank you! hookedondata.org @robinson_es github.com/robinsones/funneljoin Datascicareer.com