공분산
- 2개의 확률변수의 상관정도 - cov(X, Y)
- \[\sigma_{XY} = \frac{1}{N}\displaystyle\sum^N_{i=1}(x_i-\mu_x)(y_i-\mu_y) : 모집단\]
- \[S_{xy} = \frac{1}{n-1}\displaystyle\sum^n_{i = 1}(x_i-\bar x)(y_i - \bar y) : 표본집단\]
-
\[cov(X, Y) = E[(X - E[X])(Y-E[Y])] : 확률변수\]
- \[cov(X, Y) = E[XY] - E[X]E[Y]\]
상관계수
- 두 변수간에 어떤 선형적 또는 비선형적 관계 - cor(X, Y)
- 공분산을 정규화한 값 - 각 표준편차로 나눠줌
- \[\rho_{XY} = \frac{\sigma_{XY}}{\sigma_X \sigma_Y},\ r_{xy} = \frac{S_{xy}}{S_xS_y}\]
- \[|cor(X, Y)| \leq 1\]
예제
- 아래 자료를 활용하여 공분산과 상관계수를 구하여라
X | 1 | 2 | 3 | 4 |
---|---|---|---|---|
Y | 2 | 5 | 6 | 7 |
X = c(1, 2, 3, 4)
Y = c(2, 5, 6, 7)
plot(X, Y)
cov(X, Y)
cor(X, Y)
상관분석
- 변수 간의 관계의 밀접한 정도(상관관계)를 분석
- T분포 사용 : \(t = r\sqrt\frac{n-2}{1-r^2}\)
- 귀무가설 - 두 변수 간에는 상관(선형적인 관계)이 없다 대립가설 - 두 변수 간에는 상관(선형적인 관계)이 있다
예제
plot(attitude)
cov(attitude)
cor(attitude)
cor.test(attitude$rating, attitude$complaints)
회귀분석
- 독립변수의 변화에 따른 종속변수의 변화를 분석
- 단순회귀분석 : 한개의 독립변수와 한개의 종속변수 간의 관계를 직선으로 표현
- 다중회귀분석 : 2개 이상의 독립변수와 한개의 종속변수 간의 관계를 직선으로 표현
단순회귀분석
-
\[직선관계를 고려하여 y = \beta_0 + \beta_1x 형태 수식으로 모델링\]
- \[\beta_0, \beta_1를 찾는것이 1차 목표로 잔차 값을 활용하여 구함\]
- 목표는 잔차의 제곰의 합을 최소화 시킴
- 최소제곱법을 사용
잔차
- 데이터 값과 추정치의 차이
- 정규분포를 따르며 분산이 일정하고 특별한 추세를 따르지 않음
- \(y = \beta^*_0 + \beta^*_1x + \epsilon, \epsilon \sim iid N(0, \sigma^2) [회귀모형VS회귀식]\)
수식화
- \(y = \beta^*_0 + \beta^*_1x + \epsilon, \epsilon \sim iid N(0, \sigma^2) [회귀모형VS회귀식]\)
- \[데이터(x_i, y_i) for i = 1, ..., N\]
- 추정치 \(\hat y_i = \beta_0 + \beta_1x_i\) for i = 1, …, N
- \(\min_{\beta_0, \beta_1}\displaystyle\sum^N_{i=1}(y_i - \hat y_i)^2\)
결정계수
- R^2 또는 R-Sq 등으로 표기
- 모형의 설명력을 평가해준다. 추정한 모형이 주어진 자료에 적합한 정도를 재는 척도
- 종속변인과 독립변인 사이에 상관관계가 높을수록 1에 가까워진다. 즉, 값이 클수록 유용성이 높다
- \(y_i - \bar y = (y_i - \hat y_i) + (\hat y_i - \bar y)\) 편차 = 설명 불가 편차 + 설명 가능 편차
- 각 항의 제곱의 합들을 고려, SST = SSE + SSR
- SSE가 작고 SSR이 클수록 회귀식의 정도가 좋다
- \(R^2 = \frac{SSR}{SST} = 1 - \frac{SSE}{SST}\)
가설검정
- 가설
- 귀무가설 : 회귀식의 회귀계수는 0이다
- 대립가설 : 회귀식의 획귀계수는 0이 아니다
- 검정통계량
- \[t = \frac{b_1}{S_{b_1}}\ where\ S_{b_1} = \frac{\sqrt {SSE}}{\sqrt{n-2}\sqrt{\displaystyle\sum(x_i - \bar x)^2}}\]
예제 1-1
str(cars)
plot(dist ~ speed, data = cars, col = 'navy')
cor.test(cars$speed, cars$dist)
예제 1-2
out = lm(dist ~ speed, data = cars)
summary(out)
plot(dist ~ speed, data = cars, col = 'navy')
abline(out, col = 'black')
예제 1-3
yhat = out$coefficients[1] + out$coefficients[2]*cars$speed
fitted(out)
cars$dist - yhat
resid(out)
plot(cars$speed, resid(out))
abline(h = 0)
예제 2
x = matrix(c(5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16, 19, 18, 20, 24, 26, 30, 32, 31, 34), nrow = 10, ncol = 2)
x
colnames(x) = c('advt', 'sales')
x = data.frame(x)
plot(x)
fit <- lm(sales ~ advt, data = x)
summary(fit)
anova(fit)
plot(x$advt, fit$residuals)
abline(h = 0)