|
|
생성한 회귀분석 모델을 summary를 통해 확인하면 제일 아랫 부분에 F-statistic, p-value라는 부분이 있는데 이 부분이 회귀분석의 통계적 유의성을 확인하는 부분입니다.
이 부분은 분산분석과 상관이 있는데 이를 위하여 먼저 SST, SSR, SSE의 자유도를 확인하여야 합니다. 엑셀을 통해서 먼저 해보겠습니다.
먼저 위와 같이 데이터가 엑셀에 입력되어 있어야 합니다. read.csv('regression.csv', header = TRUE)로 데이터를 로딩한 엑셀 파일을 그대로 사용하셔도 될 것 같습니다.
데이터가 입력되어 있는 엑셀 파일 메뉴의 데이터 - 데이터 분석 - 회귀분석을 선택하고 확인을 누릅니다.
Y축, X축 입력 범위는 위와 같이 선택하고 확인을 누릅니다.
회귀분석 통계량 옵션의 결정계수, 조정된 결정계수는 각각 mutiple R squared, adjusted R squared을 의미하고 표준오차는 residual standard error을 의미합니다. 다중 상관계수에 대한 것은 R에서는 출력되지 않은 것 같은데 글 마지막 부분에 따로 정리를 하였습니다.
2. 회귀분석의 분산분석
회귀분석 요약 출력의 분산 분석 옵션에 '회귀', '잔차', '계'가 있는데 각각 SSR, SSE, SST를 의미합니다. '회귀'의 자유도는 독립 변수의 수인 1이 됩니다.
'잔차'의 자유도는 데이터 수인 24에서 a와 b이라는 두개의 파라미터를 추정하므로 2를 뺀다고 합니다. '계'의 자유도는 '회귀' + '잔차'의 자유도가 되는 것 같네요.
제곱 평균들을 이용하여 F 비를 구해보면 10520.33835 / 36.14786967 = 291.0361923라는 값이 나옵니다. 이 값을 이용하여 엑셀에 있는 유의한 F라는 것을 구할 수 있는데 F 검정에 의한 p-value입니다.
R로 계산을 할 수 있습니다. 0에 매우 근접하니 회귀모델이 통계적으로 많이 유의하다는 것을 의미하는 것 같네요.
> 1-pf(291.036192193025, 1, 18)
3. 다중 상관계수를 이용한 두 변수의 선형성 확인
다중 상관계수는 아래 코드로 확인할 수 있습니다.
> cor(data$X, data$Y)
먼저 식을 간단하게 하기 위해 아래와 같이 시그마 함수 2개를 선언합니다.
# Sigma Function sigma <- function (term) { sum(term ^ 2) } # Sigma1 Function sigma1 <- function (term) { sum(term) } |
# 분자 sigma1((data$X - mean(data$X)) * (data$Y - mean(data$Y))) # 분모 sqrt(sigma(data$X - mean(data$X))) sqrt(sigma(data$Y - mean(data$Y))) # 다중 상관계수 계산 > sigma1((data$X - mean(data$X)) * (data$Y - mean(data$Y))) / (sqrt(sigma(data$X - mean(data$X))) * sqrt(sigma(data$Y - mean(data$Y)))) |
회귀분석에서는 X는 주어진 값으로 Y만이 확률변수라고 가정했었는데, 상관분석에서는 X, Y 모두 확률변수로 가정하고 두 변수의 선형관계에 대해서 측정합니다.