์ธ๊ณต์ง€๋Šฅ ๐ŸŒŒ/๋จธ์‹ ๋Ÿฌ๋‹

[๋จธ์‹ ๋Ÿฌ๋‹] ํšŒ๊ท€ - ๋‹ค์ค‘ ์„ ํ˜• ํšŒ๊ท€๋ถ„์„

23.8 2021. 7. 29. 10:46
๋ฐ˜์‘ํ˜•

๋‹ค์ค‘ ์„ ํ˜• ํšŒ๊ท€๋ถ„์„

 

- ๋‹ค์ค‘์„ ํ˜• ํšŒ๊ท€ ๋ถ„์„์€ ๋‹จ์ˆœ ์„ ํ˜•ํšŒ๊ท€๋ถ„์„๊ณผ ๋น„๊ตํ–ˆ์„ ๋•Œ ๋ณ€์ˆ˜๊ฐ€ ์—ฌ๋Ÿฌ๊ฐœ์ด๊ณ  ๊ฐœ๋…์ ์œผ๋กœ๋Š” ์ฐจ์ด๊ฐ€ ์—†๋‹ค.
- ๋ณ€์ˆ˜๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ ์ด๊ธฐ์— ๋‹จ์ˆœ ์„ ํ˜• ํšŒ๊ท€๋ถ„์„๊ณผ ๊ฒ€์ • ๋ฐฉ๋ฒ•์ด๋‚˜ ๋ชจ๋ธ๋ง ๋ฐฉ๋ฒ•์— ์•ฝ๊ฐ„์˜ ์ฐจ์ด๊ฐ€ ์žˆ์ง€๋งŒ ๊ธฐ๋ณธ์ ์ธ ๊ฐœ๋…์€ ๊ฑฐ์˜ ๊ฐ™๋‹ค.

 

 


๋‹ค์ค‘ ์„ ํ˜• ํšŒ๊ท€๋ถ„์„ ํ•ด์„

- ์œ„์™€ ๊ฐ™์€ ํ‘œ๊ฐ€ ์žˆ์„ ๋•Œ CRIM์„ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€ ๋ณ€์ˆ˜์ธ RM, LSTAT๊ฐ€ ๊ณ ์ •๋˜์–ด์žˆ๋‹ค๊ณ  ํ•˜์ž. ์ด ๊ฒฝ์šฐ CRIM์ด 1๋‹จ์œ„ ์˜ฌ๋ผ๊ฐˆ๊ฒฝ์šฐ ๊ฐ€๊ฒฉ์ด -0.1029๋ฐฐ๊ฐ€ ๋œ๋‹ค

- ํšŒ๊ท€๊ณ„์ˆ˜๋Š” ๋‹จ์ˆœํšŒ๊ท€๊ณ„์ˆ˜์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ p-value๊ฐ’์ด ๋‚ฎ์„ ์ˆ˜๋ก ์„ค๋ช…๋ ฅ์ด ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค.
- ํ‘œ์ค€์˜ค์ฐจ์ธ Std.error๊ฐ’์€ ์ž‘์„ ์ˆ˜๋ก ์ข‹๋‹ค.

- ๋งŒ์•ฝ ํšŒ๊ท€๊ณ„์ˆ˜๊ฐ€ 0์— ๊ฐ€๊น๊ฑฐ๋‚˜ ํ‘œ์ค€์˜ค์ฐจ๊ฐ€ ์ปค์ง„๋‹ค๋ฉด T ํ†ต๊ณ„๋Ÿ‰์ด ์ž‘์•„์ง€๊ณ  P-value๊ฐ€ ์ปค์ง€๋ฉด์„œ ๋ณ€์ˆ˜์˜ ์œ ์˜์„ฑ์ด ๋–จ์–ด์ง„๋‹ค

 


๋‹ค์ค‘ ์„ ํ˜• ํšŒ๊ท€ ๋ชจ๋ธ ๊ฒ€์ •

 

- ๋‹จ์ˆœ ์„ ํ˜• ํšŒ๊ท€๋ชจ๋ธ์€ ๋ณ€์ˆ˜๊ฐ€ ํ•˜๋‚˜์ด๊ธฐ์— ์„ ํ˜• ํšŒ๊ท€๊ณ„์ˆ˜๋งŒ ๊ฒ€์ •ํ•˜๋ฉด ๋์ง€๋งŒ, ๋‹ค์ค‘ ์„ ํ˜• ํšŒ๊ท€๋ชจ๋ธ์€ ๋ณ€์ˆ˜ ๊ฒ€์ •๊ณผ ๋ณ„๊ฐœ๋กœ ๋ชจ๋ธ ์ž์ฒด์˜ ์œ ์˜์„ฑ๋„ ๊ฒ€์ •ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค.
- F ๊ฒ€์ •์„ ํ†ตํ•ด์„œ ๊ฒ€์ •์„ ํ•œ๋‹ค

 

 


ํšŒ๊ท€๋ชจ๋ธ์˜ ์„ฑ๋Šฅ์ง€ํ‘œ

 

- R2 : R2๋Š” ํšŒ๊ท€๋ถ„์„์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์„ฑ๋Šฅ์ง€ํ‘œ ์ค‘ ํ•˜๋‚˜๋กœ, y์˜ ์ด ๋ณ€๋™์„ฑ์— ๋Œ€ํ•ด์„œ x๊ฐ€ ๋ณ€๋™์„ ์–ผ๋งˆ๋ƒ ์ž˜ ์„ค๋ช…ํ•˜๋Š๋ƒ์˜ ๋น„์œจ์ด๋‹ค. 


