시작하기무료로 시작하기

무작위화 블록 설계 구현하기

이전에 함께 작업했던 제조 회사가 여전히 작업자 생산성에 대한 실험을 진행하고자 합니다. 앞서 두 블록은 무작위로 설정했는데, 이렇게 해도 되지만, 비슷한 특성을 기준으로 피험자를 묶는 편이 더 나을 때가 있습니다.

이번에도 동일한 직원들이 불러와지지만, productivity라는 DataFrame에 1200명의 다른 동료도 포함되어 있습니다. 또한 시간당 생산 단위를 기준으로 한 작업자 'productivity_score' 열이 포함되어 있어요. 이 열은 비슷한 생산성 값을 가진 블록을 만들기 위해 세 그룹으로 구간화(binning)되었습니다. 회사는 전사적으로 세 가지 옵션('Bonus', 'Profit Sharing', 'Work from Home')의 새로운 인센티브 프로그램을 무작위로 배정하여 적용하고자 합니다.

numpypandas는 각각 np, pd로 불러와져 있습니다.

이 연습은 강의의 일부입니다

Python으로 배우는 실험 설계

강의 보기

연습 안내

  • block들을 섞어서 새로운 DataFrame prod_df를 만드세요.
  • 인덱스를 재설정하여 block이 인덱스이자 열로 동시에 존재하지 않도록 하세요.
  • 'Treatment' 열에 세 가지 처치를 무작위로 배정하세요.

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

# Randomly assign workers to blocks
prod_df = productivity.____('____').apply(
  lambda x: x.____(____)
)

# Reset the index
prod_df = prod_df.____(____)

# Assign treatment randomly
prod_df['Treatment'] = np.random.choice(
  ['____', '____', '____'],
  size=len(____)
)
코드 편집 및 실행