๋ค์ค ์ ํ ํ๊ท๋ถ์
- ๋ค์ค์ ํ ํ๊ท ๋ถ์์ ๋จ์ ์ ํํ๊ท๋ถ์๊ณผ ๋น๊ตํ์ ๋ ๋ณ์๊ฐ ์ฌ๋ฌ๊ฐ์ด๊ณ ๊ฐ๋
์ ์ผ๋ก๋ ์ฐจ์ด๊ฐ ์๋ค.
- ๋ณ์๊ฐ ์ฌ๋ฌ ๊ฐ ์ด๊ธฐ์ ๋จ์ ์ ํ ํ๊ท๋ถ์๊ณผ ๊ฒ์ ๋ฐฉ๋ฒ์ด๋ ๋ชจ๋ธ๋ง ๋ฐฉ๋ฒ์ ์ฝ๊ฐ์ ์ฐจ์ด๊ฐ ์์ง๋ง ๊ธฐ๋ณธ์ ์ธ ๊ฐ๋
์ ๊ฑฐ์ ๊ฐ๋ค.
๋ค์ค ์ ํ ํ๊ท๋ถ์ ํด์
- ์์ ๊ฐ์ ํ๊ฐ ์์ ๋ 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()
'์ธ๊ณต์ง๋ฅ ๐ > ๋จธ์ ๋ฌ๋' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋จธ์ ๋ฌ๋ ๋ฒ์ฃผํ ์๋ฃ ์ ์ฒ๋ฆฌ (0) | 2022.11.27 |
---|---|
๋จธ์ ๋ฌ๋์ ๊ณผ์ ๊ณผ ๋ฐ์ดํฐ ์ ์ฒ๋ฆฌ (0) | 2022.11.26 |
๋จธ์ ๋ฌ๋ ๊ฐ์ - ๋จธ์ ๋ฌ๋์ด๋ (1) | 2022.11.26 |
ํ๊ท - ๋ค์ค๊ณต์ ์ฑ (0) | 2021.08.19 |
[๋จธ์ ๋ฌ๋] ํ๊ท - ๋จ์ ์ ํ ํ๊ท๋ถ์ (0) | 2021.07.29 |