相関データとサンプルサイズ設計 デルタ法のサンプルサイズ設計にはきをつけて

R
Author

statditto

Published

October 19, 2024

はじめに

Tokyo.R#115の応用セッションでおはなししたよ~。今回は相関データに対してどのように対処すべきか?というテーマです。デルタ法を利用しましょう!という結論ですが、サンプルサイズ設計をきちんとやらないとだめですよ~という内容です。A/Bてすと難しい。

pdf版の資料は一部見切れてしまっているのでquarto版をおすすめします。

pdf版

quarto版

補足

データ生成過程

後から日付のロジックを加えたのですが、期待値が0.3になってないかもしれない事に気づきました。気になる方は日付ごとにimpressionが発生するかどうかの部分を削除してください。

get_control_data <- function(n){
  user_ids <- 1:n %>% as.character

  true_ctr <- rbeta(n, 3.0, 7.0)
  
  start_date <- ymd("20240901")
  end_date <- start_date + days(13)
  dates <- seq.Date(start_date, end_date, by = "day")
  
  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)
}