선형 모형 2: 연속형 설명 변수일 때 선형변환을 통한 모형 행렬의 결정
들어가기
지난 시간에는 흔히 말하는 선형 모형(linear model)의 선형의 의미를 알아보았습니다. 선형 모형의 선형이란 모형(\(f(x_1, x_2, \cdots, x_p)\))이 다음과 같은 모수의 선형 함수임을 의미합니다.
\[f(x_1, x_2, \cdots, x_p) = \beta_0 + \beta_1 x_1 + \beta_2 x_2 + \cdots \beta_p x_p\]
이때 \(x_1, x_2, \cdots, x_p\) 는 관찰 변수 그 자체일 수도 있고, 관찰 변수를 변환시킨 변수(예. \(x_1^2, x_1\cdot x_2, \sqrt{x_1}\) 등)일 수도 있습니다.
선형 모형의 장점은 \(f(x_1, x_2, \cdots, x_p) = \vec{x}^T \vec{\beta}\) 로 간단하게 표현할 수 있고, 전체 자료의 예측값( \(\hat{\vec{y}}\) )은 \(\textbf{X}\vec{\beta}\) 로 나타낼 수 있습니다.
이때 \(\textbf{X}\) 는 모든 사례에 대한 \(x_1, x_2, \cdots, x_p\) 를 행렬로 만든 것입니다.
\[\textbf{X}_{ij} = x_{j}^{(i)}\]
(행렬을 결정하는 유일한 방법은 모든 원소를 정해주는 것이고, 위의 수식은 행렬 \(\textbf{X}\) 의 임의 \(i\) -행, \(j\) -열 원소 \(\textbf{X}_{ij}\) 을 알 수 있는 방법을 알려 준다고 할 수 있습니다. 만약 \(\textbf{X}\) 의 2번째 행, 3번째 열의 원소를 알고 싶다면 \(i\) 와 \(j\) 에 2와 3을 대입하여 \(x_3^{(2)}\) 을 얻습니다. 그리고 \(x_3^{(2)}\) 는 3번째 데이터의 2번째 변수를 나타냅니다.)
모형 행렬 \(\textbf{X}\) 의 정하기 : 연속형 변수의 경우
관찰 변수의 평균 중심화(mean-centering)
여기서는 관찰 변수와 선형 모형에 들어가는 \(\textbf{X}_{\ \cdot j}= x_{j}^{(\cdot)}\) 값을 구별하기 위해 우리가 가지고 있는 변수 중 하나를 \(z_j\) 로 쓰겠습니다. \(x_{j}\) 는 \(z_1\) 이 될 수도 있고, \(\log z_2\) 또는 \(z_1 + z_2\) 등이 될 수 있습니다.
만약 어떤 관찰 변수 \(z_1\) 가 연속형 변수라고 해봅시다. 가장 자연스러운 방법은 선형 모형은 다음과 같습니다.
\[y = \beta_0 + \beta_1 z_1\]
\(x_1 = z_1\) 이 되는 것이죠. 하지만 이 방법이 유일한 방법은 아닙니다. 예를 들어 \(x_1=z_1 – \bar{z_1}\) 으로 변환하여 쓰기도 합니다.
\[y = \beta_0 + \beta_1(z_1-\bar{z_1})\]
이를 잘 정리해보면 \(y= \beta_0 – \beta_1\bar{z_1} + \beta_1 z_1\) 과 동일하고, \(\mathbb{E}[y | z_1 = \bar{z_1}] = \beta_0\) 이 되어, \(\beta_0\) 은 \(z_1\) 이 표본 평균일 때의 예측값이 되어, 앞의 모형 \(y=\beta_0+\beta_1 z_1\) 에서 \(\beta_0\) 의 의미(\(z_1\) 이 0일 때 \(y\) 의 기대값)와 달라집니다.
예를 들어 다음의 자료를 봅시다.
library(dplyr)
data(Davis, package='carData')
Davis %>% filter(height > 100) -> Davis2
Davis2 %>% filter(sex == "M") %>% head(10) -> Davis3
Davis3
## sex weight height repwt repht ## 1 M 77 182 77 180 ## 2 M 68 177 70 175 ## 3 M 76 170 76 165 ## 4 M 76 167 77 165 ## 5 M 69 186 73 180 ## 6 M 71 178 71 175 ## 7 M 65 171 64 170 ## 8 M 70 175 75 174 ## 9 M 92 187 101 185 ## 10 M 76 197 75 200
이 10명의 학생 자료를 활용하여 키와 몸무게의 관계를 선형 모형으로 추정하고자 합니다. 이때 몸무게를 \(y\) 변수로 놓고, 키를 \(z_1\) 으로 놓으면, 선형 모형 \(y = \beta_0 + \beta_1 x_1\) 에서 \(x_1\) 을 \(x_1 = z_1\) 으로 놓을 수도 있고, \(x_1 = z_1 – 179\) 로 놓을 수도 있습니다. (179는 학생들의 키 평균입니다.)
두 모형 \(y = \beta_0 + \beta_1 z_1\) 과 \(y = \beta_0 + \beta_1 (z_1 – 179)\) 는 모두 모수의 선형 모형이고, 동일한 모형을 조금 다르게 나타낸 것 뿐이지만, \(\beta_0\) 의 의미는 달라집니다.
fit0 <- lm(weight ~ height, data=Davis3)
fitCentered <- lm(weight ~ I(height - mean(height)), data=Davis3)
summary(fit0)
## ## Call: ## lm(formula = weight ~ height, data = Davis3) ## ## Residuals: ## Min 1Q Median 3Q Max ## -6.991 -4.853 -2.789 3.956 15.725 ## ## Coefficients: ## Estimate Std. Error t value Pr(>|t|) ## (Intercept) 23.0939 48.9303 0.472 0.650 ## height 0.2844 0.2730 1.042 0.328 ## ## Residual standard error: 7.507 on 8 degrees of freedom ## Multiple R-squared: 0.1194, Adjusted R-squared: 0.00935 ## F-statistic: 1.085 on 1 and 8 DF, p-value: 0.328
summary(fitCentered)
## ## Call: ## lm(formula = weight ~ I(height - mean(height)), data = Davis3) ## ## Residuals: ## Min 1Q Median 3Q Max ## -6.991 -4.853 -2.789 3.956 15.725 ## ## Coefficients: ## Estimate Std. Error t value Pr(>|t|) ## (Intercept) 74.0000 2.3740 31.172 1.22e-09 *** ## I(height - mean(height)) 0.2844 0.2730 1.042 0.328 ## --- ## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 ## ## Residual standard error: 7.507 on 8 degrees of freedom ## Multiple R-squared: 0.1194, Adjusted R-squared: 0.00935 ## F-statistic: 1.085 on 1 and 8 DF, p-value: 0.328
위의 결과를 보면 설명변수를 평균중심화해도 \(\beta_1\) 의 추정값이나 신뢰구간은 변하지 않음을 확인할 수 있습니다. 하지만 \(\beta_0\) 의 추정값과 신뢰구간은 달라집니다. \(\beta_0\) 의 의미는 키가 179일 때 추정되는 체중의 평균입니다. (여기서 179은 평균의 추정값이지 정확하게 키의 평균이라고 할 수 없기 때문에 평균 키에서 추정되는 체중의 평균이라고 말할 순 없습니다. 물론 표본의 크기가 커질 수록 표본평균과 모평균의 차이가 작아집니다.)
confint(fit0)
## 2.5 % 97.5 % ## (Intercept) -89.7395203 135.9273510 ## height -0.3452205 0.9140036
confint(fitCentered)
## 2.5 % 97.5 % ## (Intercept) 68.5256328 79.4743672 ## I(height - mean(height)) -0.3452205 0.9140036
아래 그래프에서 자료의 위치와 회귀선, 그리고 \(\textrm{height}\) 에 따른 \(\textrm{weight}\) 의 추정값을 확인할 수 있습니다. 평균 중심화를 하지 않은 경우에 \(\beta_0\) 의 신뢰구간이 엄청나게 커지는 이유를 확인할 수 있을 것입니다.
library(ggplot2)
dat = data.frame(height=seq(0,200 , 1))
datPred = as.data.frame(predict(fit0, newdata=dat, interval='prediction'))
datPred$height = dat$height
ggplot(Davis3, aes(x=height, y=weight)) +
geom_ribbon(data = datPred, aes(y=fit, ymin=lwr, ymax=upr), alpha=0.2) +
geom_line(data=datPred, aes(x=height, y=fit))+
geom_point()
## Warning: Ignoring unknown aesthetics: y
설명변수의 표준화
설명변수의 평균중심화에 한 단계를 더해서 표준화를 시킬 수도 있습니다. 표준화는 다음과 같이 쓸 수 있습니다.
\[x_1 = \frac{z_1 – \bar{z_1}}{\textrm{sd}(z_1)}\]
여기서 \(\bar{z_1}\) 과 \(\textrm{sd}(z_1)\) 은 \(z_1\) 의 표본 평균과 표본 표준편차입니다.
이렇게 \(x_1\) 을 설정하면 \(y = \beta_0 + \beta_1 x_1\) 에서 \(\beta_1\) 의 의미가 \(z_1\) 이 1표준편차만큼 증가할 때, 기대되는 \(y\) 값의 증가로 해석할 수 있다는 장점이 있습니다. \(z_1\) 의 값의 의미를 해석하기 어려운 경우에 유용한 방법입니다. 예를 들어 봅시다. \(z_1\) 이 키를 나타내고 미터 단위로 측정되었다면, \(x_1=z_1\) 으로 놓아도 \(\beta_1\) 의 의미가 키가 \(1\textrm{m}\) 증가할 때 \(y\) 의 기대 증가량으로 쉽게 이해할 수 있습니다. 하지만 \(z_1\) 이 어떤 설문조사의 리커트 척도 응답이라고 한다면, 이때 1의 증가가 정확히 어떤 의미가 있는지 파악하기가 쉽지는 않습니다. 이럴 때 \(x_1 = \frac{z_1 – \bar{z_1}}{\textrm{sd}(z_1)}\) 으로 놓으면, 응답 집단 내에서 얼마나 큰 차이인지를 대략적으로 이해할 수 있게 됩니다. (이때 \(\textrm{sd}(z_1)\) 은 표본표준편차로 정확한 모표준편차가 아니기 때문에 일반적인 계수 추정량에 비해 불확실성이 커지지만 대부분의 경우 크게 신경을 써야 할 정도는 아닐 것입니다.)
fit0 <- lm(weight ~ height, data=Davis3)
fitStd <- lm(weight ~ I((height - mean(height))/sd(height)), data=Davis3)
summary(fit0)
## ## Call: ## lm(formula = weight ~ height, data = Davis3) ## ## Residuals: ## Min 1Q Median 3Q Max ## -6.991 -4.853 -2.789 3.956 15.725 ## ## Coefficients: ## Estimate Std. Error t value Pr(>|t|) ## (Intercept) 23.0939 48.9303 0.472 0.650 ## height 0.2844 0.2730 1.042 0.328 ## ## Residual standard error: 7.507 on 8 degrees of freedom ## Multiple R-squared: 0.1194, Adjusted R-squared: 0.00935 ## F-statistic: 1.085 on 1 and 8 DF, p-value: 0.328
summary(fitStd)
## ## Call: ## lm(formula = weight ~ I((height - mean(height))/sd(height)), ## data = Davis3) ## ## Residuals: ## Min 1Q Median 3Q Max ## -6.991 -4.853 -2.789 3.956 15.725 ## ## Coefficients: ## Estimate Std. Error t value Pr(>|t|) ## (Intercept) 74.000 2.374 31.172 1.22e-09 ## I((height - mean(height))/sd(height)) 2.606 2.502 1.042 0.328 ## ## (Intercept) *** ## I((height - mean(height))/sd(height)) ## --- ## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 ## ## Residual standard error: 7.507 on 8 degrees of freedom ## Multiple R-squared: 0.1194, Adjusted R-squared: 0.00935 ## F-statistic: 1.085 on 1 and 8 DF, p-value: 0.328
위의 결과를 보면 키가 1표준편차만큼 증가할 때 기대되는 체중 증가량은 2.606 kg임을 확인할 수 있습니다.
설명변수와 결과변수의 표준화
흔히 표준화회귀계수(standardized regression coefficient) 또는 베타 계수(beta coefficient)라고 불리는 회귀 계수는 설명변수와 결과변수를 모두 표준화 시켰을 때 얻는 계수입니다.
\[x_1 = \frac{z_1 – \bar{z_1}}{\textrm{sd}(z_1)}, \ \ \tilde{y} = \frac{y – \bar{y}}{\textrm{sd}(y)}\]
이렇게 설명변수와 결과변수를 변환한 후 회귀식 \(\tilde{y} = \beta_0 + \beta_1 x_1\) 으로 회귀분석을 했을 때, \(\beta_1\) 의 의미는 \(z_1\) 을 표준편차 1만큼 증가시켰을 때 기대되는 결과 변수 \(y\) 의 증가량을 \(y\) 의 표준편차로 나눈 값입니다. 예를 들어 \(\beta_1=1.5\) 라면 \(z_1\) 가 1표준편차만큼 증가할 때, \(y\) 는 1.5 표준편차만큼 증가하는 것입니다.
표준화회귀계수는 \(z_1\) 와 \(y\) 가 모두 정확한 의미를 알 수 없을 때 유용하게 사용할 수 있습니다.
fitbStd <- lm(I((weight-mean(weight))/sd(weight)) ~ I((height - mean(height))/sd(height)), data=Davis3)
summary(fitbStd)
## ## Call: ## lm(formula = I((weight - mean(weight))/sd(weight)) ~ I((height - ## mean(height))/sd(height)), data = Davis3) ## ## Residuals: ## Min 1Q Median 3Q Max ## -0.9268 -0.6434 -0.3698 0.5245 2.0848 ## ## Coefficients: ## Estimate Std. Error t value ## (Intercept) 5.266e-17 3.147e-01 0.000 ## I((height - mean(height))/sd(height)) 3.456e-01 3.318e-01 1.042 ## Pr(>|t|) ## (Intercept) 1.000 ## I((height - mean(height))/sd(height)) 0.328 ## ## Residual standard error: 0.9953 on 8 degrees of freedom ## Multiple R-squared: 0.1194, Adjusted R-squared: 0.00935 ## F-statistic: 1.085 on 1 and 8 DF, p-value: 0.328
R에는 표준화를 함수는 scale()
입니다. 다음의 결과는 위의 결과와 동일함을 알 수 있습니다.
summary(lm(scale(weight) ~ scale(height), data=Davis3))
## ## Call: ## lm(formula = scale(weight) ~ scale(height), data = Davis3) ## ## Residuals: ## Min 1Q Median 3Q Max ## -0.9268 -0.6434 -0.3698 0.5245 2.0848 ## ## Coefficients: ## Estimate Std. Error t value Pr(>|t|) ## (Intercept) 5.266e-17 3.147e-01 0.000 1.000 ## scale(height) 3.456e-01 3.318e-01 1.042 0.328 ## ## Residual standard error: 0.9953 on 8 degrees of freedom ## Multiple R-squared: 0.1194, Adjusted R-squared: 0.00935 ## F-statistic: 1.085 on 1 and 8 DF, p-value: 0.328
정리
여기서는 연속형 관찰변수로 결과변수를 예측(설명)하는 선형 모형을 만들 때 모형 행렬을 결정하는 여러 가지 다른 방법에 대해 알아보았습니다. 구체적으로 변수의 평균 중심화, 표준화, 그리고 설명변수와 결과변수 모두의 표준화를 사용할 수 있습니다. 이들은 모두 설명변수의 선형 함수이라는 공통점이 있습니다.
Leave a comment