63.4% (78/123일)
남아공 케이프타운 인근 해변의 펭귄
빌 비숍의 저서 핑크펭귄
펭추리
데이터 셋: https://www.kaggle.com/datasets/parulpandey/palmer-archipelago-antarctica-penguin-data
원본 데이터 columns (7개)
species: 펭귄 종
island: 서식지
culmen_length_mm: 부리 길이
culmen_depth_mm: 부리 깊이
flipper_length_mm: 날개 길이
body_mass_g: 몸무게 # 종속변수 y로 분리됨
sex: 성별
다중 선형 회귀 : 독립 변수의 개수가 2개 이상인 선형 회귀 모델
ridge, lasso : 다중 공선성 문제가 발생할 때, 이를 해결하기 위해서 사용됨
펭귄이 몸무게가 많이 나가는 조건을 우선 잘 먹기 위한 긴 부리를 가져야 할 것 같고, 날개가 길면 몸집이 커서 당연히 몸무게가 많이 나갈 것이라는 가설을 두고 분석해 보기로 함
펭귄 종별 파악
. 젠투(Gentoo) 펭귄: 보통 5.9kg 황제>임금>젠투
. 아델리(Adeliae) 펭귄: 보통 4.7kg, 길이 70cm
. 턱끈(chinstrap) 펭귄: 보통 3~5kg
결측치 점검
null값 sex항목 x_train(7), x_test(1) ---> fillna("neuter")
비수치값의 One-Hot Encoding
species: 펭귄 종
island: 서식지
sex: 성별
simple linear regression
x3_train.corr()["body_mass_g"].sort_values(ascending=False)
body_mass_g 1.000000
flipper_length_mm 0.871732
species_Gentoo 0.825659
culmen_length_mm 0.613607
sex_MALE 0.416346
sex_neuter -0.051560
island_Torgersen -0.248728
species_Chinstrap -0.301546
sex_FEMALE -0.405928
island_Dream -0.479264
culmen_depth_mm -0.499075
heatmap
body_mass_g와 피어슨 상관계수가 높은 2개의 변수 flipper_length_mm, species_Gentoo 선택하여 각각을 독립 변수로 선택하여 테스트 해 봄
펭귄 종별 몸무게
펭귄 종별 날개길이
펭귄 종별 부리길이
날개길이와 몸무게 간에 선형회귀모형을 적용해
. OLS로 선형회귀 모델을 학습 결과:
기울기: 49.887028625243126
절편: -5822.600078017323
x_train 데이터에 대한 시각화
x_test 데이터에 대한 시각화
R2, RMSE 두 가지 척도로 회귀식의 적합도를 측정
train r2: 0.7599164415676609
train RMSE: 396.8406480418189
test r2: 0.7534381809067086
test RMSE: 378.12237466205806
해석: 회귀 모델의 성능 평가에서 결정계수 train r2 점수는 이 모델이 데이터를 표현함이 75.99%이며, train RMSE: 396.8406는 예측 표준편차를 의미함
OLS Regression Results
. R-squared를 보면 큰값이 나왔고, 추정된 회귀식이 총 변동량의 많은 부분을 설명 준다는 점은 좋지만, 과적합을 점검해 봐야 함. 너무 많은 특성과 복잡한 모델이 아닌지 점검
선형 회귀 모델은 오차에 대한 몇 가지 가정을 하고 회귀식을 도출했음.
. 오차항(𝜖𝑖)의 평균은 0이고 분산은 𝜎2이다. (등분산성)
. 오차항(𝜖𝑖들은 서로 독립이다. (독립성)
. 오차항𝜖𝑖은 정규분포를 따른다. (정규성)
skewness
. 확률 분포가 중심으로부터 치우친 정도
. 양수일 경우엔 왼쪽, 음수일 경우엔 오른쪽으로 치우친 형태
. 절대값이 2보다 작으면 정규분포에서 크게 벗어나지 않는다고 봄
. 값이 0.302인 이 피처는 약간 오른쪽으로 치우쳐 있는 분포
kurtosis
. 확률 분포가 중심으로 몰려서 뾰족한 정도
. 양수면 정규분포보다 뾰족하고 음수면 정규분포보다 완만
. 절대값이 7보다 작으면 정규성을 벗어나지 않는다고 봄
. 값이 3.021인 이 피처는 일반적인 정규 분포보다 꼬리 부분이 뾰족한 분포
다중 선형 회귀 모델에서 전진 선택법과 후진 제거법 적용 최적화
여기서, 1.819e-12는 절편(intercept)이며, flipper_length_mm, sex_FEMALE, island_Torgersen, species_Adelie, species_Gentoo의 계수는 각각 -2.132e-14, 1.705e-13, -4.547e-13, -1.421e-13, -3.979e-13입니다.
body_mass_g를 독립변수로 잘못 들어가서 계수가 음수값이 나와 버렸다.
다중 공선성이 발생시키는 문제 : 파라미터 추정의 불안정성, 해석의 어려움, 적절한 가중치를 찾지 못하고 변수들에 대해 과도한 가중치 크기를 할당하는 경향 등
분산 팽창 계수(VIF) 확인(10 이상)하여 관련 변수 점검
이전 후진 제거법으로 처리한 독립변수 확인
최종단계 OLS
Lasso regression: 여기에 정규화를 위해서 회귀 계수들의 절대값의 합을 더해줌. L1 regularization이라고도 함.
Ridge regression은 정규화를 위해서 회귀 계수들의 제곱 합을 더해줌. L2 regularization이라고도 함.
1) 다중선형회귀(multiple linear regression)
2) Lasso
3) Ridge
다중 선형 회귀 분석 결과, 부리 깊이, 날개 길이, 성별, 종별이 증가함에 따라 몸무게 증감에 계수를 찾아내고, 그에 대한 검증을 해 봤음
다중공선성과 변수 선택을 위해 라소와 릿치 모델을 돌렸더니 양호하다고 나왔다.
결론적으로, 부리의 깊이, 날개 길이, 성별, 종별이 펭귄의 몸무게에 영향을 미치는 주요 독립 변수로 확인되었으며, 라쏘와 릿지 회귀 모델을 통하여 다중공선성 및 모델의 해석력과 안정성을 향상시킬 수 있다는 것을 인지하였음