- Adjusted R2 :  ๋ณ€์ˆ˜์˜ ๊ฐœ์ˆ˜๊ฐ€ ์ฆ๊ฐ€ํ•˜๋ฉด R2๋„ ๊ฐ™์ด ์ฆ๊ฐ€ํ•˜๊ธฐ์—(SSR์ด ์ œ๊ณฑํ•ฉ์˜ ํ˜•ํƒœ์ด๊ธฐ์—) ์ด๋ฅผ ๋ณด์™„ํ•ด์ค„ ์„ฑ๋Šฅ์ง€ํ‘œ๊ฐ€ ํ•„์š”ํ•˜๋‹ค. ์ด๋ ‡๊ฒŒ ๊ธฐ์กด์˜ R2๋ฅผ ๋ณด์™„ํ•˜์—ฌ ๋ณ€์ˆ˜์˜ ๊ฐœ์ˆ˜๋งŒํผ ํŒจ๋„ํ‹ฐ๋ฅผ ์ค€๊ฒƒ์ด Adjusted R2์ด๋‹ค. 

*p : ๋ณ€์ˆ˜์˜ ๊ฐœ์ˆ˜, n : ํ‘œ๋ณธ

 p๊ฐ€ 1์ด๋ผ๋ฉด R2์™€ ๊ฐ™๊ณ , p๊ฐ€ ์ฆ๊ฐ€ํ•œ๋‹ค๋ฉด ์ „์ฒด ๊ฐ’์ด ์ค„์–ด๋“ ๋‹ค.

 


- AIC : ํšŒ๊ท€๋ชจ๋ธ์—์„œ ๋ชจ๋ธ์„ ์„ ํƒํ•  ๋–„ ๊ฐ€์žฅ ๋งŽ์ด ์“ฐ๋Š” ์„ฑ๋Šฅ์ง€ํ‘œ์ด์ง€๋งŒ ํ‘œ๋ณธ(n)์ด ์ปค์งˆ ๋–„ ์ž˜ ๋งž์ง€ ์•Š๋Š”๋‹ค. MSE์— ๋ณ€์ˆ˜ ์ˆ˜ ๋งŒํผ ํŒจ๋„ํ‹ฐ๋ฅผ ์ฃผ๋Š” ์ง€ํ‘œ์ด๋‹ค.


- BIC : n(ํ‘œ๋ณธ)์ด ์ปค์ง€๋ฉด AIC๋ณด๋‹ค BIC๋ฅผ ์“ฐ๋Š” ๊ฒƒ์ด ์ ํ•ฉํ•˜๋‹ค.  


- AIC์™€ BIC ๋ชจ๋‘ ๊ทธ ๊ฐ’์ด ์ž‘์„ ์ˆ˜๋ก ์ข‹๋‹ค


๋‹ค์ค‘ ์„ ํ˜• ํšŒ๊ท€๋ถ„์„ ์‹ค์Šต


- sklearn์˜ datasets ์ค‘ boston ๋ฐ์ดํ„ฐ ์‚ฌ์šฉ
- boston ๋ฐ์ดํ„ฐ ์ค‘ crim, rm, lstat๋ฅผ ์ž…๋ ฅ๋ณ€์ˆ˜๋กœ, price๋ฅผ ์ถœ๋ ฅ๋ณ€์ˆ˜๋กœ ๋‘” ํ›„ ์ด๋“ค์˜ ๊ด€๊ณ„๋ฅผ ํ™•์ธํ•ด๋ณด๊ณ  ์˜ˆ์ธก ๋ชจ๋ธ ์ƒ์„ฑ


-๋ฐ์ดํ„ฐ ์ค€๋น„

import pandas as pd
import numpy as np
from sklearn import datasets
import statsmodels.api as sm

#๋ฐ์ดํ„ฐ ์ค€๋น„ํ•˜๊ธฐ
boston = datasets.load_boston()
print(boston.DESCR)

boston_df = pd.DataFrame(boston.data, columns = boston.feature_names)
boston_df

boston_df["PRICE"] = pd.DataFrame(boston.target)
boston_df.head()

#์„ ํ˜•ํšŒ๊ท€์™€ ๋‹ค๋ฅธ ์ !
x_data = boston_df[["CRIM", "RM", "LSTAT"]]
x_data.head()

price = boston_df[["PRICE"]]

 


-ํšŒ๊ท€๋ชจ๋ธ ์ƒ์„ฑ

x_data1 = sm.constant(x_data, has_constant = 'add')

multi_reg = sm.OLS(price, x_data1)
fitted_multi_model = multi_reg.fit()
fitted_ulti_model.summary()

 


-์‹œ๊ฐํ™”

import matplotlib.pyplot as plt
fitted_multi_model.resid.plot()
plt.xlabel("residual_number")
plt.show()


#๋‹จ์ˆœ์„ ํ˜•ํšŒ๊ท€์™€ ๋น„๊ต
fitted_model.resid.plot(label="crim")
fitted_multi_model.resid.plot(label="full")
plt.legend()




728x90
๋ฐ˜์‘ํ˜•