У меня есть некоторые данные о покупках на уровне магазина, случайная выборка данных выглядит следующим образом:
PANID WEEK L1
966 3357632 2011-02-21 PIZZA
352 3357632 2009-11-09 SALTY
68 3357632 2012-06-18 BEER
65 3357632 2012-03-05 BEER
43 3108696 2011-10-31 BEER
672 3144766 2010-03-29 SALTY
70 3357632 2012-06-18 BEER
810 3144766 2012-06-18 SALTY
546 3144766 2008-05-05 SALTY
933 3357632 2009-06-15 PIZZA
(РЕДАКТИРОВАТЬ: эта случайная выборка содержит информацию 2012 года, предоставленные мной данные были отфильтрованы с 2007 года- 2010 - из-за количества символов)
Имеется 3 PANID
с за 4 года данных для 3 категорий продуктов (BEER
, SALTY
, PIZZA
).Я пытаюсь выяснить, покупают ли люди, купившие BEER
на данной неделе, SALTY
/, строят ли вероятность того, что PANID: 3144766
купили SALTY
за WEEK: 2009-06-15
какова вероятность того, что они также будут BEER
.Делая то же самое для pizza
, т.е. учитывая, что они купили BEER
вероятность того, что они купят PIZZA
, и, наконец, учитывая, что они купили PIZZA
, вероятность того, что они купят SALTY
.
Например, человек ниже купил 3 пакета SALTY
и одну единицу BEER
, но на другой неделе они просто купили бы BEER
и PIZZA
или просто SALTY
.
> data %>%
+ group_by(PANID) %>%
+ filter(WEEK == "2009-06-15") %>%
+ filter(PANID == "3144766")
# A tibble: 6 x 3
# Groups: PANID [1]
PANID WEEK L1
<int> <date> <chr>
1 3144766 2009-06-15 BEER
2 3144766 2009-06-15 SALTY
3 3144766 2009-06-15 SALTY
4 3144766 2009-06-15 SALTY
5 3144766 2009-06-15 PIZZA
6 3144766 2009-06-15 PIZZA
Данные:
EDIT1: данные удалены из-за ограничения по количеству символов.Можно найти здесь: https://textuploader.com/db1kf
EDIT2:
Я запускаю следующий код, чтобы получить следующий вывод:
#Probability of buying BEER or SALTY if PIZZA was bought
dat %>%
group_by(PIZZA > 0) %>%
summarise(beer = sum(BEER > 0) / n(), nobeer = sum(BEER == 0) / n(),
salty = sum(SALTY > 0) / n(), nosalty = sum(SALTY == 0) / n())
#Probability of buying SALTY or PIZZA if BEER was bought
dat %>%
group_by(BEER > 0) %>%
summarise(pizza = sum(PIZZA > 0) / n(), nopizza = sum(PIZZA == 0) / n(),
salty = sum(SALTY > 0) / n(), nosalty = sum(SALTY == 0) / n())
#Probability of buying BEER or PIZZA if SALTY was bought
dat %>%
group_by(SALTY > 0) %>%
summarise(pizza = sum(PIZZA > 0) / n(), nopizza = sum(PIZZA == 0) / n(),
beer = sum(BEER > 0) / n(), nobeer = sum(BEER == 0) / n())
Вывод:
1)
# A tibble: 2 x 5
`PIZZA > 0` beer nobeer salty nosalty
<lgl> <dbl> <dbl> <dbl> <dbl>
1 FALSE 0.333 0.667 0.833 0.167
2 TRUE 0.257 0.743 0.586 0.414
2)
# A tibble: 2 x 5
`BEER > 0` pizza nopizza salty nosalty
<lgl> <dbl> <dbl> <dbl> <dbl>
1 FALSE 0.371 0.629 0.843 0.157
2 TRUE 0.290 0.710 0.532 0.468
3)
# A tibble: 2 x 5
`SALTY > 0` pizza nopizza beer nobeer
<lgl> <dbl> <dbl> <dbl> <dbl>
1 FALSE 0.569 0.431 0.569 0.431
2 TRUE 0.272 0.728 0.219 0.781
Просто мое понимание верно.Если я покупаю PIZZA
, у меня есть 0.586
вероятность покупки SALTY
и 0.414
вероятность не покупать SALTY
(таблица 1).Однако, если я куплю SALTY
, тогда у меня будет 0.272
вероятность покупки PIZZA
и 0.728
не покупки PIZZA
(таблица 3)?