๐ ์ธ๊ณผ์ถ๋ก ๊ฐ์ธ ๊ณต๋ถ์ฉ ํฌ์คํธ ๊ธ์ ๋๋ค. ์ถ์ฒ๋ ์ฒจ๋ถํ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํด์ฃผ์ธ์!
โ ๊ทธ๋ฃนํ๋ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ ํ๊ท
โฏ ์ด๋ถ์ฐ์ฑ
• ๋ถ์ฐ์ด ๋ฎ์ ์์ญ๊ณผ ๋์ ์์ญ์ ๋์์ ๊ฐ๋ ํ์, ์ฆ ๋ณ์์ ๋ชจ๋ ๊ฐ์์ ๋ถ์ฐ์ด ์ผ์ ํ์ง ์์ ๊ฒฝ์ฐ๋ค.
• ๋ถ์ฐ์ด ๋ฌ๋ผ์ง๋ ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ์ด์ ๋ ๊ทธ๋ฃนํ๋ ๋ฐ์ดํฐ ๋๋ฌธ์ด๋ค.
โฏ smf.ols ์ smf.wls ์ฐจ์ด
• smf.ols : OLS ํ๊ท๋ชจ๋ธ์ ๊ตฌ์ถํ๋๋ฐ ์ฌ์ฉ๋๋ค.
• smf.wls : ์ต์์์น๋ฒ์ ๋ณํ์ผ๋ก ์์ฐจ์ ๊ฐ์ค์น๋ฅผ ๊ณ ๋ คํด ๋ชจ๋ธ์ ์ ํฉ์ํจ๋ค. ๊ฐ์ค์น๋ ๊ฐ ๋ฐ์ดํฐ ํฌ์ธํธ์ ์ค์๋๋ฅผ ๋ํ๋ด๋ฉฐ, ํน์ ๋ฐ์ดํฐ ํฌ์ธํธ์ ๋ ํฐ ๊ฐ์ค์น๋ฅผ ๋ถ์ฌํด ๋ชจ๋ธ์ด ํด๋น ํฌ์ธํธ์ ๋ ์ ํฉํ๊ฒ ๋ง๋ ๋ค. ์ค์ฐจ์ ๋ถ์ฐ์ด ๋ค๋ฅธ ๊ฒฝ์ฐ๋ ์ด์์น์ ๋ ๋ฏผ๊ฐํ ๋ชจ๋ธ์ ๊ตฌ์ถํ๊ณ ์ ํ ๋ ์ ์ฉํ๋ค.
โฏ ์์
• lhwage : ๋ก๊ทธ ์๊ฐ๋น ์๊ธ, educ : ๊ต์ก๊ธฐ๊ฐ, IQ : ์ง๋ฅ
• ols ์ถ์
model_1 = smf.ols('lhwage ~ educ', data=wage).fit()
model_1.summary().tables[1]
• ๊ฐ๋ณํ๋ ๋ฐ์ดํฐ๋ฅผ ์ ๊ณตํ ์ ์๋ค๊ณ ๊ฐ์ ํด๋ณด์. ๋์ ์์ฒญ์๊ฐ ๊ต์ก์ ๋ฐ์ ๋ชจ๋ ์ฌ๋์ ๊ทธ๋ฃนํํ๊ณ ํ๊ท ๋ก๊ทธ ์๊ฐ๋น ์๊ธ๊ณผ ๊ทธ๋ฃน์ ๊ฐ์ธ์๋ง ์๋ ค๋ฌ๋ผ๊ณ ์์ฒญํ๋ค. ๊ทธ๋ฌ๋ฉด ์๋์ ๊ฐ์ 10๊ฐ ๋ฐ์ดํฐ ํฌ์ธํธ๋ง ์ ๋ฌํ๊ฒ ๋๋ค.
wage = pd.read_csv("./data/wage.csv")[["wage", "lhwage", "educ", "IQ"]]
group_wage = (wage
.assign(count=1)
.groupby("educ")
.agg({"lhwage":"mean", "count":"count"})
.reset_index())
group_wage
• ์ ํ ํ๊ท ๋ชจ๋ธ์ ๊ฐ์ค์น๋ฅผ ์ ๊ณตํ์ฌ ์์ ๋ฐ์ดํฐ๋ง ๊ฐ์ง๊ณ smf.wls ๋ฅผ ๋ชจ๋ธ๋งํ๋ค. weights ๋ฅผ ์ง์ ํ์ฌ ์๊ท๋ชจ ๊ทธ๋ฃน๋ณด๋ค ํ๋ณธ ํฌ๊ธฐ๊ฐ ๋ ํฐ ๊ทธ๋ฃน์ ๋ ๋ง์ด ๊ณ ๋ คํ๋๋ก ํ๋ค.
model_2 = smf.wls('lhwage ~ educ', data=group_wage, weights=group_wage["count"]).fit()
model_2.summary().tables[1]
โช ๊ทธ๋ฃนํ๋ ๋ฐ์ดํฐ์ด์ง๋ง, ๊ฐ๋ณ ๋ฐ์ดํฐ๋ก ์ถ์ ํ์ ๋์ ๋ชจ์ ์ถ์ ์น๊ฐ ๋งค์ฐ ์ ์ฌํ๋ค (์์ ์์ ๋ ๋์ผํจ) โช ๋ํ ํต๊ณ์ ์ผ๋ก ์ ์๋ฏธํ ๊ณ์๋ฅผ ์ป์๋๋ฐ, ๋ฐ์ดํฐ ๊ฐ์๋ ๋ ์ ์ง๋ง, ๊ทธ๋ฃนํ๋ฅผ ํ๊ธฐ ๋๋ฌธ์ ๋ถ์ฐ์ด ๋ง์ด ์ค์ด๋ค์๊ธฐ ๋๋ฌธ์ด๋ค.
• ๊ทธ๋ฃนํ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ค์น๊ฐ ์๋ ๋ชจ๋ธ๋ก ์ถ์ ํ๋ฉด ์๋์ ๊ฐ์ด ๋ชจ์ ์ถ์ ์น๊ฐ ๋ ์์์ง๋ค. (0.05 → 0.04)
model_3 = smf.ols('lhwage ~ educ', data=group_wage).fit()
model_3.summary().tables[1]
• ์ง๊ณ๋ ๋ฐ์ดํฐ์์๋ ๊ฐ์ค์น๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข๋ค. ๊ฐ์คํ๊ท๋ถ์์ ์ฌ์ฉํ๋ ค๋ฉด ํ๊ท ํต๊ณ๋์ด ํ์ํ๋ค. ๊ทธ๋ฃนํ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ ๊ฐ์ค ํ๊ท๋ถ์ ๊ฒฐ๊ณผ๋ ๊ทธ๋ฃนํ๋์ง ์์ ๋ฐ์ดํฐ์ ํ๊ท๋ถ์๊ณผ ์ ์ฌํ๊ฒ ๋์จ๋ค.
• ๊ทธ๋ฃนํ๋ ๋ฐ์ดํฐ์์ ์ถ๊ฐ ๊ณต๋ณ๋ (IQ) ๋ฅผ ์ฌ์ฉํ๋ ์์
group_wage = (wage
.assign(count=1)
.groupby("educ")
.agg({"lhwage":"mean", "IQ":"mean", "count":"count"})
.reset_index())
model_4 = smf.wls('lhwage ~ educ + IQ', data=group_wage, weights=group_wage["count"]).fit()
print("Number of observations:", model_4.nobs)
model_4.summary().tables[1]
โช ํ๊ท ๊ณผ ์นด์ดํธ๋ฅผ ๊ตฌํ๊ณ ํ๊ท ์ผ๋ก ํ๊ทํ๊ณ ์นด์ดํธ๋ฅผ ๊ฐ์ค์น๋ก ์ฌ์ฉํ๋ค.
โก Regression for Dummies
โฏ ๋๋ฏธ๋ณ์
• ๋๋ฏธ๋ณ์์ ๋ํ ํ๊ท๊ณ์๋ ํ๊ท์ ์ ์ ํธ์ ๋ํ ์ฆ๋ถ ๋๋ treated ๋ ๊ฒ๊ณผ ๋์ง ์์ ๊ฒ ๊ฐ์ ํ๊ท ์ฐจ์ด์ด๋ค. ๋๋ฏธ๊ฐ 1์ด๋ฉด ์์ธก๊ฐ์ ์ ํธ์ ๋๋ฏธ ๊ณ์๋ฅผ ๋ํ ๊ฐ์ด๋ค.
• ์ถ๊ฐ๋ณ์๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ฏธ๊ณ์๊ฐ ํ๊ท ์ ์กฐ๊ฑด๋ถ ์ฐจ์ด๊ฐ ๋๋ค. ๊ฐ๋ น ์์ ์์ ์์, 12๋ ์ด์์ ๊ต์ก์ ๋ฐ์ ์ฌ๋ถ๋ฅผ ๋๋ฏธ๋ณ์๋ก ์ค์ ํ๊ณ , IQ ๋ณ์๋ฅผ ์ถ๊ฐํ๋ค๊ณ ํ๋ฉด, ๋๋ฏธ๊ณ์๋ IQ ๋ฅผ ๊ณ ์ ํ ์ํ์์ 12๋ ์ด์์ ๊ต์ก์ ๋ฐ์ ๋ ์ผ๋ง๋ ๋ง์ ์๊ธ ์ฆ๊ฐ๋ฅผ ๊ธฐ๋ํ ์ ์๋์ง ์๋ ค์ค๋ค.
โฏ ๊ตํธ์์ฉ์ด ์๋ ๊ฒฝ์ฐ
โช β0 : ์ฒ์น๊ฐ 0์ด๊ณ IQ๊ฐ 0์ ์ผ ๋ ์์๋๋ ์๊ธ (IQ ๊ฐ 0์ธ ๊ฒฝ์ฐ๋ ์๊ธฐ ๋๋ฌธ์ ํด๋น ๋งค๊ฐ๋ณ์๋ ๊ทธ๋ค์ง ์๋ฏธ๊ฐ ์๋ค)
โช β1 : ์ฒ์น๊ฐ 1์ด๊ณ IQ ๊ฐ 0์ผ ๋ ์์๋๋ ์๊ธ ์ธ์ ํญ (์ด ๋ํ IQ ๊ฐ 0์ธ ๊ฒฝ์ฐ๋ ์๊ธฐ ๋๋ฌธ์ ํฅ๋ฏธ๋ก์ด ์๋ฏธ๊ฐ ์๋ค)
โช β2 : IQ ๊ฐ ์ฒ์น๋ฐ์ง ์์ ์ฌ๋๋ค์ ์๊ธ์ ์ผ๋ง๋ ์ฆ๊ฐ์ํค๋์ง ์๋ ค์ค๋ค. ๊ฐ๋ น ๊ฐ์ด 0.11 ์ด๋ฉด, IQ ์ ์ 1์ ๋น ๊ต์ก์ 12๋ ์ด์ ๋ฐ์ง ๋ชปํ ์ฌ๋์ ์๊ฐ ๋น 11์ผํฐ๋ฅผ ๋ ์ป์ ๊ฒ์ผ๋ก ๊ธฐ๋ํด์ผ ํ๋ค๋ ์๋ฏธ์ด๋ค.
โช β3 : ๊ต์ก์ 12๋ ์ด์ ๋ฐ์ ๋, IQ ์ฆ๊ฐ์ ๋ฐ๋ฅธ ์๊ธ ์ฆ๊ฐ๋ฅผ ์๋ ค์ค๋ค. ๊ฐ๋ น ๊ฐ์ด 0.024 ๋ผ๊ณ ํ๋ฉด, IQ ๊ฐ 1์ ์ค๋ฅผ ๋๋ง๋ค ๊ต์ก์ 12๋ ์ด์ ๋ฐ์ ์ฌ๋์ด๋ผ๊ณ ํ๋ฉด ์๊ฐ ๋น ์๊ธ์ 2์ผํธ ๋ ๋ฐ์ ๊ฒ์ผ๋ก ๊ธฐ๋ํ ์ ์๋ค.
โฏ ๋ชจ๋ธ์ ๋ชจ๋ ๋ณ์๊ฐ ๋๋ฏธ์ธ ๊ฒฝ์ฐ
• IQ ๋ฅผ 4๊ฐ์ ๋ฒ์ฃผ๋ก ๋ถ๋ฆฌํ๊ณ ๊ต์ก๊ธฐ๊ฐ์ ๋ฒ์ฃผํ ๋ณ์๋ก ์ทจ๊ธํ๋ค. ๊ฐ ๊ต์ก์ฐ๋๊ฐ ๊ณ ์ ํ ์ํฅ์ ๋ฏธ์น๋๋ก ํ์ฉํ๋ค. ์ด๋ฅผ ํตํด ๊ต์ก์ ํจ๊ณผ๊ฐ ๋ ์ด์ ๋งค๊ฐ๋ณ์๊ฐ ์๋๊ฒ ํ์ฌ ์ ์ฐ์ฑ์ ์ป์ ์ ์๊ฒ ๋๋ค. ๊ทธ๋ ๊ฒ ๋๋ฉด ๋ชจ๋ธ์ ๋จ์ํ ๊ฐ ๊ต์ก ์ฐ๋๋ณ ํ๊ท ์๊ธ์ ๊ณ์ฐํ๋ค.
model_dummy = smf.ols('hwage ~ C(educ)', data=wage).fit()
model_dummy.summary().tables[1]
โช ์์๊ฐ์ด ์ถ์ ํ๋ ๊ฒฝ์ฐ, ๊ฐ๋ น ๊ต์ก์ฐ๋ 9๋ ๊ณผ 17๋ ๊ฐ์ธ ๊ฐ ์ฐจ์ด์ ๋ํด ๊ณ์ฐํด๋ณผ ์ ์๋ค.
• ๋ชจ๋ธ์ ๋ ๋ง์ ๋๋ฏธ ๊ณต๋ณ๋์ ํฌํจํ๋ฉด ๊ต์ก์ ๋ํ ๋งค๊ฐ๋ณ์๋ ๊ฐ ๋๋ฏธ ๊ทธ๋ฃน์ ๋ํ ํจ๊ณผ์ ๊ฐ์คํ๊ท ์ด ๋๋ค.
๐ ํต์ฌ์ ๋ฆฌ
• ์ ํ๋ชจํ์ ์ถ์ ํ ๋ ํ๋ณธ ํฌ๊ธฐ๊ฐ ํฌ๊ณ ๋ถ์ฐ์ด ๋ฎ์ ํ๋ณธ์ ๋ ๋ง์ ๊ฐ์ค์น๋ฅผ ๋ถ์ฌํด์ผ ํ๋ค.
๋๊ธ