Python: patsy - overview.
๐ ๋ชฉ์ฐจ (Contents)
patsy: python package for describing statistical models.
- ์์ฆ, ์๋ ํ๋ฐฐ๊ฐ ๋ฌผ์ด๋ด์ conjoint ๋ถ์์ด๋ผ๋ ๊ฒ์ ์กฐ๊ธ ์ํํ๊ณ ์์์ต๋๋ค.
- ํน์ ์ฌ์ฉ์ ๊ตฐ์ ๋์์ผ๋ก discrete choice model์ด๋ผ๊ณ ํ๋, ๊ทธ๋ฅ ํํ binary classification ๋ชจ๋ธ์ ๋ง๋๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ๋ฉด ๋ฉ๋๋ค๋ง, ์ค์ํ ๊ฒ์, neural network๊ฐ ์๋๊ณ , logistic regression๋ง์ ์ฌ์ฉํด์ผ ํ๋ค๋ ๊ฒ์ด์ฃ .
- linear model์ ์ฌ์ฉํ ๋์ ๊ฐ์ ์ interpretation์ ๋๋ค(logistic regression๋ generalized linear regression์ ์ํ์ฃ ). ๊ฐ ๋ณ์๊ฐ ๊ฒฐ๊ณผ์ ์ด๋ค ์ํฅ์ ๋ฏธ์น๋์ง๋ฅผ ๋ช ํํ๊ฒ ์ดํดํ ์ ์๋ค๋ ๊ฒ์, ์๋์ ์ผ๋ก ๊ทธ ํจ๊ณผ๋ฅผ ์ ํํ๊ฒ ์ ์ ์๋ neural network์ ๋นํด์ ๊ฐ๋ ฅํ์ฃ . ๋ํ, โ๋ณ์๋ณ๋ก ์ด๋ค ๋ถํฌ๋ฅผ ๊ฐ์ง๋คโ๋ฅผ ์ฃผ์ ํ๊ฑฐ๋, โํด๋์ค๋ณ๋ก ๋ค๋ฅธ ๋ถํฌ ํน์ ๋ถ์ฐ์ด ๋ค๋ฅด๋คโ๋ ๊ฒ์ ์ฃผ์ ํ์ฌ, ๊ฐ parameter๋ฅผ ๋ฏธ์ธํ๊ฒ ์์ ํ ์ ์์ต๋๋ค.
- ์๋ฌดํผ, ๋ญ ์ด๊ฑด ์ค์ํ์ง ์๊ตฌ์. ์ด๋ฌํ ์ ํ์ ์ธ ํต๊ณ ๋ชจ๋ธ์ ์ธ์์ ๋ค์ํ ๊ฐ์ค์ ๊ฒ์ฆํ๊ธฐ ์ํด์, python์์๋
statsmodels๋ผ๋ ํต๊ณ ํจํค์ง๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ , ์ด ํจํค์ง๋ฅผ ์ฌ์ฉํ ๋, ๊ฐ์ฅ ๊ฐ๋จํ ์ ํ๋ฐฉ์ ์ Ordinary Least Square๋ฅผ ๋ง๋ ๋ค๊ณ ํ๋ค๋ฉด, ๋ค์๊ณผ ๊ฐ์ด ํํํ ์ ์์๋๋ค. ๋ณด๋ฉด, ๋์ถฉ ๋ฌด์จ ๋ง์ธ์ง๋ ๊ฐ์ด ์ค์์ฃ ?
model = sm.OLS.from_formula(
formula="Y ~ X1 + X2",
data=data_df
)
- ์ฆ,
"Y ~ X1 + X2"ํํ๋ก, formula๋ฅผ ๋๊ฒจ์ ๋ชจ๋ธ์ ๊ตฌ์ถํ ์ ์๋ค๋ฉด, ์๋์ ์ผ๋ก ํธํ๊ฒ ๋ชจ๋ธ์ ๋ง๋ค ์ ์๊ฒ ์ฃ . - ๋ฐ๋๋ก, ์ ๊ฐ์ ์ผ์ผ์ด, ํ๋ํ๋์ parameter๋ก ๋๊ฒจ์ผ ํ๋ค๋ฉด, ๋งค์ฐ ๊ท์ฐฎ์์ง๋๋ค. ์ฆ, ์ด๋ฅผ ํธํ๊ฒ ํ ์ ์๋ library๊ฐ ๋ฐ๋ก patsy์ด๋ฉฐ, ๋น์ฐํ์ง๋ง,
statsmodels๋ฑ์์ ์ด๋ฏธ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
patsy: Overview
patsy๋ statistical model(ํนํ, linear model)์ ๋ฌ์ฌํ๊ธฐ ์ํ python package์ ๋๋ค. ํนํ, ์ด๋ R, S์ ๊ฐ์ ์ธ์ด๋ค์ ๋ด์ฌ๋ formula language์ฃ . ๊ฐ๋ นY ~ x1 + x2์ฒ๋ผ, ์ ํ์ ์ธ ๊ด๊ณ๋ฅผ symbolicํ๊ฒ ํํํ๋ ๊ฒ์ ๋งํฉ๋๋ค.- building design matrices???
์ฐ์ ,
patsy๋ ํต๊ณ ํจํค์ง๊ฐ ์๋๋ผ, ์์ ๋งํ ๊ฒ์ฒ๋ผ R์์์ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ์ธ formula๋ฅผ python์์๋ ์ฝ๊ฒ ์ธ ์ ์๋๋ก ํด์ฃผ๋, bridge์ ๊ฐ๊น์ด ์ธ์ด๋ผ๊ณ ์๊ฐํ์๋ฉด ์ข์ ๊ฒ ๊ฐ์์. ์ฆ โํต๊ณ ๋ชจ๋ธ(ํนํ, ์ ํ ๋ชจ๋ธ์ ์ค์ฌ์ผ๋ก)์ ๊ตฌ์ถํ๊ธฐ ์ํ high-level interface๋ฅผ ์ ๊ณตโํ๋ค, ๋ผ๊ณ ๋งํ๋๊ฒ ์ข์์. - ์ฆ, ํ์ํ๋ค๋ฉด, ์ง์ ์ค์นํด์ ์ธ ์๋ ์์ง๋ง, ๊ทธ๋ณด๋ค๋ ๋ณดํต
statsmodels๋ฑ์ ์ค์นํ ๋ ์์กด์ฑ์ผ๋ก ๋ธ๋ ค์ค๋๊น, ๊ตณ์ด ์ด๊ฒ๋ง ๋ฐ๋ก ์ค์นํ ํ์๋ ์์ ๊ฒ ๊ฐ์์.
wrap-up
- ์ฒ์์๋
patsy์ ๋ํ ๋ค์ํ ์ฌ์ฉ๋ฒ์ ๋ฐ๋ก ์ ๋ฆฌํ๋ ค๊ณ ํ์ผ๋, ์ฐ๊ณ ๋ณด๋, ๋น๊ต์ ์ธ๊ฒ ์๋ ๊ฒ ๊ฐ์์, ๊ฐ๋จํ๊ฒ ์ ๋ฆฌํ๊ณ ๋ง์์ต๋๋ค. - ๊ทธ์ , statsmodels์ ๋ด์ฌ๋์ด ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ patsy์ด๋ฉฐ, ๋ง์ฝ formula๊ฐ ํท๊ฐ๋ฆฌ๋ฉด, ์ฌ๊ธฐ์ ๊ฐ์ ธ์ค๋ฉด ๋๋ค, ์ ๋๋ก๋ง ์ดํดํ๊ณ ์ดํ์ formula๊ฐ ๋์ค๋ฉด ๊ฒ์ํ๋ฉด์ ์งํํ๋ฉด ๋ ๊ฒ ๊ฐ์์.
reference
GitHub์์ ์ด ๊ธ์ ๋งํฌ๋ค์ด ์๋ณธ ๋ณด๊ธฐ & ์์ ์ ์src/content/posts/2020-01-21-patsy_intro
๐ ์ฐ๊ด ์ง์ ํ๋ธ:๐ python-libs ์นดํ
๊ณ ๋ฆฌ๐ Python ์ปค๋ฆฌํ๋ผ#python#python-libs#patsy
๐กRELATED ARTICLES ยท ํจ๊ป ์ฝ์ผ๋ฉด ์ข์ ์ฐ๊ด ํฌ์คํธ
python-libs
Fitting Statistical Models to Data with Python - WEEK 3 - part 1
์ฝ์ด๋ณด๊ธฐ→
python-libs
Fitting Statistical Models to Data with Python - WEEK 3 - part 2
์ฝ์ด๋ณด๊ธฐ→
python-libs
Fitting Statistical Models to Data with Python - WEEK 3 - part 3
์ฝ์ด๋ณด๊ธฐ→
python-libs
Fitting Statistical Models to Data with Python - WEEK 1 - Part 1
์ฝ์ด๋ณด๊ธฐ→