๐ ์ธ๊ณผ์ถ๋ก ๊ฐ์ธ ๊ณต๋ถ์ฉ ํฌ์คํธ ๊ธ์ ๋๋ค. ์ถ์ฒ๋ ์ฒจ๋ถํ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํด์ฃผ์ธ์!
๐ ์ ๋ฆฌ
โ ํฌํจํด์ผ ๋๋ ๋ณ์
• Treatment ๋ฅผ ์์ธกํ์ง ์๋๋ผ๋ Outcome ์ ๋ํด ์ข์ ์์ธก์ ํ๋ ๋ณ์ (โ Y๋ฅผ ์์ธกํ๋ฉด ๋ถ์ฐ์ด ๋ฎ์์ง๊ณ ์ธ๊ณผ๊ด๊ณ๋ฅผ ์ถ์ ํ ๋ ํต๊ณ์ ์ผ๋ก ์ ์ํ ๊ฒฐ๊ณผ๊ฐ ๋ํ๋ ๊ฐ๋ฅ์ฑ์ด ๋์์ง๊ธฐ ๋๋ฌธ)
• ๊ต๋ ์์ธ
โก ํฌํจ์ํค๋ฉด ์๋๋ ๋ณ์
• Treatment ๋ฅผ ์์ธกํ์ง๋ง Outcome ์ ์์ธกํ์ง ์๋ ๋ณ์ (โ treatment์ ๋ณ๋์ฑ์ ์ค์ฌ ์ธ๊ณผํจ๊ณผ๋ฅผ ์ฐพ๊ธฐ ์ด๋ ต๊ฒ ๋ง๋ค๊ธฐ ๋๋ฌธ)
• Treatment ์ outcome ์ฌ์ด์ ๋งค๊ฐ๋ณ์
• Treatment ์ outcome ์ ๊ณตํตํจ๊ณผ์ธ ๋ณ์
โ Good controls
โฏ ํต์ ๋ณ์
• ํต์ ๋ณ์๊ฐ Confounder ์ธ ๊ฒฝ์ฐ ๋ชจํ์ ์ถ๊ฐํ๋ ๊ฒ์ด ์ข์ผ๋ฉฐ, ํ์์ ์ด๋ค. ๊ทธ๋ฌ๋ ๊ต๋์ ์ผ์ผํค๋ ์์ธ์ ์ค์ ์ธ๊ณ์์ ๋งค์ฐ ๋ง์ผ๋ฉฐ ํด๋น ๋ณ์๋ฅผ ๋ชจ๋ ํฌํจ์ํค๋ ๊ฒ์ ์คํ๋ ค ์ธ๊ณผํจ๊ณผ๋ฅผ ์๋ณํ๋๋ฐ ๋์์ด ๋์ง ์์ ์ ์๋ค.
โฏ ์์ 1. ํํ ํฌ ๋ฐ์ดํฐ
• ์ฃผ์ : ํํ ํฌ ๋ฐ์ดํฐ ์์งํ์์ ์ฃผ์ด์ง task ๋ก, ๋น์ ๊ฐ์ ๊ฒ์ ์์ฒญํ๋ ์ด๋ฉ์ผ์ ๋ณด๋ผ ๋ ๊ทธ ํจ๊ณผ๋ฅผ ํ์ ํ๋ ๊ฒ
• ๋ฐ์๋ณ์ : ์ฐ์ฒด ๊ณ ๊ฐ์ผ๋ก๋ถํฐ์ ์ง๋ถ๊ธ์ก (payments)
• ๋ฐ์ดํฐ ์์งํ์ ์ฐ์ฒด๊ณ ๊ฐ ์ค ๋๋คํ๊ฒ 5์ฒ๋ช ์ ์ ํํ์ฌ ๋๋ค ํ ์คํธ๋ฅผ ์ค์ํ๋ค. ๊ณ ๊ฐ์๋งํผ ๋์ ์ ๋์ง๋๋ฐ, ๋์ ์ด ์๋ฉด์ธ ๊ฒฝ์ฐ์๋ ์ด๋ฉ์ผ์ ์์ ํ๊ณ , ๋ท๋ฉด์ด ๋์ฌ ๊ฒฝ์ฐ ์ด๋ฉ์ผ์ ์์ ํ์ง ์๊ฒ ๋๋ค. ํด๋น ํ ์คํธ๋ฅผ ํตํด ์ด๋ฉ์ผ ์ ์ก์ด ์ผ๋ง๋ ๋ง์ ์ถ๊ฐ๋น์ฉ์ ๋ฐ์์ํค๋์ง ์ ์ ์๋ค.
• ๋ฐ์ดํฐ๊ฐ ๋๋ค์ด๋ฏ๋ก ๋จ์ํ ํ๊ท ์ฐจ์ด๋ ATE ์ ์ถ์ ๊ฐ์ด๋ค. ์ฆ Potential outcome ๊ณผ Treatment ๋ ๋ ๋ฆฝ ๊ด๊ณ๋ฅผ ๊ฐ์ง๊ณ ์๋ ๊ฒ์ด๋ค : (Y0, Y1) ⊥ T
โช ATE = E[Y | T=1] - E[Y | T=0]
print("Difference in means:",
data.query("email==1")["payments"].mean() - data.query("email==0")["payments"].mean())
model = smf.ols('payments ~ email', data=data).fit()
model.summary().tables[1]
โช ์ถ์ ์น๊ฐ -0.62 ๋ก, ์ด๋ฉ์ผ์ ๋ณด๋ด๋ ๊ฒ์ด ์ฐ์ฒด ๊ณ ๊ฐ์ ํ๊ท ์ง๋ถ ๊ธ์ก์ ๊ฐ์์ํฌ ๊ฒ์ด๋ผ๊ณ ํด์๋๋๋ฐ ์ด๋ ์ผ๋ฐ์ ์ธ ์์๊ณผ ๋ฐ๋๋๋ค. P-value ๋ํ 0.8๋ก ๋งค์ฐ ํฐ ๊ฐ์ ๊ฐ์ง๊ธฐ ๋๋ฌธ์ ์ถ์ ์น๊ฐ ์ ์ํ๋ค๊ณ ๋ณผ ์ ์๋ค.
• ๋ฐ์ดํฐ์ credit_limit ์ด๋ผ๋ ์ฐ์ฒด ์ ๊ณ ๊ฐ์ ์ ์ฉํ๋์ ๋ํ feature ์ risk_score ๋ผ๋ ์ด๋ฉ์ผ์ ๋ณด๋ด๊ธฐ ์ ๊ณ ๊ฐ์ ์์ ๋ฆฌ์คํฌ์ ๋ํ feature ๊ฐ ์๋ค. ์ด ๋ ๋ณ์๋ ์ฐ์ฒด ๊ณ ๊ฐ์ ์ง๋ถ ๊ธ์ก์ ์์ธกํ๋๋ฐ ๋งค์ฐ ์ข์ ๋ณ์์ด๋ค.
• Treatment ์ ๋ํ ํต๊ณ์ ์ ์์ฑ์ด ์๋ ์ด์ ๋ฅผ ์๊ฐํด๋ณด๋ฉด, Treatment ๊ฐ outcome ์ ๊ฑฐ์ ์ํฅ์ ๋ฏธ์น์ง ์์ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค. ์ฌ๋๋ค์ด ๋น์ ๊ฐ๋ ๊ฒ์ ์ฌ์ , ์์ ๋ฑ์ ๊ด๋ฆฌํ๋ ๊ฒ์ ํตํด ๊ฐ๋๋ค. ์ฆ, ์ง๋ถ ๊ธ์ก์ ๋ณ๋์ฑ์ ๋ฉ์ผ์ ์์ ํ๋ ๊ฒ ์ด์ธ์ ๋ค๋ฅธ ์์ธ์ ์ํด์๋ ์ค๋ช ๋๊ณ ์๋ ๊ฒ์ด๋ค.
• ์ด๋ฉ์ผ ์์ ์ฌ๋ถ์ ๋ํ ์ฐ์ฒด ๊ณ ๊ฐ์ ์ง๋ถ๊ธ์ก์ ๊ทธ๋ํ๋ก ํ์ํ๋ฉด ์๋์ ๊ฐ๋ค. ํ๊ท๋ชจํ์ ์ ํฉ๊ฐ์ ๋นจ๊ฐ์์ผ๋ก ํ์ํ๋ค. ์ฝ๊ฐ์ ๋ ธ์ด์ฆ๋ฅผ ์ถ๊ฐํ์ฌ ๋ฐ์ดํฐ๋ผ๋ฆฌ ๊ฒน์น์ง ์๋๋ก ํ๋ค.
• ํต์ ๋ณ์๋ฅผ ์ถ๊ฐํจ์ผ๋ก์จ ๋ณ๋์ฑ์ ๋ฎ์ถ์ด๋ณผ ์ ์๋ค. ๋ณ์๊ฐ Outcome (์ฌ๊ธฐ์ Payments) ์ ์์ธกํ๋๋ฐ ์ข์ ๋ณ์์ธ ๊ฒฝ์ฐ, Outcome ๋ณ์์ ๋ถ์ฐ์ ๋ง์ ๋ถ๋ถ์ ์ค๋ช ํด์ค๋ค.
• ํ๊ท๋ชจํ์ ๋ณ์๋ฅผ ์ถ๊ฐํ๋ ๊ฒ์ treatment ๋ฅผ ๊ฒํ ํ๋ ๋์ ๋ค๋ฅธ ๋ณ์๋ ์ผ์ ํ ๊ฐ์ ์ ์งํ๋ ๊ฒ์ ์๋ฏธํ๋ค. ๋ฐ๋ผ์ ๋น์ทํ credit_limit , risk_score ๊ฐ ๋์จ๋ค๋ฉด, payments ์ ๋ถ์ฐ์ ๋ ์์์ผ ํ๋ค.
โฏ ์์ 1 ์ด์ด์ : ํต์ ๋ณ์๋ฅผ ์ถ๊ฐํ ํ๊ท๋ถ์
• ๋ ๋จ๊ณ๋ก ํ๊ท๋ถ์์ ์งํํ๋ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ค. ์ค์ ๋ก๋ ์ด๋ฌํ ๋ฒ๊ฑฐ๋ก์ด ๊ณผ์ ์ผ๋ก ์งํ๋์ง๋ ์์ผ๋, ๊ต์ก์ ์ํด ์ด๋ ๊ฒ ์ค์ ํ๋ค.
โด treatment (์ด๋ฉ์ผ) ๊ณผ outcome (์ง๋ถ๊ธ์ก) ์ ๋ํด ์ถ๊ฐ ํต์ ๋ณ์์ธ credit_limit ๊ณผ risk_score ๋ก ํ๊ทํ๋ค.
โต 1๋จ๊ณ์์ ์ป์ outcome ์ ๋ํ ์์ฐจ์ treatment ์ ์์ฐจ๋ฅผ ํ๊ทํ๋ค.
model_email = smf.ols('email ~ credit_limit + risk_score', data=data).fit()
model_payments = smf.ols('payments ~ credit_limit + risk_score', data=data).fit()
residuals = pd.DataFrame(dict(res_payments=model_payments.resid, res_email=model_email.resid))
model_treatment = smf.ols('res_payments ~ res_email', data=residuals).fit()
• ์ด๋ ๊ฒ ํ๋ฉด Outcome ์ ๋ถ์ฐ์ด ์ค์ด๋ ๋ค. credit_limit ๊ณผ risk_score ๋ฅผ payments ์ ํ๊ท์ํค๊ณ ์์ฐจ๋ฅผ ์ป์์ผ๋ก์จ ์๋์ ๋ฐ์๋ณ์๋ณด๋ค ๋ณ๋์ฑ์ด ํจ์ฌ ์ ์ ์๋ก์ด ๋ฐ์๋ณ์๋ฅผ ๋ง๋ค ์ ์๋ค.
print("Payments Variance", np.var(data["payments"]))
print("Payments Residual Variance", np.var(residuals["res_payments"]))
print("Email Variance", np.var(data["email"]))
print("Email Residual Variance", np.var(residuals["res_email"]))
• ์ง๋ถ๊ธ์ก์ ๋ถ์ฐ์ด 10807 ์์ 5652 ๋ก ๋ณํ๋ค. ๋ฆฌ์คํฌ์ ์ ์ฉํ๋๋ฅผ ํต์ ํ ๊ฒฝ์ฐ ๊ฑฐ์ ์ ๋ฐ์ผ๋ก ๋ถ์ฐ์ด ์ค์ง๋ง treatment ์ ๊ฒฝ์ฐ์๋ ๋ถ์ฐ์ด ์ค์ด๋ค์ง ์์๋๋ฐ, ๋ฆฌ์คํฌ์ ์ ์ฉํ๋๋ ์ด๋ฉ์ผ์ ์ ํ ์์ธกํ์ง ๋ชปํ๊ธฐ ๋๋ฌธ์ ํด๋น ๊ฒฐ๊ณผ๋ ํ๋นํ๋ค ๋ณผ ์ ์๋ค. (Randomness ๋๋ฌธ)
model_treatment.summary().tables[1]
โช ์์ฐจ๋ผ๋ฆฌ์ ํ๊ท๋ฅผ ํตํด ์ ํจํ ํ์ค์ค์ฐจ ์ถ์ ๋๊ณผ ATE ๋ฅผ ์์๋ผ ์ ์๋ค.
โช ์ด๋ฉ์ผ์ ์์ ํ ๊ณ ๊ฐ์ด ์ด๋ฉ์ผ์ ์์ ํ์ง ์์ ๊ณ ๊ฐ๋ณด๋ค ํ๊ท 4.4 ์ ๋ ๋ ์ง๋ถํ ๊ฒ์ผ๋ก ์์๋๋ค.
• ๊ทธ๋ฌ๋ ๋ฒ๊ฑฐ๋กญ๊ฒ ๋งค๋ฒ ์์ฐจ๋ฅผ ๊ตฌํดํ ํ๋ ๊ฒ์ ์๋๋ค. ํ๊ท๋ชจํ์ control ๋ณ์๋ฅผ ์ถ๊ฐํด์ ๋๋ฆฌ๋ฉด ์๋์ ๊ฐ์ด ์ถ์ ์น๋ ์ ํํ ๋์ผํ๊ฒ ๊ณ์ฐ๋๋ค.
model_2 = smf.ols('payments ~ email + credit_limit + risk_score', data=data).fit()
model_2.summary().tables[1]
โก Mostly harmful controls
โฏ ์์ 2. ๋ ๋ณ์์ ์ฝ๋ฌผ๊ฒ์ฌ
• ๋ ๋ณ์ ๋ชจ๋ ์ง๋ณ์ ์น๋ฃํ๊ธฐ ์ํด ์ ์ฝ์ ๋ํ ๋ฌด์์ ์คํ์ ์งํํ๊ณ ์์ผ๋ฉฐ ๋ฐ์๋ณ์๋ ์ ์์ผ์ ์ด๋ค. ์น๋ฃ๊ฐ ํจ๊ณผ์ ์ด๋ผ๋ฉด ํ์์ ์ ์์ผ์๊ฐ ์ค์ด๋ค ๊ฒ์ด๋ค.
• A๋ณ์์ ๊ฒฝ์ฐ ์น๋ฃ์ ๊ด๋ จ๋ ์ ์ฑ ์ผ๋ก ์์๋ก ํ์์ 90% ์๊ฒ๋ ์ง์ง์ฝ์ ํฌ์ฌํ๊ณ 10% ๋ ์์ฝ์ ํฌ์ฌํ๋ค. B๋ณ์์ ๊ฒฝ์ฐ์๋ ํ์์ 10% ์๊ฒ ์ง์ง์ฝ์ ํฌ์ฌํ๊ณ 90%๋ ์์ฝ์ ํฌ์ฌํ๋ค. A๋ณ์์ ๊ฒฝ์ฐ๊ฐ ๋ณดํต ์น๋ฃํ๋๋ฐ ๋ ์ฌ๊ฐํ ์ง๋ณ์ธ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค.
• ๋จ์ํ treatment ๋ฅผ outcome ์ ๋ํด ํ๊ทํ ๊ฒฐ๊ณผ๋ ์๋์ ๊ฐ๋ค.
hosp_1 = smf.ols('days ~ treatment', data=hospital).fit()
hosp_1.summary().tables[1]
โจ treatment ๋ฅผ ํ๋ฉด ์ ์์ผ์๊ฐ ์ฆ๊ฐํ๋ ์ง๊ด์ ๋ฐํ๋ ๊ฒฐ๊ณผ๋ฅผ ์ป์๋ค. ์ด๋ ์ค์ฆ๋๋ฅผ ๋ํ๋ด๋ severity ๋ณ์๋ฅผ ์๊ฐํด๋ณด์์ผ ํ๋ค. ์ค์ฆ๋๋ ์ ์ ์ผ์ ์ฆ๊ฐ์ Positive ํ๊ฒ ์ฐ๊ด๋์ด ์์ผ๋ฉฐ ์ค์ฆํ์๊ฐ ๋ง์ ๋ณ์์์ ์ฝ๋ฌผ์ ๋ ๋ง์ด ํฌ์ฌํ๊ธฐ ๋๋ฌธ์, ์ฝ๋ฌผ์ ์ ์ ์ผ์ ์ฆ๊ฐ์ ํ์คํ ์๊ด ๊ด๊ณ๊ฐ ์๋ค. ์ฆ, ๋ ๋ณ์์ ๋ํด E[Y0 | T=0] < E[Y0 | T=1] ์ด๋ค. ์ฆ, ์ค์ฆ๋๋ ํ์๊ฐ ๊ฐ๋ ๋ณ์๊ณผ ์ฝ์ ๋ฐ์ ํ๋ฅ ์ ๊ฒฐ์ ํ๋ ๊ต๋ ์์ฉ์ผ๋ก ์์ฉํ๋ค.
โฏ ์์ 2 ์ด์ด์. 2๊ฐ์ง ์ ๊ทผ๋ฐฉ๋ฒ
โด ์ค์ฆ๋ ๊ต๋์์ฉ์ ๋ฎ์ถ๋ ์ฒซ๋ฒ์งธ๋ ๊ฐ ๋ณ์๋ณ ATE ๋ฅผ ์ดํด๋ณด๋ ๊ฒ์ด๋ค.
hosp_2 = smf.ols('days ~ treatment', data=hospital.query("hospital==0")).fit()
hosp_2.summary().tables[1]
hosp_3 = smf.ols('days ~ treatment', data=hospital.query("hospital==1")).fit()
hosp_3.summary().tables[1]
• ๋ณ์๋ณ๋ก ์ดํด๋ณธ ๊ฒฐ๊ณผ ์ง๊ด์ ์ธ ATE ๋ฅผ ์ป์๋ค. ์ฝ์ด ๋ณ์ ์ ์ ์ผ์๋ฅผ ์ค์ฌ์ฃผ๋ ๊ฒ ๊ฐ๋ค. ๊ทธ๋ฌ๋, ๊ฐ ๋ณ์์ ๊ฐ๋ณ์ ์ผ๋ก ๋ณด๊ฒ ๋์ด ๊ณ ๋ คํ๋ ๋ฐ์ดํฐ ๊ฐ์๊ฐ ์ ์ด์ง๊ธฐ ๋๋ฌธ์ ํต๊ณ์ ์ ์์ฑ์ ์ฌ๋ผ์ก๋ค.
โต ๋ค๋ฅธ ์ ๊ทผ๋ฒ์ผ๋ก๋ ๋ชจ๋ธ์ ์ค์ฆ๋ ๋ณ์๋ฅผ ํฌํจํ์ฌ ํต์ ํ๋ ๊ฒ์ด๋ค.
hosp_4 = smf.ols('days ~ treatment + severity', data=hospital).fit()
hosp_4.summary().tables[1]
• ์ค์ฆ๋๋ฅผ ํต์ ํ๊ณ ๋๋ฉด Hospital ๋ณ์๋ ๋ ์ด์ ์ ์ ์ผ์์ ์๊ด๊ด๊ณ๊ฐ ์์ด์ง๋ค.
• ์ด๋ Hospital ๋ณ์๋ฅผ ํต์ ๋ณ์๋ก ์ถ๊ฐํ๋ฉด ์๋์ ๊ฐ์ด treatment ๋ณ์์ p-value ๊ฐ ์คํ๋ ค ์ฆ๊ฐํ๋๋ฐ, ์ด๋ ์ค์ฆ๋๋ฅผ ํต์ ํ ์ํฉ์์, Hospital ๋ณ์๊ฐ treatment ์์ธก ๋ณ์๊ฐ ์๋๋ผ outcome ์ ์์ธก๋ณ์๊ฐ ๋์ด์ผ ํ๋๋ฐ ๊ทธ๋ ์ง ์๊ธฐ ๋๋ฌธ์ด๋ค.
hosp_5 = smf.ols('days ~ treatment + severity + hospital', data=hospital).fit()
hosp_5.summary().tables[1]
• Treatment ์ ์ข์ ์์ธก๋ณ์์ธ ํต์ ๋ณ์๋ ์ถ์ ๋์ ๋ถ์ฐ์ ์ฆ๊ฐ์ํค๋ฏ๋ก ์ถ๊ฐํด์๋ ์๋๋ค.
โข Bad Controls - Selection bias
โฏ ์์ 1 ์ด์ด์
• ๋จ์ ๋ณ์ opened, aggrement ๋ฅผ ์ดํด๋ณด๋ฉด, opened ๋ ๋ฉ์ผ์ ์ด์๋์ง ์ฌ๋ถ๋ฅผ ๋ํ๋ด๋ ๋๋ฏธ๋ณ์์ด๊ณ , agreement ๋ ์ด๋ฉ์ผ ์์ ํ ๊ด๋ จ ๋ถ์์ ์ฐ๋ฝํด ์ฑ๋ฌดํ์์ ํ ๊ฒฝ์ฐ๋ฅผ ๋ํ๋ด๋ ๋๋ฏธ๋ณ์์ด๋ค.
• ์ฒซ๋ฒ์งธ ๋ชจํ : treatment(email) + credit_limit + risk_score
email_1 = smf.ols('payments ~ email + credit_limit + risk_score', data=data).fit()
email_1.summary().tables[1]
• ๋๋ฒ์งธ ๋ชจํ : opened, agreement ์ถ๊ฐ
email_1 = smf.ols('payments ~ email + credit_limit + risk_score', data=data).fit()
email_1.summary().tables[1]
โจ ์ฒซ ๋ฒ์งธ ๋ชจํ์์ ์ด๋ฉ์ผ ๋ณ์๋ ํต๊ณ์ ์ผ๋ก ์ ์ํด๋ณด์ด์ง๋ง, ๋ ๋ฒ์งธ ๋ชจํ์์๋ ๊ทธ๋ ์ง ์๋ค. ๊ทธ๋ฌ๋ ์ค์ ๋ก๋ ๋ ๋ฒ์งธ ๋ชจํ์ด ์ณ์ ๋ชจํ์ผ์๋ ์๊ณ , treatment(์ด๋ฉ์ผ)์ outcome(์ง๋ถ๊ธ์ก)์ ํจ๊ณผ๊ฐ ์์ ์๋์๋ค. ๊ทธ๋ฌ๋ ๊ณ ๋ คํด๋ณด์์ผ ํ ๋ถ๋ถ์, opened ์ agreement ๋ณ์๋ Treatment (์ด๋ฉ์ผ) ๋ณ์๊ฐ ์์ธ ๋ณ์๊ฐ ๋๋ ๋ณ์๋ค์ด๋ผ๋ ๊ฒ์ด๋ค. (์ด๋ฉ์ผ์ ๋ฐ์์ผ opened ๊ฐ ๊ฐ๋ฅํ๊ณ ์ฑ๋ฌดํ์ agreement ๊ฐ ๊ฐ๋ฅ)
โช ์ง๊ด์ ์ผ๋ก ์ด๋ฉ์ผ์ ์ฐ ์ฌ๋๋ค์ ์ฐ๋ฝํ๊ณ ๋น์ ๊ฐ์ ๊ฒ์ด๋ผ๊ณ ์ถฉ๋ถํ ์๊ฐํด ๋ณผ ์ ์๊ธฐ ๋๋ฌธ์ Opened ๋ ์ง๋ถ๊ธ์ก์ ์์ธ์ด ๋๋ค. agreement ๋ ๊ฐ์ ์ด์ ๋ ๊ทธ๋ ๋ค ๋ณผ ์ ์๋ค.
โช Payment ์ ๋ํด ์๊ฐํด๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ์ ํผ๋ ๊ด๊ณ๋ฅผ ์๊ฐํด ๋ณผ ์ ์๋ค : email > opened > agreement > payment
โช ์์ ๊ทธ๋ํ์ ํต์ฌ์, ์ด๋ฉ์ผ์์ ์ง๋ถ๊ธ์ก๊น์ง์ ์ธ๊ณผ๊ฒฝ๋ก์ opened ์ agreement๊ฐ ๋ชจ๋ ์๋ค๋ ๊ฒ์ด๋ค.
โฏ ๊ต๋์์ธ๊ณผ ์ ํํธํฅ
• ๊ต๋์์ธ์ ๊ณตํต ์์ธ์ ๋ํ ํต์ ์คํจ์์ ์ค๋ ํธํฅ์ด์ง๋ง, ์ ํํธํฅ์ ์์ธ์์ ํจ๊ณผ๊น์ง์ ๊ฒฝ๋ก ์ฌ์ด์ ์๋ ๊ณตํตํจ๊ณผ ๋๋ ๋ณ์์ ๋ํด ํต์ ํ ๋ ๋ฐ์ํ๋ค.
• ๋ชจํ์๋ Y๋ฅผ ์ ์์ธกํ ์ ์๋ ๋ณ์ ํน์ ๊ต๋ ์์ธ์ ํญ์ ํฌํจ์์ผ์ผ ํ๋ค. Treatment๋ง์ ์ ์์ธกํ๋ ๋ณ์ ํน์ treatment์ outcome ์ฌ์ด์ ๋งค๊ฐ๋ณ์ ๋๋ treatment์ outcome์ ๊ณตํต ํจ๊ณผ์ธ ๋ณ์๋ ํญ์ ์ ์ธํ๋ ๊ฒ์ด ์ข๋ค.
โฃ Bad COP
โฏ ์์ . ์์ธกํ๋ ค๋ ์ฐ์ํ ๋ณ์ 'Customer spend' ์์ง๋ง ๋ถํฌ์์ 0์ด ๋งค์ฐ ๋ง์ ์ํฉ์ด๋ค.
• ์ ๊ทผํ๋ ์ฒซ๋ฒ์งธ ๋ฐฉ์์ ๋ชจ๋ธ๋ง์ ๋ ๋จ๊ณ๋ก ๋๋๋ ๊ฒ์ด๋ค. ์ฒซ๋ฒ์งธ๋ Y>0 ์ผ ํ๋ฅ , ์ฆ ๊ณ ๊ฐ์ ์ง์ถ ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํ๋ ๋ชจํ์ ๋ง๋ ๋ค. ๋ ๋ฒ์งธ๋ Y>0 ์ธ ์ฌ๋๋ค์ ๋ํด Y๋ฅผ ๋ชจ๋ธ๋งํ๋ค. ์ด๋ฅผ ๋ณดํต Conditional-on-Positives ํจ๊ณผ๋ผ ๋ถ๋ฅธ๋ค. ์ด๋ ๊ณ ๊ฐ์ด ๋ฌด์์ด๋ ์ง์ถํ๊ธฐ๋ก ๊ฒฐ์ ํ ํ (Treatment) ์ง์ถํ ๊ธ์ก์ ๋ํ๋ธ๋ค.
• T๊ฐ ๋๋คํ๊ฒ ํ ๋น๋๋ฉด treatment ๋ก ์ธํ ์ง์ถ ํ๋ฅ ์ฆ๊ฐ๋ฅผ ํฌ์ฐฉํ ์ ์๋ค. ๊ทธ๋ฌ๋ COP ๋ฅผ ์ถ์ ํ๋ ๊ณผ์ ์ ๋ฌธ์ ๊ฐ ์กด์ฌํ๋ค. ๋ฌด์์๋ก ํ ๋น๋๋๋ผ๋ ํธํฅ๋ ์ ์๋ค โจ COP ํธํฅ
โฏ ์์ . COP ํธํฅ ์์ : ๋ง์ผํ ์บ ํ์ธ
• ๋ง์ผํ ์บ ํ์ธ์ ๋ด์ผ๋ง ์ ํ์ ์ฌ๋ ์ฌ๋๋ค (Frugal) ์ด ์๊ณ , ์์ด๋ ์ฌ๋ ๊ณ ๊ฐ (Rich) ๋ค์ด ์๋ค.
• ์บ ํ์ธ์ ๋ํ ATE ๋ฅผ ์ถ์ ํ๊ธฐ ์ํด ๋ฌด์์๋ฅผ ์งํํ๋ค. ๋ฐ๋ผ์ treatment ๋ฅผ ๋ฐ์ ๊ฒ๊ณผ ๋ฐ์ง ์์ ๊ฒ๋ง ๋น๊ตํ๋ฉด ๋๋ค.
โจ ์ฐธ๊ฐ์ ๋ชจ์ง๋จ๋ง ํํฐ๋งํ๋ฉด ๋ฌด์์ํ๋ก ์ธํด ์ฒ์์๋ ํธํฅ์ด ์๋๋ผ๋ ATE์ ๋ํ ์ถ์ ์น๊ฐ ํธํฅ๋๋ค.
• treatment์ outcome ์ฌ์ด์ ์๊ฑฐ๋ outcome๊ณผ treatment์ ๊ณตํต์ ์ธ ํจ๊ณผ์ธ ๋ณ์๋ ํต์ ํ์ง ๋ง์์ผ ํ๋ค. COP ํธํฅ์ด๋ treatment์์ outcome ๋๋ treatment์ outcome์ ๊ณตํต์ ์ธ ํจ๊ณผ์ธ ๋ณ์์ ๋ํ ์ธ๊ณผ ๊ฒฝ๋ก์ ๋ณ์๋ฅผ ํต์ ํ ๋ ๋ฐ์ํ๋ ํธํฅ์ด๋ค.
๋๊ธ