이번 포스팅에서는 가변수와 교호작용항을 포함한 모델에 대해 알아보겠습니다.
지금까지 회귀분석시 설명변수에는 양적변수(quantitative variable)를 사용했지만 사실 질적(qualitative)인 변수를 사용해도 됩니다. Part 3에서 예시로 살펴봤던 연비(hwy)를 배기량(displ)와 연관시켜 설명했지만 배기량 말고도 제조사, 실린더수 등으로도 설명이 가능합니다.
우선 가변수를 설명하기 위해 신용카드 대금 차이를 조사하기 위해 성별(x)과 신용카드 대금(y)이 있는 데이터를 받았다고 생각해 봅시다. 그리고 성별은 남성과 여성의 두 개의 가능한 값을 가지고 질적변수는 가변수로 변환하여 생각할 수 있습니다. 그러므로 모델링은 다음과 같이 생각할 수 있습니다.
- Model : $Y = \beta_0 + \beta_1X + \varepsilon$
이때 $X$가 남성이라면 1로 여성이라면 0으로 설정할 수 있습니다. (여성을 1, 남성을 0으로 해도 됩니다)
그러면 남성인 경우 X=1, 여성인 경우 X=0이 되겠네요. 따라서 이를 모델에 대입하면 남성인 경우와 여성인 경우의 모델을 구할 수 있습니다.
- Model given $X^{Men}=1$ : $Y = \beta_0 + \beta_1 + \varepsilon$
- Model given $X^{Women}=0$ : $Y=\beta_0 + \varepsilon$
따라서 $\beta0$는 여성의 평균 신용카드 대금, $\beta_0 + \beta_1$은 남성의 평균 신용카드 대금이라고 생각할 수 있으며 만약 $\beta_1$에 대한 회귀계수의 검정이 유의하다면 남성과 여성에 신용카드 대금이 다르다고 판단 할 수 있을 것 입니다.
또 책의 범위를 벗어나는 내용이라 당장 다룰 생각은 없지만 가변수는 회귀불연속(Regression Discontinuity) 설계를 할 때 사용할 수 있습니다.
아래 예시를 통해 살펴보겠습니다.
library(ISLR)
data("Credit")
summary(Credit)
- 데이터를 보면 Gender(성별), Balance(대금)을 확인할 수 있습니다.
lm.fit <- lm(Balance~factor(Gender), data=Credit)
summary(lm.fit)
- 결과를 보면 더비변수 X는 여성인 경우를 1, 여성이 아닌경우를 0으로 나타내고 있습니다
- 또한 더비변수의 회귀계수의 P-value가 0.669로 유의수준 0.05보다 크므로 귀무가설을 기각합니다.
- 따라서 남성과 여성의 신용카드 대금의 차이가 존재하지 않는다고 볼 수 있습니다.
- 유추된 모델은 $\hat{Y}=509.8 + 19.73X$입니다. (남자 : X=0, 여자 : X=1)dummy.coef를 통해 더비변수의 값마다 회귀계수 추정치를 확인할 수 있습니다.
- 남성의 경우 카드대금에 추가되는 양은 0이며 여성의 경우에는 19.73정도 증가한다고 생각할 수 있습니다.
X = (as.numeric(factor(Credit$Gender, levels=c(" Male", "Female")))-1)
Y = Credit$Balance
beta1 = cov(X,Y)/var(X)
beta0 = mean(Y) - beta1*mean(X)
sprintf("[beta0] : %.4f [beta1] : %.4f", beta0, beta1)
- 기존에 유도했던 추정치 공식을 이용해도 같은 결과를 얻을 수 있습니다.
마지막으로 다룰 내용은 상호작용항인데 간단하게 설명하고 넘어가겠습니다. 다중선형회귀분석를 진행하면 여러가지의 설명변수를 사용합니다. 그런데 특정 설명변수끼리 연관성이 있어서 시너지 효과가 존재할 수 있습니다. 예를 들어보면 공장의 생산성을 연구하는데 생산 라인의 수와 총 근로자수를 기반으로 생산성을 예측할 수 있을 것입니다. 일반적으로 생산라인이 늘수록 생산성이 증가하며, 근로자수가 늘수록 생산성이 증가합니다. 하지만 근로자수가 0명이라면 생산라인을 엄청 늘리더라도 생산성을 증가하지 않습니다. 이렇게 두 설명변수 사이에 시너지 효과가 존재한다면 모델에 상호작용항을 포함해야 하며 상호작용항은 두개 이상 변수의 곱으로 나타낼 수 있습니다!
이제 두개의 변수와 상호작용항을 포함한 모델을 살펴보면 아래와 같습니다.
$$Y = \beta_0 + beta_1X_1 + \beta_2X_2 + \beta_3X_1X_2 + \varepsilon$$
참고로 상호작용항인 $\beta_3X_1X_2$가 통계적으로 유의하다면 $X_1$, $X_2$가 유의하지 않더라도 모델에는 $X_1$, $X_2$를 포함시켜야 합니다.
lm.fit <- lm(Balance~Age*Rating, data=Credit)
summary(lm.fit)
위 결과에서 모델은 $Balance = -450.7 + 0.7452Age + 3.098Rating -0.0085Age*Rating$ 입니다.
이때 교호작용항인 Age:Rating의 P-Value가 0.0364로 유의수준 0.05보다 작으므로 교호작용항은 반응변수(Balance)에 영향을 끼친다고 생각할 수 있으며 교호작용항을 구성하는 변수들의 주 효과역시 포함시켜야 합니다. 따라서 Age의 P-value가 0.6453으로 반응변수에 영향을 준다는 근거가 존재하지 않지만 교호작용항이 유의하므로 Age변수를 제거하고 진행하면 안됩니다.
'AI > Machine Learning' 카테고리의 다른 글
[ISLR] 4. 분류(Classification) - 로지스틱 회귀분석(Logistic Regression) (0) | 2023.03.28 |
---|---|
[ISR] 3. 선형회귀(Linear Regression) Part 5 (0) | 2023.03.11 |
[ISR] 3. 선형회귀(Linear Regression) Part 3 (0) | 2023.03.08 |
[ISR] 3. 선형회귀(Linear Regression) Part 2 (0) | 2023.03.08 |
[ISL] 3. 선형회귀(Linear Regression) Part 1 (0) | 2023.02.28 |