<- function(n){
get_control_data <- 1:n %>% as.character
user_ids
<- rbeta(n, 3.0, 7.0)
true_ctr
<- ymd("20240901")
start_date <- start_date + days(13)
end_date <- seq.Date(start_date, end_date, by = "day")
dates
tibble(user_id = user_ids, true_ctr = true_ctr) %>%
rowwise() %>%
mutate(data = list(
tibble(
dt = dates,
impression = sample(c(TRUE, FALSE), length(dates), replace = TRUE),
impressions = ifelse(impression, sample(1:100, length(dates), replace = TRUE), 0),
clicks = ifelse(impression, rbinom(length(dates), impressions, true_ctr), 0)
)%>%
)) unnest(cols = c(data)) %>%
ungroup() %>%
filter(impression) %>%
select(dt, user_id, impressions, clicks)
}
はじめに
Tokyo.R#115の応用セッションでおはなししたよ~。今回は相関データに対してどのように対処すべきか?というテーマです。デルタ法を利用しましょう!という結論ですが、サンプルサイズ設計をきちんとやらないとだめですよ~という内容です。A/Bてすと難しい。
pdf版の資料は一部見切れてしまっているのでquarto版をおすすめします。
pdf版
quarto版
補足
データ生成過程
後から日付のロジックを加えたのですが、期待値が0.3になってないかもしれない事に気づきました。気になる方は日付ごとにimpressionが発生するかどうかの部分を削除してください。