|
- 1행에 X, Y를 입력 하시고 아래 행들에 숫자들을 입력합니다.
- 저장은 엑셀 다른 이름으로 저장하기 옵션에서 CSV 파일 형식을 선택하고 RStudio에서 사용할 폴더에 저장을 합니다.
2. RStudio에서 샘플 데이터 파일을 불러옵니다.(윈도우 기준)
- 먼저 RStudio을 실행합니다.
- getwd() 함수로 현재 RStudio에 설정되어 있는 폴더 경로를 확인 합니다.
- 이 경로가 CSV 파일을 저장한 경로가 아니면 RStudio 옵션에서 사용할 폴더를 지정할 수 있습니다.
- RStudio 터미널에서도 setwd("경로명") 명령어로 사용할 폴더를 지정할 수 있습니다.
3. 데이터 불러오기 및 그래프 그리기
RStudio 터미널에서 아래 명령어로 CSV 파일로 저장한 데이터를 불러옵니다.
> data <- read.csv('regression.csv', header = TRUE)
data에 무엇이 저장되었는지 확인해봅니다.
> data
행 길이가 긴 데이터인 경우에는 head 명령어로 5행의 내용만을 볼 수 있습니다.
> head(data)
가로가 X의 숫자이고 세로가 Y의 숫자인 2차원 그래프를 그려줍니다.
> plot(data, pch = 1)
4. 회귀 모형 생성
불러온 데이터를 이용하여 회귀모형을 생성 합니다.
> model <- lm(Y ~ X, data)
생성한 회귀모형에 대한 정보를 확인합니다.
> summary(model)
회귀모형에 대한 정보는 크게 Residuals, Coefficients, Signif. codes, Residual standard error, Multiple R-squared, Adjusted R-squared, F-statistics, p-value로 볼 수 있습니다. 먼저 residual에 관련된 항목들을 살펴보도록 하겠습니다.
5. residual
residual은 잔차라고 하는데 엑셀 파일에 기입했던 '데이터의 Y값 - 생성한 회귀모형 직선의 Y값'입니다.
즉 실제 데이터와 예측 데이터의 차이를 의미합니다.
아래 명령어를 이용하여 확인 할 수 있습니다.
> model$residuals
residual이 '엑셀 파일에 기입했던 데이터의 Y값 - 생성한 회귀모형 직선의 Y값'이라고 하였으므로 아래 명령어로도 확인 가능합니다. 데이터의 X값을 생성한 회귀 모형 직선에 대입하여 Y을 구하는 predict 함수를 이용하여 예측값 predictedY를 구합니다.
> predictedY <- predict(model, data)
'엑셀 파일에 기입했던 데이터의 Y값 - 생성한 회귀모형 직선의 Y값'을 코드로 표현 해보면 아래와 같습니다.
> data$Y - predictedY
model$residuals과 (data$Y - predictedY) 같은 값들임을 알 수 있습니다.
6. residual standard error
residual standard error은 잔차의 표준 오차라고 하는데 data$Y의 값이 predictedY의 값으로부터, 즉 생성한 회귀모델로 예측한
값으로부터 얼마나 흩어 있는가를 나타내는 것입니다.
> sqrt(sum((predictedY - data$Y) ^ 2) / (nrow(data) - 2))
보시면 summary(model)의 residual standard error의 값과 같은 것을 알 수 있습니다.
자유도는 data의 총 길이인 20에서 2를 빼게 되는데 이것은 b0와 b1이라는 두개의 파라미터를 추정하기 때문이라고 하네요.
7. mutiple R squared, adjusted R squared
회귀모형의 적합도를 일률적으로 나타내줄 수 있는 방법으로서 가장 많이 사용되는 것이 결정계수인데 결정계수는 회귀모형에 의하여 설명된 변동이 총변동에서 차지하는 상대적 크기를 나타냅니다.
mutiple R squared를 계산하기 위해 먼저 SSE, SSR, SST라는 것을 계산합니다. 각각의 의미를 그래프를 보면 보면 위와 같습니다.
SSE, SSR, SST에 대한 조금 더 자세한 설명입니다.
먼저 입력된 값들을 제곱하여 모두 더해주는 함수를 만듭니다.
sigma <- function (term) {
sum(term ^ 2)
}
다음으로 이 함수를 이용하여 SSE, SSR, SST를 각각 계산합니다.
> SSR = sigma(predictedY - mean(data$Y))
> SSE = sigma(data$Y - predictedY)
> SST = SSE + SSR
mutiple R squared에 대한 공식입니다.
계산한 SSE, SSR, SST를 이용하여 mutiple R squared를 계산합니다.
> Rsquared = 1 - SSE / SST
summary를 이용하여 확인한 mutiple R squared의 값과 같음을 알 수 있네요.
> Rsquared
또한 adjusted R squared라는 것이 있는데 공식은 아래와 같습니다.
※ 참고 링크 : http://www.statisticshowto.com/adjusted-r2/
계산한 mutiple R squared를 이용하여 adjusted R squared를 계산합니다.
> AdjustedRsquared = 1 - (1 - Rsquared) * 19 / 18
summary를 이용하여 확인한 adjusted R squared의 값과 같음을 알 수 있습니다.
> AdjustedRsquared